# Overview

Control local AI coding sessions from your phone.

Sesori lets you control AI coding sessions that run on your laptop or desktop from your phone. You can follow a task, send the next instruction, answer questions and permission requests, review local file changes, and check branch or pull-request status.

Sesori works with OpenCode, Codex, GitHub Copilot CLI, Cursor, Claude Code, Hermes Agent, Pi, Oh My Pi (OMP), DeepSeek Harness, and Grok Build. Your repository and selected assistant process stay on your computer; the Sesori Bridge connects them to the mobile app. The assistant may send prompts, selected source context, and tool output to its configured model provider.

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden></th><th data-hidden data-card-cover data-type="image">Cover image</th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><strong>Quickstart</strong></td><td>Go from installation to your first remote session.</td><td><a href="/pages/cMC78ZFZ090MlI8YYWoM">quickstart.md</a></td><td data-object-fit="cover"><a href="/files/e96VaTspDjnQ9DRm4LkD">/files/e96VaTspDjnQ9DRm4LkD</a></td><td><a href="/pages/cMC78ZFZ090MlI8YYWoM">/pages/cMC78ZFZ090MlI8YYWoM</a></td></tr><tr><td><strong>Choose an AI coding assistant</strong></td><td>Compare installation, sign-in, platforms, and safety defaults.</td><td><a href="/pages/55dy9jHnJVgFDP9LUDVg">choose-a-harness.md</a></td><td><a href="/files/88eOtLuJc39gcX2gsCPr">/files/88eOtLuJc39gcX2gsCPr</a></td><td><a href="/pages/55dy9jHnJVgFDP9LUDVg">/pages/55dy9jHnJVgFDP9LUDVg</a></td></tr><tr><td><strong>Security and privacy</strong></td><td>Understand encryption, trust boundaries, notifications, and voice processing.</td><td><a href="/pages/acB6bCW4bglGo6h95y2T">security-and-privacy.md</a></td><td><a href="/files/TYIEVLRDm9Sm35g3Zvya">/files/TYIEVLRDm9Sm35g3Zvya</a></td><td><a href="/pages/acB6bCW4bglGo6h95y2T">/pages/acB6bCW4bglGo6h95y2T</a></td></tr><tr><td><strong>Troubleshooting</strong></td><td>Fix Bridge, account, project, and assistant setup issues.</td><td><a href="/pages/UR5smEAWECJhDk020wFs">troubleshooting.md</a></td><td><a href="/files/8Q2LEYRjpGUWn8V83bKL">/files/8Q2LEYRjpGUWn8V83bKL</a></td><td><a href="/pages/UR5smEAWECJhDk020wFs">/pages/UR5smEAWECJhDk020wFs</a></td></tr></tbody></table>


# Quickstart

Go from installation to your first remote AI coding session.

You need the Sesori Bridge on the computer that holds your code, the Sesori app on your phone, and at least one supported AI coding assistant.

{% hint style="info" %}
New to the terminal? Installing and starting the Bridge requires a few commands. If you get stuck, [email us](mailto:contact@sesori.com).
{% endhint %}

## 1. Install the app

* **iOS:** [Download from the App Store](https://apps.apple.com/app/sesori/id6760642500)
* **Android:** [Download from Google Play](https://play.google.com/store/apps/details?id=com.sesori.app)

Open the app and sign in. Use the same Sesori account when you start the Bridge.

More details: [Install the app](/setup/install-the-app)

## 2. Install, configure, and run the Bridge

Follow [Install, configure, and run the Bridge](/setup/set-up-the-bridge#1-install-the-bridge). That page provides the official convenience commands, their trust implications, and an inspect-before-running alternative.

```bash
sesori-bridge
```

Choose a sign-in method. GitHub, Google, and Apple authentication open or print a browser URL; email authentication continues in the terminal.

Keep this process running while you use Sesori. The Bridge connects your phone to the assistants and projects on this computer.

More details: [Install, configure, and run the Bridge](/setup/set-up-the-bridge)

## 3. Connect the app and Bridge

The app and Bridge pair automatically when both use the **same Sesori account**. Confirm that the Bridge indicator in the app turns green.

More details: [Connect the app and Bridge](/setup/connect-the-app)

## 4. Choose an AI coding assistant

In Sesori, open **Settings → Harnesses** and choose one of these assistants:

* OpenCode
* Codex
* GitHub Copilot CLI
* Cursor
* Claude Code
* Hermes Agent
* Pi
* Oh My Pi
* DeepSeek Harness
* Grok Build

Use **Install runtime** when Sesori offers it. Otherwise, follow the assistant's official installation and authentication guide, then refresh its status in Sesori. Compare platforms, official setup links, and safety behavior in [Choose an AI coding assistant](/setup/choose-a-harness).

## 5. Create your first session

1. Open a project. If none appears, use **Add Project** to select a folder on your computer.
2. Tap **New session**.
3. Select a **Coding tool** and any available model or agent options.
4. Send a prompt.

The controls inside the session depend on what the selected assistant supports.

More details: [Create your first session](/setup/create-a-session)

{% hint style="success" %}
If something does not connect, start with the five [quick checks](/help/troubleshooting#quick-checks).
{% endhint %}


# How it works

How the app, Bridge, relay, and AI coding assistant work together.

<figure><img src="/files/gxLoKYfTKF8IODMB2Laz" alt="The Sesori app connects through an encrypted relay to the Bridge and AI assistant on your computer."><figcaption><p>The app controls an AI coding session that continues to run on your computer.</p></figcaption></figure>

Sesori connects your phone to an AI coding assistant on your laptop or desktop. It does not move your repository into a cloud development environment.

## The four pieces

| Piece                   | What it does                                                                  | Where it runs                           |
| ----------------------- | ----------------------------------------------------------------------------- | --------------------------------------- |
| **Sesori app**          | Gives you the mobile interface for projects, sessions, prompts, and approvals | iOS or Android                          |
| **Sesori Bridge**       | Connects Sesori to local projects and supported assistants                    | Your Mac, Linux computer, or Windows PC |
| **AI coding assistant** | Reads files, runs tools, and produces the coding session                      | Your computer                           |
| **Sesori relay**        | Authenticates and routes traffic between the app and Bridge                   | Sesori infrastructure                   |

The mobile app and Bridge sign in to the same Sesori account. The relay uses that account to match them, even when your phone and computer are on different networks.

## What remains on the Bridge computer

Your repository, local files, terminal commands, and assistant processes remain on your computer. The Bridge sends app requests to the selected assistant and streams its responses back. The assistant may send prompts, selected source context, tool output, and other data to its configured model provider.

Sesori supports OpenCode, Codex, GitHub Copilot CLI, Cursor, Claude Code, Hermes Agent, Pi, Oh My Pi, DeepSeek Harness, and Grok Build. Each assistant exposes a different set of models, agents, commands, permission requests, and session actions. Sesori shows the controls that assistant makes available.

## What uses Sesori services

Ordinary relay payloads travel over a phone-to-Bridge encrypted channel and are opaque to the relay. Sesori still processes the account and routing metadata needed to operate that connection. Features such as push previews, voice transcription, and short text processing have additional data paths.

For the complete boundary—including key delivery and third-party assistant providers—read [Security and privacy](/get-started/security-and-privacy).

## Next

{% content-ref url="/pages/cMC78ZFZ090MlI8YYWoM" %}
[Quickstart](/get-started/quickstart)
{% endcontent-ref %}


# Security and privacy

Understand Sesori encryption, trust boundaries, and feature-specific data processing.

Sesori is local-first: your repositories and assistant processes remain on your computer rather than moving into a Sesori cloud workspace. The mobile app reaches them through the Sesori Bridge. Your selected assistant may still send prompts, source context, tool output, and other data to its configured model provider.

This page explains the technical boundary in plain language. The [Sesori Privacy Policy](https://sesori.com/privacy/) is the authoritative source for personal-data processing, retention, rights, and sub-processors.

## Ordinary session traffic

The phone and Bridge establish an encrypted application channel using X25519 key exchange and XChaCha20-Poly1305 authenticated encryption. Ordinary session payloads pass through the relay as opaque encrypted frames, so the relay does not ordinarily have plaintext access to prompts, responses, or file content in transit.

The relay still processes information needed to operate the service, including account identity, connection and routing metadata, session and project identifiers, timestamps, delivery status, and limited device or app metadata.

{% hint style="warning" %}
The relay delivers the public keys used to establish the encrypted channel. That key delivery currently trusts Sesori's relay infrastructure and is not independently authenticated out of band. A compromised relay could attempt a man-in-the-middle attack. End-to-end encryption protects ordinary payloads from passive relay access; it does not remove the relay from the trust model.
{% endhint %}

## Features with a different data path

Some features cannot remain entirely inside the ordinary encrypted relay channel:

* **Push notifications:** Sesori stores push tokens and sends notification payloads through Apple or Google. Depending on your settings, a notification can include limited session metadata or a partial snippet and may appear on the lock screen.
* **Voice input:** Recorded audio is sent to Sesori and a transcription provider. The generated text is returned to the prompt field for review. The current policy says audio and transcripts are not retained after processing, except where limited retention is needed for operations, abuse prevention, security, incident response, or law.
* **Short text features:** Invoked features such as session-title or branch naming can send limited readable text to Sesori and a configured processor.
* **Support and diagnostics:** Logs, screenshots, attachments, crash data, or other details you submit or that supported diagnostics collect can be readable by Sesori and its service providers.

Review the [Privacy Policy](https://sesori.com/privacy/) for the current provider list and retention details.

## Your assistant and model provider

Sesori's phone-to-Bridge encryption covers the Sesori connection. It does not replace the security, permission, or privacy model of your selected AI coding assistant or model provider.

The assistant runs with whatever local access and approval configuration you give it. Prompts, source code, tool output, or other context may be sent by that assistant to its configured model provider. Review the provider's terms and configure the assistant's sandbox and permissions for your risk level.

{% hint style="danger" %}
**YOLO mode** in Sesori tells the Bridge to approve permission requests automatically. It can let an assistant run consequential tools without waiting for you. Use it only in an isolated environment or on a project and computer where you accept that risk. Assistant-specific bypass modes may apply independently.
{% endhint %}

## Practical safeguards

* Keep the Bridge and mobile app updated.
* Use trusted projects and review project-local assistant configuration before opening them.
* Prefer the assistant's sandbox and approval controls over unrestricted modes.
* Prefer an assistant-owned credential store over provider secrets in the Bridge environment, which can be inherited by other assistant processes.
* Hide sensitive notification previews at the operating-system level.
* Review a session's [local changes](/user-guide/reviewing-changes) before committing or merging them.
* Stop the Bridge with `Ctrl+C` when you no longer want remote access to that computer.

## Privacy rights

Sesori does not currently provide self-serve account deletion in the app. To request deletion or exercise another privacy right, follow [Delete your account](/user-guide/delete-account). Requests are handled by email after identity verification.


# Availability

Current Sesori app, Bridge, and harness availability.

Sesori is publicly available for iPhone and Android. The Bridge supports macOS, Linux, and Windows. Sesori desktop apps for macOS and Linux are still in development.

## Platforms

| Component                | Current availability                                                                                                   |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| **Sesori for iOS**       | [App Store](https://apps.apple.com/app/sesori/id6760642500), iOS 15 or later                                           |
| **Sesori for Android**   | [Google Play](https://play.google.com/store/apps/details?id=com.sesori.app), Android 7.0 or later                      |
| **Sesori desktop app**   | macOS and Linux versions are in development                                                                            |
| **Sesori Bridge**        | macOS, Linux, and Windows                                                                                              |
| **AI coding assistants** | OpenCode, Codex, GitHub Copilot CLI, Cursor, Claude Code, Hermes Agent, Pi, Oh My Pi, DeepSeek Harness, and Grok Build |

The mobile app is the primary experience. See [Choose an AI coding assistant](/setup/choose-a-harness) for assistant-specific setup and platform limits.

## Available workflows

With a connected Bridge, you can:

* Add or discover local projects and create folders from the app.
* Create and follow sessions for any enabled assistant.
* Send or queue prompts, dictate text, and attach images.
* Answer questions and permission requests when the assistant exposes them.
* Create dedicated Git workspaces for parallel sessions when the project supports them.
* Review local file changes and monitor branch and pull-request status.
* Archive or delete sessions with explicit cleanup checks.
* Choose notification categories for session activity, requests, connection status, and updates.

## Desktop updates

To hear when the macOS and Linux desktop apps are ready, [subscribe for updates](https://sesori.com/early-access).


# Install the app

Install the Sesori mobile app on iOS or Android.

Sesori is available on iOS and Android. The macOS and Linux desktop apps are still in development.

{% hint style="info" %}
After installing the app, [install and start the Sesori Bridge](/setup/set-up-the-bridge) on the computer that holds your code. The app needs the Bridge to reach your local projects and assistants.
{% endhint %}

{% tabs %}
{% tab title="iOS" %}

1. [Open Sesori in the App Store](https://apps.apple.com/app/sesori/id6760642500).
2. Install the app.
3. Open Sesori and sign in.

Requires iOS 15 or later.
{% endtab %}

{% tab title="Android" %}

1. [Open Sesori in Google Play](https://play.google.com/store/apps/details?id=com.sesori.app).
2. Install the app.
3. Open Sesori and sign in.

Requires Android 7.0 or later.
{% endtab %}
{% endtabs %}

Use this same Sesori account when you start the Bridge.

## Desktop apps

Sesori desktop apps for macOS and Linux are in development. [Subscribe for updates](https://sesori.com/early-access) to hear when they are available.

## Next

👉 [Install, configure, and run the Bridge](/setup/set-up-the-bridge)


# Install, configure, and run the Bridge

Install, configure, update, and run the Sesori Bridge CLI on macOS, Linux, or Windows.

The Sesori Bridge runs beside your code and AI coding assistants. It connects them to the mobile app through Sesori's encrypted relay.

The packaged Bridge supports macOS, Linux, and Windows on x64 and arm64 computers.

## 1. Install the Bridge

{% hint style="warning" %}
The convenience commands below download and immediately execute a Sesori-owned installer. The installer verifies the downloaded Bridge archive, but the installer script itself still depends on the HTTPS download and Sesori's publishing account. Review the [Unix installer](https://github.com/sesori-ai/sesori_apps_monorepo/blob/main/install.sh) or [Windows installer](https://github.com/sesori-ai/sesori_apps_monorepo/blob/main/install.ps1) first, or use the inspect-before-running steps below when your security policy requires it.
{% endhint %}

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
curl -fsSL https://sesori.com/install.sh | bash
```

The installer places the Bridge under `~/.local/share/sesori/` and creates the launcher `~/.local/bin/sesori-bridge`. It may add `~/.local/bin` to a Bash, Zsh, or Fish profile when that directory is not already on `PATH`.
{% endtab %}

{% tab title="Windows" %}
Open PowerShell and run:

```powershell
irm https://sesori.com/install.ps1 | iex
```

The installer places the Bridge under `%LOCALAPPDATA%\sesori\` and adds its `bin` directory to your user `PATH`.
{% endtab %}
{% endtabs %}

### Inspect the installer before running

These steps download the same installer to the current directory so you can review the exact file before executing it:

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
curl -fsSL https://sesori.com/install.sh -o sesori-install.sh
less sesori-install.sh
bash sesori-install.sh
rm sesori-install.sh
```

{% endtab %}

{% tab title="Windows" %}

```powershell
Invoke-WebRequest https://sesori.com/install.ps1 -OutFile .\sesori-install.ps1
Get-Content .\sesori-install.ps1
& .\sesori-install.ps1
Remove-Item .\sesori-install.ps1
```

{% endtab %}
{% endtabs %}

If PowerShell policy blocks the reviewed local script, follow your organization's execution policy rather than lowering it solely for this installation.

### Install with npm

If Node.js is installed, npm can bootstrap or refresh the same managed Bridge installation:

```bash
npx @sesori/bridge
```

`npx @sesori/bridge` installs the Bridge but does not start it or pass Bridge arguments to it. Run `sesori-bridge` after the installer finishes. The bootstrap itself accepts `--force` (`-f`) to reinstall and `--help` (`-h`) to show its options.

`npx` resolves code from the npm registry at execution time. Review the [`@sesori/bridge` package](https://www.npmjs.com/package/@sesori/bridge) and use an approved version when your environment requires reproducible installation.

### Verify the installation

Open a new terminal, then run:

```bash
sesori-bridge --version
```

If the command is not found, run the managed binary directly:

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
~/.local/share/sesori/bin/sesori-bridge --version
```

{% endtab %}

{% tab title="Windows" %}

```powershell
& "$env:LOCALAPPDATA\sesori\bin\sesori-bridge.exe" --version
```

{% endtab %}
{% endtabs %}

## 2. Start and sign in

```bash
sesori-bridge
```

On first run, choose GitHub, Google, Apple, or email sign-in. OAuth options open or print a browser URL; email sign-in continues in the terminal. The Bridge then registers with the relay, checks the harnesses on this computer, and waits for the app.

There is no `--login` option. To change accounts, run `sesori-bridge logout`, then start the Bridge again.

## 3. Keep it running

The Bridge is a foreground process. It and the computer must remain running, awake, and online for remote sessions to work. The Bridge prevents ordinary idle sleep by default, but closing a laptop lid can still put the computer to sleep.

Press `Ctrl+C` to stop the Bridge cleanly.

## 4. Check the connection

Open Sesori and sign in with the same account. The Bridge indicator turns green when the app can reach it. If it remains offline, use [Troubleshooting](/help/troubleshooting).

## Bridge CLI commands

The `run` command is the default, so `sesori-bridge` and `sesori-bridge run` both start the Bridge.

### Everyday commands

| Command                               | Purpose                                                                    |
| ------------------------------------- | -------------------------------------------------------------------------- |
| `sesori-bridge`                       | Start the Bridge and sign in if needed                                     |
| `sesori-bridge --version`             | Print the installed version                                                |
| `sesori-bridge --help` (`-h`)         | Show the global command overview                                           |
| `sesori-bridge run --help`            | Show run and harness-specific options                                      |
| `sesori-bridge logout`                | Clear saved Sesori authentication                                          |
| `sesori-bridge update`                | Install the latest eligible release on the configured track, then exit     |
| `sesori-bridge update --force` (`-f`) | Reinstall the latest release on the track, even if it is already installed |

### Configuration commands

| Command                                     | Purpose                                                   |
| ------------------------------------------- | --------------------------------------------------------- |
| `sesori-bridge config plugins`              | List harness plugins and whether each is eligible         |
| `sesori-bridge config plugins enable <id>`  | Enable a harness plugin; restart the Bridge to apply      |
| `sesori-bridge config plugins disable <id>` | Disable a harness plugin; restart the Bridge to apply     |
| `sesori-bridge config yolo`                 | Show whether Bridge-wide automatic approval is enabled    |
| `sesori-bridge config yolo off`             | Restore permission prompts                                |
| `sesori-bridge config track`                | Show the current release track                            |
| `sesori-bridge config track stable`         | Follow public stable releases                             |
| `sesori-bridge config track internal`       | Follow stable and Sesori internal prereleases             |
| `sesori-bridge config edit`                 | Open the Bridge configuration file in your default editor |

Valid plugin IDs are `opencode`, `codex`, `copilot`, `cursor`, `claude`, `hermes`, `pi`, `omp`, `deepseek`, and `grok`.

{% hint style="danger" %}
Bridge-wide YOLO mode approves every permission request without sending it to a connected client. Harness-specific bypass or auto-approval settings can remove additional safeguards. This setup guide does not recommend enabling either; read [Security and privacy](/get-started/security-and-privacy) before changing approval policy.
{% endhint %}

The public release track is `stable`. The `internal` track is for Sesori development builds and is not recommended for normal use.

### Run options

| Option                | Default                        | Purpose                                                     |
| --------------------- | ------------------------------ | ----------------------------------------------------------- |
| `--data-dir <path>`   | Platform Sesori data directory | Override account-bound tokens, Bridge ID, and database data |
| `--log-level <level>` | `info`                         | Set `verbose`, `debug`, `info`, `warning`, or `error` logs  |

Diagnostic logs go to stderr. Sign-in prompts, authorization links, and startup status remain visible on stdout at every log level.

{% hint style="danger" %}
`run --help` also exposes custom relay, authentication-backend, and debug-server options for controlled development. Do not use them for normal setup. A custom authentication backend receives sign-in credentials and tokens; a custom relay participates in public-key delivery and sees routing metadata. Use only endpoints you operate or trust over `https://` and `wss://`, except for isolated loopback development. The debug server has no authentication, is accessible to other local processes, and must never be forwarded or exposed.
{% endhint %}

Every harness also accepts a binary override:

| Harness        | Options                                       |
| -------------- | --------------------------------------------- |
| OpenCode       | `--opencode-bin` and the server options below |
| Codex          | `--codex-bin`, `--codex-port`                 |
| GitHub Copilot | `--copilot-bin`                               |
| Cursor         | `--cursor-bin`, `--cursor-api-endpoint`       |
| Claude Code    | `--claude-bin`                                |
| Hermes Agent   | `--hermes-bin`                                |
| Pi             | `--pi-bin`                                    |
| Oh My Pi       | `--omp-bin`                                   |
| DeepSeek       | `--deepseek-bin`                              |
| Grok Build     | `--grok-bin`                                  |

Passing a custom binary path makes that local installation authoritative and disables managed installation for that harness. Run `sesori-bridge run --help` for the complete generated option reference.

{% hint style="warning" %}
Use only executables and API endpoints you trust. A custom harness binary runs with the Bridge user's local privileges and can inherit the Bridge environment. A custom Cursor API endpoint also changes where Cursor sends its API traffic.
{% endhint %}

## Advanced: attach to an existing OpenCode server

The recommended default is to let the OpenCode plugin start and manage its own server. External attachment gives the Bridge less control over the server's authentication, transport, and lifecycle. Follow OpenCode's official [server documentation](https://opencode.ai/docs/server/) and keep the server bound to loopback.

{% hint style="danger" %}
An unauthenticated OpenCode server trusts every process that can reach its port. Use the command below only on a trusted single-user computer, keep the server on `127.0.0.1`, and never forward or expose the port.
{% endhint %}

After starting an intentionally unauthenticated loopback server under your own process manager, attach with the namespaced options:

```bash
sesori-bridge --opencode-no-auto-start --opencode-port 4096 --opencode-no-password
```

{% hint style="info" %}
OpenCode options are namespaced for multi-harness support. Use `--opencode-no-auto-start` and `--opencode-port`; the old Bridge options `--no-auto-start` and `--port` are not accepted.
{% endhint %}

### Password-protected attachment

OpenCode supports a server password, and attachment mode accepts the matching value through `--opencode-password`. Sesori does not recommend a password recipe here because the Bridge currently accepts that secret only as a process argument, where another local user may be able to inspect it. There is no fully secret-safe attachment form until the Bridge supports a non-argument credential source. Prefer managed mode when local-process trust is a concern.

The default host is `127.0.0.1`. Keep direct attachment on loopback: OpenCode uses HTTP, and Basic authentication does not encrypt the password or session traffic. To reach OpenCode on another computer, use an encrypted tunnel and attach the Bridge to the tunnel's loopback endpoint rather than exposing the server directly.

In managed mode, setting `--opencode-host 0.0.0.0` exposes the Basic-auth server to the local network and has the same transport limitation. Never expose an unauthenticated OpenCode server to a network.

An attached server remains externally managed. Sesori can refresh its setup status, but it will not start, stop, restart, suspend, or clean up that OpenCode process.

## Configuration file

`sesori-bridge config edit` opens `~/.config/sesori/config.json`. Relevant settings include sleep prevention, Bridge-wide YOLO mode, and the release track:

```json
{
  "sleepPrevention": "always",
  "yolo": false,
  "releaseTrack": "stable"
}
```

You can also configure plugin idle timeouts. Plugin-specific values override `default`; omitted values use 45 minutes, and zero means never idle-stop:

```json
{
  "plugins": {
    "disabled": ["cursor"],
    "default": {"idleTimeoutMins": 30},
    "opencode": {"idleTimeoutMins": 0}
  }
}
```

Prefer the app or the `config` commands for settings they expose. Restart the Bridge after changing plugin eligibility, YOLO mode, or the release track.

## Updates

Managed installations check for updates at startup and every four hours while running. An update discovered during a run is applied after the Bridge restarts. Check and install immediately with:

```bash
sesori-bridge update
```

Use `sesori-bridge update --force` for a repair or when the updater recommends reinstalling. It reinstalls the latest release for the selected track and can move an internal build back to stable when the configured track is `stable`.

Automatic checks are skipped in CI or when `SESORI_NO_UPDATE=1` is set. The shell and npm installers always install the latest stable release, regardless of the configured track.

## Remove the managed installation

First stop every running Bridge instance, then attempt to unregister this Bridge and clear its saved authentication:

```bash
sesori-bridge logout
```

If you started the Bridge with `--data-dir <path>`, stop that process and instead run `sesori-bridge logout --data-dir <path>`. Verify and remove the custom account-data directory separately, in addition to removing the managed installation shown below.

{% hint style="danger" %}
The commands below delete the entire local Sesori data directory, not just the executable. This removes the Bridge ID, authentication, managed harness runtimes and state, local project and session catalog, and locally stored chat history. It does not delete your repositories; harness data stored outside Sesori's directories remains.
{% endhint %}

Delete the managed installation and, on macOS or Linux, its launcher:

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
rm -rf ~/.local/share/sesori
rm -f ~/.local/bin/sesori-bridge
```

{% endtab %}

{% tab title="Windows" %}

```powershell
$sesoriBin = "$env:LOCALAPPDATA\sesori\bin"
$userPath = [Environment]::GetEnvironmentVariable('PATH', 'User')
$newPath = (($userPath -split ';' | Where-Object { $_ -and $_.TrimEnd('\') -ine $sesoriBin.TrimEnd('\') }) -join ';')
[Environment]::SetEnvironmentVariable('PATH', $newPath, 'User')
Remove-Item -Recurse -Force "$env:LOCALAPPDATA\sesori"
```

{% endtab %}
{% endtabs %}

Open a new terminal after removing the Windows `PATH` entry. On macOS or Linux, the installer may have added a generic `~/.local/bin` entry to a shell profile; the commands above leave it in place because other tools may use that directory. Remove that profile line manually only when it is no longer needed. The configuration file under `~/.config/sesori/` remains unless you remove it separately. Removing the npm package alone does not remove the managed Bridge directory.

Prompt attachment files use a separate shared directory and are not removed by these commands: `~/Library/Application Support/Sesori Attachments` on macOS; `$XDG_DATA_HOME/sesori-attachments` on Linux when `XDG_DATA_HOME` is absolute, otherwise `~/.local/share/sesori-attachments`; and `%LOCALAPPDATA%\Sesori Attachments` on Windows. Delete that directory only when no other Bridge data directory references its files.

## Next

👉 [Connect the app and Bridge](/setup/connect-the-app)


# Connect the app and Bridge

Pair the Sesori app with the Bridge.

The app and Bridge pair automatically when both are signed in to the same Sesori account.

{% hint style="info" %}
Before you continue, [install the app](/setup/install-the-app), then [install and start the Bridge](/setup/set-up-the-bridge).
{% endhint %}

## 1. Start the Bridge

On the computer that holds your code, run:

```bash
sesori-bridge
```

Keep this process running while you use Sesori.

## 2. Sign in to the same account

Open Sesori and sign in with the same GitHub, Google, Apple, or email account. Using different providers or accounts creates separate Sesori identities, so the devices will not match.

## 3. Confirm the Bridge is online

When the Bridge indicator is green, Sesori can reach the computer. If it is offline, confirm that the Bridge terminal is still open and the computer is awake and connected to the internet.

## Next

👉 [Choose an AI coding assistant](/setup/choose-a-harness)


# Choose an AI coding assistant

Compare the setup, platform support, and security behavior of AI coding assistants supported by Sesori.

A **harness** is an AI coding assistant that runs beside your code on your laptop or desktop. Sesori supports ten harnesses. Choose one based on its model access, workflow, platform support, and permission model.

## Compare supported harnesses

| Harness            | Install runtime from Sesori                    | Official setup on the Bridge computer                                                                                                                                                                                           |
| ------------------ | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **OpenCode**       | macOS, Linux, Windows                          | [Setup](https://opencode.ai/docs/) and [providers](https://opencode.ai/docs/providers/)                                                                                                                                         |
| **Codex**          | macOS, Linux, Windows                          | [Codex CLI](https://developers.openai.com/codex/cli/) or phone device login                                                                                                                                                     |
| **GitHub Copilot** | macOS, Linux, Windows                          | [Install](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli) and [authenticate](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/authenticate-copilot-cli) |
| **Cursor**         | macOS and Linux; local installation on Windows | [Cursor CLI installation](https://cursor.com/docs/cli/installation)                                                                                                                                                             |
| **Claude Code**    | Local installation only                        | [Claude Code setup](https://code.claude.com/docs/en/setup)                                                                                                                                                                      |
| **Hermes Agent**   | Local installation only                        | [Hermes Agent quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart)                                                                                                                                |
| **Pi**             | macOS, Linux, Windows                          | [Pi documentation](https://pi.dev/docs/latest)                                                                                                                                                                                  |
| **Oh My Pi**       | macOS, Linux, Windows x64                      | [Oh My Pi documentation](https://omp.sh/docs)                                                                                                                                                                                   |
| **DeepSeek**       | macOS, Linux, Windows                          | [Configure models](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md)                                                                                                                    |
| **Grok Build**     | Local installation only                        | [Grok Build](https://docs.x.ai/build/overview)                                                                                                                                                                                  |

**Install runtime** downloads a pinned copy for Sesori without changing a system-wide installation. The action appears only when the connected Bridge has a compatible managed package. Unless the table says otherwise, managed packages are available for both x64 and arm64.

On a Windows arm64 computer, Oh My Pi has no native managed package. It can still become available when the x64 Bridge installer falls back to emulation. Cursor has no managed Windows package, but Cursor's official CLI supports local Windows installation.

Only Codex can start a harness login from the phone. Every other authentication or provider setup happens on the Bridge computer.

## Set up a harness in Sesori

1. Connect the app and Bridge.
2. Open **Settings → Harnesses**.
3. Select a harness.
4. Use **Install runtime** when available, or follow the assistant's official setup guide below.
5. Complete authentication or provider setup on the Bridge computer.
6. Refresh the setup status, then enable the harness.

When you create a session, **Coding tool** lists the enabled harnesses that are ready on the connected Bridge.

{% hint style="warning" %}
Sesori's encrypted connection does not replace a harness's local permissions, sandbox, or model-provider privacy policy. Read [Security and privacy](/get-started/security-and-privacy) before using an unrestricted or auto-approval mode.
{% endhint %}

{% hint style="warning" %}
Prefer credentials stored by the assistant in its own credential store over provider secrets placed in the Bridge environment. Environment variables available to the Bridge can be inherited by every assistant process it starts.
{% endhint %}

## Permission and safety differences

| Harness            | Behavior relevant to Sesori                                                                                       |
| ------------------ | ----------------------------------------------------------------------------------------------------------------- |
| **OpenCode**       | Allows most actions by default; configure OpenCode permissions locally for a stricter policy                      |
| **Codex**          | Uses its own sandbox and approval configuration; Sesori does not override either                                  |
| **GitHub Copilot** | Keeps Copilot's normal ACP permission flow; Sesori does not start it with an approval-bypass option               |
| **Cursor**         | Uses Cursor's own sandbox and sends supported ACP permission requests to Sesori                                   |
| **Claude Code**    | Sesori exposes standard and plan modes with permission prompts; bypass modes should be isolated                   |
| **Hermes Agent**   | Defaults to `smart` command approval; `off`/YOLO removes prompts except for its hardline blocklist                |
| **Pi**             | Has no built-in permission boundary, and Sesori launches every Pi session with `--approve`                        |
| **Oh My Pi**       | Default-config ACP sessions ask Sesori before `bash`, `edit`, `delete`, and `move`; explicit YOLO skips that gate |
| **DeepSeek**       | Uses workspace-write and ask defaults, but upstream labels it experimental, unaudited, and not production-ready   |
| **Grok Build**     | Keeps normal ask mode in a dedicated process; Sesori does not enable `--always-approve` or `--yolo`               |

Pi has no built-in permission boundary, and an explicitly configured Oh My Pi YOLO mode skips its ACP client permission gate. Their tools inherit access from the operating-system user running the Bridge. Use only trusted projects, or isolate the harness and Bridge in a sandbox, container, or virtual machine.

{% hint style="danger" %}
DeepSeek Harness is experimental developer-preview software that has not undergone a security audit and must not be treated as secure or production-ready. Its sandbox and approval prompts reduce risk but do not guarantee isolation. Review [DeepSeek Harness safety](https://github.com/deepseek-ai/deepseek-harness/blob/master/SAFETY.md) before enabling it.
{% endhint %}

Grok Build is the only current integration that does not accept prompt image attachments through Sesori. Other capabilities, including models, agents, slash commands, questions, and permission requests, also vary by harness.

## Set up each harness

If you use **Install runtime**, you do not need a separate local installation to run that assistant through Sesori. Managed installation does not authenticate a provider account, and some assistants still require an upstream tool or interface for provider setup.

The upstream project owns its installation, authentication, credential storage, and update procedures. Follow the official links below because those procedures can change and may execute downloaded code or alter security-sensitive configuration. Review any command before running it.

### OpenCode

Managed installation: macOS, Linux, and Windows.

Follow the official [OpenCode setup](https://opencode.ai/docs/) and [provider configuration](https://opencode.ai/docs/providers/) guides. OpenCode owns its local installation and credentials.

OpenCode allows most actions by default. Review the [OpenCode permissions guide](https://opencode.ai/docs/permissions/) and configure a stricter local policy when needed.

### Codex

Managed installation: macOS, Linux, and Windows.

Follow the official [Codex CLI guide](https://developers.openai.com/codex/cli/) for local installation and sign-in.

If Codex reports authentication required in **Settings → Harnesses**, Sesori can start its device-code flow from the phone. Verify the website address before entering the one-time code.

Codex retains its own sandbox and approval configuration. See [Codex agent approvals and security](https://developers.openai.com/codex/agent-approvals-security/).

### GitHub Copilot

Managed installation: macOS, Linux, and Windows.

Follow GitHub's official guides to [install GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/install-copilot-cli) and [authenticate GitHub Copilot CLI](https://docs.github.com/en/copilot/how-tos/copilot-cli/set-up-copilot-cli/authenticate-copilot-cli).

Sesori keeps Copilot's standard ACP permission requests enabled. Interactive `ask_user` questions are not currently forwarded by the Copilot ACP integration.

### Cursor

Managed installation: macOS and Linux. Install locally on Windows.

Follow the official [Cursor CLI installation](https://cursor.com/docs/cli/installation) and [Cursor ACP](https://cursor.com/docs/cli/acp) guides for installation and authentication.

Current official installers expose both `agent` and `cursor-agent` for the same CLI. Sesori detects `cursor-agent` so older installations continue to work. If `agent` works but `cursor-agent` is missing, start the Bridge with an explicit path:

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
sesori-bridge --cursor-bin "$(command -v agent)"
```

{% endtab %}

{% tab title="Windows" %}

```powershell
sesori-bridge --cursor-bin (Get-Command agent).Source
```

{% endtab %}
{% endtabs %}

Cursor's Agent, Plan, and Ask modes expose different capabilities. Its sandbox settings remain authoritative.

### Claude Code

Local installation only.

Follow the official [Claude Code setup](https://code.claude.com/docs/en/setup) guide for installation and authentication. Review [Claude Code permissions](https://code.claude.com/docs/en/permissions) before granting access.

Sesori requests permission through Claude Code's stdio permission channel and exposes standard and plan modes. Anthropic recommends using permission-bypass modes only in isolated environments.

### Hermes Agent

Local installation only.

Follow the official [Hermes Agent quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart) for installation, provider configuration, and authentication.

Use Hermes 0.20.0 or later and a model with at least a 64K context window. `hermes model` provides an alternative configuration flow. Hermes defaults to `smart` command approval; `off`/YOLO mode removes prompts except for its hardline blocklist.

### Pi

Managed installation: macOS, Linux, and Windows.

Follow the official [Pi documentation](https://pi.dev/docs/latest) and [Pi coding agent repository](https://github.com/earendil-works/pi/tree/main/packages/coding-agent) for installation and provider authentication.

{% hint style="danger" %}
Pi has no built-in filesystem, process, network, or credential permission boundary. Sesori launches Pi with `--approve`, which trusts project-local Pi settings, extensions, skills, and prompt templates without asking. Use Pi only with trusted projects or inside an isolation boundary.
{% endhint %}

### Oh My Pi

Managed installation: macOS, Linux, and Windows x64.

Follow the official [Oh My Pi documentation](https://omp.sh/docs) for installation and provider authentication.

Default-config ACP sessions keep a Sesori permission gate for `bash`, `edit`, `delete`, and `move`, despite the underlying schema default. Explicitly configuring `tools.approvalMode: yolo`, `--yolo`, or an equivalent override skips that client gate unless a per-tool policy still says `prompt` or `deny`. See the version-specific [OMP approval documentation](https://github.com/can1357/oh-my-pi/blob/v17.3.8/docs/approval-mode.md#acp-sessions).

### DeepSeek

Managed installation: macOS, Linux, and Windows.

Official resources: [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness), [model configuration](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md), [safety notice](https://github.com/deepseek-ai/deepseek-harness/blob/master/SAFETY.md), and the [Sesori DeepSeek ACP adapter](https://github.com/sesori-ai/sesori-deepseek-acp)

Use **Install runtime** in **Settings → Harnesses → DeepSeek**. Sesori's package contains the compatible coding runtime and reads settings, provider credentials, and skills from the normal DeepSeek Harness home directory. The managed adapter does not expose DeepSeek's Models interface or write those configuration files.

Run DeepSeek Harness's upstream configuration interface as described in its [official run guide](https://github.com/deepseek-ai/deepseek-harness/blob/master/README.md#run), then configure the provider through [Models settings](https://github.com/deepseek-ai/deepseek-harness/blob/master/docs/user/guide/providers.md). That flow keeps keys write-only, stores them in `$DSH_HOME/.credentials.yaml`, and leaves only a credential reference in settings. Do not place a provider key in the Bridge environment: every enabled assistant process started by that Bridge may inherit it. If you cannot complete the upstream credential flow, use another harness rather than exposing the key Bridge-wide.

Sesori forces DeepSeek telemetry off and selects workspace-write sandboxing with ask behavior, but these settings do not make experimental software a security boundary.

### Grok Build

Local installation only.

Follow the official [Grok Build guide](https://docs.x.ai/build/overview) for installation and authentication.

Sesori runs a dedicated Grok process with normal ask mode enabled. It disables in-process updates and shared-leader attachment, but never enables `--always-approve` or `--yolo`. Grok Build does not currently accept prompt image attachments through Sesori.

## Return to Sesori

After local installation and authentication are complete:

1. Start or restart `sesori-bridge` after completing the assistant's official setup.
2. Open **Settings → Harnesses** in Sesori.
3. Select the harness and refresh its setup status.
4. Enable it when the status is ready.

## Next

👉 [Create your first session](/setup/create-a-session)


# Create your first session

Open a local project and create your first AI coding session from Sesori.

Before you start, confirm that the Bridge indicator is green and at least one harness is ready and enabled under **Settings → Harnesses**.

## 1. Open or add a project

The Projects screen includes folders discovered from enabled assistants. You can also tap **Add Project** to browse the connected computer, create a folder, and register it directly.

If you add a non-Git folder, Sesori asks whether to enable Git tracking. Read the confirmation carefully: **Enable Git** commits all non-ignored files to create a history baseline and support dedicated worktrees. Choose **Continue Without Git** if you do not want that change.

## 2. Create the session

1. Open a project.
2. Tap **New session**.
3. Choose a **Coding tool** and any available model or agent options.
4. Turn on **Dedicated workspace** if you want an isolated Git worktree and the project supports it.
5. Create the session and send a prompt.

If dedicated workspace creation is unavailable or fails, Sesori can fall back to the main project folder. Check the workspace shown before asking two sessions to edit the same files.

## Next

👉 [Projects and sessions](/user-guide/projects-and-sessions)


# Main workflow

Follow the main Sesori workflow from projects to active coding sessions.

Sesori is organized around projects on your computer and the AI coding sessions inside them.

## Projects

The first screen lists projects known to the connected Bridge. A project can come from assistant discovery or from **Add Project**, which lets you browse the computer and register a folder yourself.

Each row can show the project name, local path, recent activity, and session or pull-request status. Tap a project to open its sessions. See [Projects and sessions](/user-guide/projects-and-sessions) for Git setup, dedicated workspaces, rename, and hide behavior.

## Session list

A session remains attached to the assistant that created it. From the list, you can:

* Open an existing session.
* Tap **New session** and choose a **Coding tool**.
* Review the branch and pull-request status Sesori can detect.
* Mark a session as read or unread.
* Rename, archive, or delete a session.
* Use **Show archived** to read permanently archived sessions.

Swipe actions and menus change with the session state. Destructive actions ask for confirmation.

## Session chat

The chat streams output from the assistant on your computer. You can type or dictate prompts, attach images when supported, queue follow-up messages, stop the current turn, and respond to questions or permissions.

Models, agents, slash commands, background tasks, and controls depend on the selected assistant. [Sessions and chat](/user-guide/sessions-and-chat) covers these differences.

## Local changes

Open **File Changes** for a Git-backed session to inspect the files changed from its local baseline. This is a read-only view of local diffs; Sesori does not commit or merge the changes for you.

See [Review local changes](/user-guide/reviewing-changes).

## Settings

Use Settings for:

* **Harnesses:** install, authenticate, enable, disable, refresh, or restart supported assistants.
* **Notifications:** choose AI interaction, session message, connection status, and system update notifications.
* **Bridge:** configure YOLO mode and the pull-request refresh interval when a compatible Bridge is connected.
* **Account:** see the current sign-in and log out.

{% hint style="warning" %}
YOLO mode automatically approves all permission requests routed through the Bridge. Read [Security and privacy](/get-started/security-and-privacy) before enabling it.
{% endhint %}

## Connection states

* **Green Bridge indicator:** the app can reach the Bridge.
* **Red Bridge indicator:** start `sesori-bridge` and keep the computer awake and online.
* **Project unavailable:** the local folder was moved or deleted; restore it or hide the project.
* **Harness needs attention:** open **Settings → Harnesses** and follow its setup action.

## Next

👉 [Projects and sessions](/user-guide/projects-and-sessions)


# Projects and sessions

Add local projects, use Git worktrees, and safely manage Sesori sessions.

Projects are folders on the computer running the Bridge. Sessions are assistant conversations attached to one of those folders.

## Add a project

1. On the Projects screen, tap **Add Project**.
2. Browse folders on the connected computer.
3. Select **Add as new project** for the current folder, or use **Create new folder** first.
4. If the folder is not a Git repository, choose whether to enable Git tracking.

{% hint style="warning" %}
**Enable Git** is a consequential action: Sesori initializes Git when needed and commits all non-ignored files to create the baseline required for history and dedicated worktrees. Review the folder first. Choose **Continue Without Git** if you do not want Sesori to create that commit.
{% endhint %}

If Git setup cannot finish, the project still opens, but dedicated workspaces remain unavailable until the repository has an initial commit.

### Folder access on macOS

The Bridge can browse only folders available to the process that launched it. If macOS blocks a location, grant **Full Disk Access** to the terminal app or managed Bridge process you actually use, then retry. Do not grant broader access to unrelated apps.

## Discovered projects

Enabled assistants can report projects they already know. Discovery differs between assistants, so a folder may appear after you open or create a local session in that assistant. **Add Project** is the direct alternative when discovery does not find it.

## Rename or hide a project

* **Rename Project** changes the project name shown by Sesori; it does not move the folder on disk.
* **Hide Project** removes the project from the list without deleting its folder, sessions, Git history, or assistant data.

If a project folder was moved or deleted, Sesori marks it unavailable. Restore the original path or hide the stale entry.

## Create a session

Tap **New session**, choose a **Coding tool**, and select the options exposed by that assistant. Existing sessions keep their original assistant.

### Dedicated workspace

Turn on **Dedicated workspace** to isolate a new session in its own Git worktree and branch. This helps parallel sessions avoid editing the same checkout.

Dedicated workspaces require a Git repository with at least one commit. Sesori falls back to the main project folder when the project is not Git-backed, has no commit, or worktree creation fails. Confirm the workspace and branch shown in the session before running parallel edits.

## Session list actions

* **Rename** changes the title shown in Sesori.
* **Mark as read / Mark as unread** controls the unread state without changing the conversation.
* **Archive** permanently makes a session read-only. You can still view it under **Show archived**, but you cannot reopen it, send prompts, or unarchive it.
* **Delete** permanently removes the assistant session and Sesori's local transcript records through the Bridge.

{% hint style="danger" %}
Archive and delete cannot be undone. Read the confirmation sheet before continuing.
{% endhint %}

Prompt attachment files spilled to Sesori's shared local attachment directory can remain after session deletion. Clean that directory manually only when no other session or Bridge data directory references its files; see [Remove the managed installation](/setup/set-up-the-bridge#remove-the-managed-installation).

### Worktree cleanup when deleting

For a dedicated-workspace session, the delete confirmation can offer **Delete worktree**. Cleanup refuses or warns about unsafe cases such as unstaged changes, a worktree shared by another active session, or an unexpected branch.

Deleting a worktree does not delete its Git branch. If you force deletion past a cleanup warning, review the listed risk first.

## Next

👉 [Sessions and chat](/user-guide/sessions-and-chat)


# Sessions and chat

Send prompts, attach images, handle approvals, and follow AI coding work from your phone.

Session chat streams the conversation from the selected assistant running on your computer. Every session keeps the assistant and workspace it was created with.

## Read the session

Messages can contain Markdown, code blocks, tables, tool calls, reasoning, status updates, images, questions, and permission requests. The exact event types depend on the assistant.

Some assistants expose child sessions or background tasks. Sesori shows their state and available details without treating them as separate top-level projects.

## Send a prompt

Type a message and tap **Send**. If the session is busy, Sesori can queue the follow-up and send it when the current turn finishes. Queue controls appear only when supported by that session.

Use the expanded editor for longer prompts. Slash commands come from the selected assistant and can accept optional arguments.

## Use voice input

Hold the microphone control to record. Sesori sends the audio for server-side transcription and places the result in the editor so you can review it before sending. A recording can be up to 15 minutes.

Voice input requires microphone permission, a Sesori account, and internet access. Read [Security and privacy](/get-started/security-and-privacy#features-with-a-different-data-path) for the transcription boundary.

## Attach images

When the assistant supports prompt attachments:

1. Expand **More actions** in the composer.
2. Choose **Attach image**.
3. Select one or more JPEG, PNG, GIF, WebP, or BMP images.
4. Review the thumbnails, then send the message.

The combined images in one message must stay under 5 MiB (about 5 MB). The app may downscale photos before sending. Images cannot be sent with slash commands; remove either the attachments or the command before sending.

## Questions and permissions

When the assistant asks for information or tool approval, Sesori surfaces the request. Depending on the assistant, a permission can offer choices such as reject, allow once, or always allow.

An assistant's own sandbox, permission mode, and auto-approval settings remain authoritative. **Always Allow**, Sesori YOLO mode, and assistant-specific bypass modes can have different scopes.

## Stop a running task

Tap **Stop** when the current assistant turn should end. Some assistants need a moment to stop a tool or child task cleanly.

## Notifications

Open **Settings → Notifications** to choose among:

* **AI Interactions:** questions and permission requests.
* **Session Messages:** new assistant messages from running sessions.
* **Connection Status:** Bridge online and offline changes.
* **System Updates:** app, Bridge, and maintenance notices.

Push notifications travel through Apple or Google and can include limited metadata or a partial snippet. Use your phone's notification settings to hide previews on the lock screen.

## Missing controls

If a model, command, attachment action, permission, or session control is missing:

1. Confirm the assistant is ready and enabled under **Settings → Harnesses**.
2. Refresh its setup and available options.
3. Check whether that assistant exposes the capability.
4. Update and restart the Bridge if the app reports an unsupported version.

## Next

👉 [Review local changes](/user-guide/reviewing-changes)


# Review local changes

Inspect the local Git diff, branch, and pull-request status for a Sesori session.

Sesori can show the local files changed during a Git-backed session. Use this view to understand the assistant's work before you commit, push, or merge it from your normal development workflow.

## Open File Changes

Open a session and select **File Changes**. The summary shows the number of changed files, additions, and deletions. Expand a file to inspect its diff.

Sesori can label a file when:

* It is binary and has no text diff.
* The diff is too large to display.
* The Bridge could not read it.

Retry after the Bridge reconnects if the view fails to load.

## Understand the baseline

File Changes is a local Git diff supplied by the Bridge. It is independent of which assistant created the session.

* A dedicated workspace uses its worktree and branch as the session context.
* A session in the main project folder can include changes made by other tools or sessions in that same checkout.
* A non-Git project, or a repository without an initial commit, has no reliable Git baseline and may not offer a diff.

{% hint style="info" %}
The diff is a review surface, not a complete code-review or test result. Binary files, very large diffs, generated files, untracked state, and changes outside the session's baseline may need local inspection.
{% endhint %}

## Branch and pull-request status

Session rows can show the current branch and linked pull-request status when the Bridge can detect them. Sesori refreshes that status while you view a project; a Bridge setting controls the refresh interval.

Sesori currently monitors this Git and GitHub state. It does not commit, push, open, approve, or merge a pull request for you.

## Before you finish

On your computer:

1. Review the full working tree with your normal Git tools.
2. Run the project's tests, linting, and build checks.
3. Inspect any security- or data-sensitive change outside the mobile summary.
4. Commit, push, and open or merge the pull request through your normal workflow.

For dedicated sessions, decide whether to keep or remove the worktree when deleting the session. Sesori never deletes the branch automatically.


# Delete your account

Request deletion of your Sesori account and personal data by email.

Sesori does not currently offer self-serve account deletion in the app. Account and privacy-rights requests are handled by email so Sesori can verify the requester.

## Send a request

Email one of these addresses from the email associated with your Sesori account when possible:

* <contact@sesori.com> for account deletion or general privacy support.
* <gdpr@sesori.com> for GDPR and data-protection rights.

Include the sign-in method you used—GitHub, Google, Apple, or email—and say that you want to delete your Sesori account. Do not send passwords, OAuth tokens, API keys, or source code. Sesori may ask for additional information to verify your identity.

Sesori aims to respond to privacy-rights requests within 30 days. Complex or numerous GDPR requests can take up to two additional months where permitted. California requests are generally handled within 45 days, with an extension where permitted.

## What the request does not delete

Your local code, repositories, Git branches, and assistant session files remain on your computer. Deleting a Sesori account also does not delete your GitHub, Google, Apple, AI assistant, or model-provider account.

To disconnect a computer while the request is processed, stop the Bridge and clear its Sesori authentication:

```bash
sesori-bridge logout
```

You can separately revoke Sesori from your identity provider's connected-app settings.

## Full policy

The [Sesori Privacy Policy](https://sesori.com/privacy/) explains the current data categories, retention practices, sub-processors, legal bases, and rights-request process. It is authoritative if this short guide and the policy ever differ.


# FAQ

Answers to common questions about Sesori setup, privacy, projects, and sessions.

## Product and platforms

### What is Sesori?

Sesori lets you control AI coding sessions that run on your laptop or desktop from your phone. It is not a mobile IDE or cloud-hosted code workspace.

### Which platforms are supported?

The app supports iOS 15+ and Android 7.0+. The Bridge supports macOS, Linux, and Windows. macOS and Linux desktop apps are still in development. See [Availability](/get-started/early-access).

### Which assistants are supported?

OpenCode, Codex, GitHub Copilot CLI, Cursor, Claude Code, Hermes Agent, Pi, Oh My Pi, DeepSeek Harness, and Grok Build. Installation, authentication, and permission behavior differ; compare them in [Choose an AI coding assistant](/setup/choose-a-harness).

## Connection and privacy

### Do I need a Sesori account?

Yes. Sign in to the app and Bridge with the same GitHub, Google, Apple, or email account so the relay can match them.

### Does Sesori upload my repository?

Sesori does not host your repository. Your code and assistant processes stay on the Bridge computer. Ordinary app-to-Bridge payloads are encrypted and opaque to the relay, but account/routing metadata and invoked features such as push previews, voice transcription, or short text processing have additional data paths. Read [Security and privacy](/get-started/security-and-privacy).

### Does Sesori replace my assistant's security or privacy settings?

No. The selected assistant still controls local permissions and communicates with its configured model provider. Sesori's encrypted channel covers the phone-to-Bridge connection, not the provider's processing.

### How do I delete my account?

There is no in-app deletion flow today. Email <contact@sesori.com> or <gdpr@sesori.com>; see [Delete your account](/user-guide/delete-account).

## Projects and sessions

### Where do projects come from?

Enabled assistants can report known projects, and **Add Project** lets you browse the Bridge computer directly. You can also create a folder from the app. See [Projects and sessions](/user-guide/projects-and-sessions).

### What happens if I enable Git for a new project?

Sesori initializes Git when needed and commits all non-ignored files to create a history baseline and support dedicated worktrees. Choose **Continue Without Git** if you do not want that commit.

### What is a dedicated workspace?

It is a separate Git worktree and branch for one session. It reduces collisions between parallel sessions. A project needs Git and at least one commit; if worktree creation is unavailable or fails, Sesori can fall back to the main folder.

### Can Sesori commit or merge the work?

No. Sesori can show local file changes and monitor branch or pull-request status. Use your normal local and GitHub workflow to test, commit, push, review, and merge.

### Can I undo archive or delete?

No. Archive permanently makes the session read-only; delete permanently removes the assistant session and Sesori's local transcript records. Prompt attachment files spilled to Sesori's [shared local attachment directory](/setup/set-up-the-bridge#remove-the-managed-installation) may remain until you clean that directory manually. Optional worktree cleanup does not delete the Git branch.

## Prompts and notifications

### Can I send images?

When the assistant supports attachments, you can send JPEG, PNG, GIF, WebP, or BMP images. The combined images in one message must stay under 5 MiB (about 5 MB). Images cannot be combined with slash commands.

### Why is a control missing?

Models, agents, commands, attachments, permissions, background tasks, and session actions depend on what the assistant exposes. Check **Settings → Harnesses**, refresh its status, and confirm it supports the capability.

### Can notification previews contain session text?

Yes. Push payloads can contain limited session metadata or a partial snippet and pass through Apple or Google. Hide previews in your phone's notification settings if needed.

## Help

If the Bridge is offline or an assistant is not ready, follow [Troubleshooting](/help/troubleshooting). For anything else:

* Email: <contact@sesori.com>
* GitHub issues: [sesori-ai/sesori\_apps\_monorepo](https://github.com/sesori-ai/sesori_apps_monorepo/issues)
* Discord: [discord.gg/5KBC8dV9uR](https://discord.gg/5KBC8dV9uR)


# Release notes

Product updates and changes.

All Sesori release notes are published on GitHub Releases — the single source of truth for every update.

{% embed url="<https://github.com/sesori-ai/sesori_apps_monorepo/releases>" %}
Sesori Release Notes on GitHub
{% endembed %}


# Troubleshooting

Diagnose Bridge, account, project, and AI assistant setup problems.

Most problems come from an offline Bridge, mismatched Sesori accounts, a local folder the Bridge cannot access, or an assistant that is missing or not authenticated.

## Quick checks

1. Start the Bridge on the computer that holds your code:

   ```bash
   sesori-bridge
   ```
2. Confirm the app and Bridge use the same Sesori account.
3. Keep the computer awake, online, and the Bridge process running.
4. Open **Settings → Harnesses** and confirm the selected assistant is ready and enabled.
5. Refresh the project or session.

## Connection and sign-in

### Bridge command not found

Install or refresh the Bridge:

Follow the canonical [Bridge installation guide](/setup/set-up-the-bridge#1-install-the-bridge), including its remote-code warning and inspect-before-running option. Open a new terminal after installation. If the launcher is still unavailable, run the managed binary directly:

{% tabs %}
{% tab title="macOS or Linux" %}

```bash
~/.local/share/sesori/bin/sesori-bridge
```

{% endtab %}

{% tab title="Windows" %}

```powershell
& "$env:LOCALAPPDATA\sesori\bin\sesori-bridge.exe"
```

{% endtab %}
{% endtabs %}

### Bridge offline

The app can reach the relay, but the relay cannot see the Bridge process.

Check whether:

* The terminal running `sesori-bridge` was closed.
* The computer slept or a laptop lid was closed.
* The computer lost internet access.
* The Bridge was signed out.
* A firewall, VPN, proxy, or corporate network blocks outbound relay traffic.

The Bridge prevents ordinary idle sleep by default, but it cannot guarantee that a closed laptop stays awake. Start it again after the computer wakes.

### App and Bridge do not pair

GitHub, Google, Apple, and email sign-ins can represent different Sesori accounts. Confirm the exact provider and identity on both devices.

To choose a different account on the Bridge, clear its saved authentication and restart:

```bash
sesori-bridge logout
sesori-bridge
```

There is no `sesori-bridge --login` command.

## Assistants

### Harness is missing or needs attention

Open **Settings → Harnesses**, select the assistant, and read its status:

* **Runtime missing:** use **Install runtime** when offered, or follow [Choose an AI coding assistant](/setup/choose-a-harness).
* **Authentication required:** complete the sign-in locally unless the page offers a phone flow. Codex is the current assistant with phone device login.
* **Disabled:** enable it, then return to the project.
* **Unavailable / Needs attention:** refresh setup and confirm the command works locally.
* **Unsupported Harnesses screen:** update and restart the Bridge.

#### Local verification commands

| Assistant      | Check locally                                                 |
| -------------- | ------------------------------------------------------------- |
| OpenCode       | `opencode --help`                                             |
| Codex          | `codex login status`                                          |
| GitHub Copilot | `copilot --version`                                           |
| Cursor         | `agent status`                                                |
| Claude Code    | `claude auth status`                                          |
| Hermes Agent   | `hermes status` and `hermes acp --version`                    |
| Pi             | `pi --version`                                                |
| Oh My Pi       | `omp --version`                                               |
| DeepSeek       | Follow the official Models setup linked from the harness page |
| Grok Build     | `grok --version`                                              |

If the command works in your interactive shell but Sesori cannot find it, restart the Bridge from that shell so it inherits the current `PATH`.

### Codex device login does not finish

Keep Sesori open while completing the displayed device flow. If it expires, return to **Settings → Harnesses → Codex** and start a new attempt. You can also run `codex` on the computer and authenticate locally.

### Hermes is installed but unavailable

Sesori needs Hermes Agent 0.20.0 or later with ACP support, a configured provider, and a model with at least a 64K context window. Follow the official [Hermes Agent quickstart](https://hermes-agent.nousresearch.com/docs/getting-started/quickstart), then verify locally with `hermes status` and `hermes acp --version`.

Restart the Bridge after changing the Hermes installation or configuration.

## Projects and Git

### No projects appear

Tap **Add Project** to browse the connected computer directly. You can select an existing folder or create a new one.

Assistant discovery is an alternative and varies by assistant. Open or create a session in the folder locally, then refresh Sesori.

### The Bridge cannot access a folder

Confirm that the operating-system user running the Bridge can read the folder.

On macOS, grant **Full Disk Access** only to the terminal app or managed Bridge process you actually use: **System Settings → Privacy & Security → Full Disk Access**. Restart the process and retry.

### Project is unavailable

The folder was moved, renamed, or deleted on the computer. Restore it at the original path, or use **Hide Project** to remove the stale entry without deleting local data.

### Dedicated workspace is unavailable

A dedicated workspace needs a Git repository with an initial commit. It can also fail when Git cannot create the worktree or branch.

If you chose **Enable Git** while adding the project but setup was incomplete, inspect the folder locally: Git files may already exist even though the initial commit failed. Finish or repair the repository on the computer before retrying.

### File Changes is empty or unavailable

The view needs a Git baseline. Non-Git projects and repositories without an initial commit cannot provide the same diff. A session using the main project folder can also share changes with other local tools or sessions.

Binary files and very large diffs are identified but not rendered as normal text. Review them with your local Git tools.

## Sessions and media

### Session does not load

Try these in order:

1. Pull to refresh the Session List.
2. Confirm the Bridge is online.
3. Confirm the session's original assistant is ready and enabled.
4. Confirm the project folder and any dedicated worktree still exist.
5. Restart the Bridge.

An archived session is intentionally read-only and cannot be reopened for new prompts.

### Image attachment fails

* Confirm the selected assistant supports prompt attachments.
* Use JPEG, PNG, GIF, WebP, or BMP.
* Keep all images in the message under the Bridge's combined 5 MiB decoded limit.
* Do not combine images with a slash command.
* Check photo-library permission for Sesori.

Some current app builds incorrectly mention a 50 MB budget. The Bridge transport currently enforces 5 MiB, so use the lower limit until the app message is corrected.

### Voice input fails

Voice input needs microphone permission, an authenticated Sesori account, and network access to the transcription service.

* Allow microphone access in system settings.
* Check the internet connection.
* Keep the recording under 15 minutes.
* Try a shorter recording or type the prompt while transcription is unavailable.

### Messages remain queued

Queued messages wait while the assistant is busy and send in order when the current turn finishes. If the queue does not advance, confirm the Bridge and assistant are still online, then stop or refresh the session.

## Updates and support

### Bridge update does not apply

Managed installs check for updates at startup and every four hours. Updates discovered during a run apply after restart:

```bash
sesori-bridge update
```

Stop with `Ctrl+C`, then start `sesori-bridge` again. Use `sesori-bridge update --force` only if the updater recommends it.

### Still stuck?

Send support:

* The phone and Bridge operating systems.
* The app and Bridge versions.
* The assistant name and its status under **Settings → Harnesses**.
* The relevant error and a short, redacted section of Bridge output.
* A screenshot with source code, project paths, account details, tokens, and secrets removed.

Email <contact@sesori.com>, open a [GitHub issue](https://github.com/sesori-ai/sesori_apps_monorepo/issues), or join [Discord](https://discord.gg/5KBC8dV9uR).


