> 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 a harness

A **harness** is an AI coding assistant that runs beside your code on your laptop or desktop. Sesori supports seven. Pick the assistant whose workflow, model access, and permission model already suit your project.

## Compare your options

| Harness          | Install from Sesori?                              | Sign-in                                 |
| ---------------- | ------------------------------------------------- | --------------------------------------- |
| **OpenCode**     | Yes — macOS, Linux, Windows                       | Local `/connect`                        |
| **Codex**        | Yes — macOS, Linux, Windows                       | Phone device login or local Codex login |
| **Cursor**       | Yes — macOS and Linux; install locally on Windows | Local `agent login`                     |
| **Claude Code**  | No — install locally                              | Local `claude auth login`               |
| **Pi**           | Yes — macOS, Linux, Windows                       | Local `/login`                          |
| **Oh My Pi**     | Yes — macOS, Linux, and Windows x64               | Local `/login`                          |
| **Hermes Agent** | No — install locally                              | Local `hermes setup`                    |

"Yes" means the app can offer **Install runtime** on that Bridge platform. A copy installed by Sesori is separate from a system-wide installation. If the action is not offered, follow [Install a harness](/setup/prepare-your-assistant.md). The sections below explain the important permission and safety differences.

## Set it up in Sesori

1. Connect the app and Bridge.
2. Open **Settings → Harnesses**.
3. Select an assistant.
4. Use **Install runtime** when available, or complete the linked local installation.
5. Complete authentication in the location shown above.
6. Refresh its setup status, then enable it.

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

## Important safety differences

* **OpenCode:** allows most actions by default.
* **Codex:** uses its own sandbox and approval configuration.
* **Cursor:** uses Cursor's own sandbox settings.
* **Claude Code:** permission-bypass modes should be used only in isolated environments.
* **Pi:** has no built-in permission boundary and inherits the Bridge user's access.
* **Oh My Pi:** explicit `yolo`, auto-approve, or permissive per-tool policies can skip approval prompts.
* **Hermes Agent:** `off`/YOLO mode disables prompts except for its hardline blocklist.

## Harness details

<details>

<summary>OpenCode details</summary>

OpenCode provider authentication happens locally with `/connect`. Its upstream permission system allows most actions by default, asks for some external-directory and repeated-call access, and denies `.env` reads by default. Review the [OpenCode permissions guide](https://opencode.ai/docs/permissions/) if you need a stricter policy.

</details>

<details>

<summary>Codex details</summary>

Sesori can start Codex's device-login flow from the phone. You can also sign in by running `codex` locally. Codex applies its own sandbox and approval configuration; the default local profile uses a workspace-limited sandbox and asks for approval when needed. See [Codex security](https://developers.openai.com/codex/security/).

</details>

<details>

<summary>Cursor details</summary>

Authenticate the Cursor CLI locally with `agent login`. Managed installation is available on compatible macOS and Linux Bridges, not native Windows. Cursor's Agent, Plan, and Ask modes expose different capabilities, and its sandbox settings remain authoritative.

</details>

<details>

<summary>Claude Code details</summary>

Install and authenticate Claude Code locally. Its permission mode determines which tool requests reach Sesori. Anthropic recommends permission-bypass modes only in isolated environments. See [Claude Code permissions](https://code.claude.com/docs/en/permissions).

</details>

<details>

<summary>Pi details</summary>

Pi has no built-in filesystem, process, network, or credential permission boundary; its tools inherit the access of the user running the Bridge. Sesori launches Pi with `--approve`, which also trusts project-local Pi settings, extensions, skills, and prompt templates. Use only trusted projects, or put Pi and the Bridge in a sandbox or container.

</details>

<details>

<summary>Oh My Pi details</summary>

Sesori uses your local Oh My Pi configuration. Default-config ACP sessions can ask for permission through Sesori. Explicit `yolo`, auto-approve, or permissive per-tool policies can skip those prompts. Provider login happens locally.

</details>

<details>

<summary>Hermes Agent details</summary>

Sesori does not configure the Hermes model or provider. Install Hermes Agent 0.20.0 or later, run `hermes setup` or `hermes model`, and confirm `hermes acp` is available. Hermes defaults to `smart` command approval; its `off`/YOLO mode disables prompts except for its hardline blocklist.

</details>

{% hint style="warning" %}
Sesori's encryption does not replace the selected assistant's permissions or model-provider privacy policy. Read [Security and privacy](/get-started/security-and-privacy.md) before enabling an unrestricted mode.
{% endhint %}

## Next

👉 [Install a harness](/setup/prepare-your-assistant.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.
