> For the complete documentation index, see [llms.txt](https://docs.sesori.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sesori.com/setup/choose-a-harness.md).

# Choose an AI coding assistant

Choose an AI coding assistant for Sesori mobile sessions by platform, sign-in, and permission behavior.

A **harness** is an AI coding assistant that runs beside your code on your laptop or desktop. Sesori supports ten harnesses, but they do not expose identical controls. Choose based on the model access and local setup you already have, then check platform support and permission behavior before your first mobile session.

The shortest setup is usually the assistant you already use and have authenticated. Sesori uses that local setup for app sessions; it does not replace the assistant's account, provider, sandbox, or security model.

## Jump to a harness

[OpenCode](#opencode) · [Codex](#codex) · [GitHub Copilot CLI](#github-copilot) · [Cursor](#cursor) · [Claude Code](#claude-code) · [Hermes Agent](#hermes-agent) · [Pi](#pi) · [Oh My Pi (OMP)](#oh-my-pi) · [DeepSeek Harness](#deepseek) · [Grok Build](#grok-build)

## Choose by your first constraint

* If you already use one of these assistants, start there. Existing local authentication and provider setup can shorten the path to a ready session.
* If you want Sesori to install the runtime, check **Install runtime from Sesori** below. Availability differs by operating system and processor.
* If you need to start authentication from the phone, choose Codex. Every other listed harness requires authentication or provider setup on the Bridge computer.
* If you need image input in prompts, do not choose Grok Build for that workflow today. It is the current attachment exception in Sesori.
* If you are opening a sensitive project, compare the permission table before enabling a harness, keep automatic approval off, and read [Security and privacy](/get-started/security-and-privacy.md).

Do not choose by feature count alone. Models, agents, commands, questions, permission requests, and session actions vary by harness and version.

## 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.md) 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.md)
