> 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

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.sesori.com/setup/choose-a-harness.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
