> ## Documentation Index
> Fetch the complete documentation index at: https://rapidreview.io/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# OpenCode

> Install the Git-backed Merv plugin globally and authenticate with opencode mcp auth.

## Install and sign in

```bash theme={"theme":{"light":"github-light","dark":"dark-plus"}}
opencode plugin 'github:rapidreview-io/Merv#merv-client' --global
opencode mcp auth merv
```

Skills update automatically when a session starts. Rerun the install command when Merv announces an adapter update.

<Check>
  Ask the agent to call `project(action="list")`, then `workflow.status_and_next(project_id)`. Follow along in the web UI at [rapidreview.io/merv](https://rapidreview.io/merv).
</Check>

<Note>
  On a remote machine over SSH, connect with `ssh -L 19876:127.0.0.1:19876 user@host` first. The browser sign-in callback goes to `127.0.0.1:19876`, and the forward is what lets it reach the client running on the remote host.
</Note>

## Skills and reviewers

Skills come from Merv's hosted, content-versioned catalog and refresh when a session starts. Four read-only reviewer subagents are injected by the plugin (`edit` and `bash` denied); each loads the matching review skill through OpenCode's native skill tool. Subagents get their own child session ids — pass them as `caller_session_id` for verified reviews. See [Reviewer handoff](/docs/merv/clients/reviewer-handoff).

## Long runs

No client-specific wake recipe is documented for this client yet; the generic one applies — a background shell running `merv-runs-wait --url <wait_url>`, whose exit wakes the agent. See [Long runs](/docs/merv/clients/long-runs).

## Caveats

* OpenCode's adapter re-exports Kilo's `plugin.js`, so it shares Kilo's behaviours — including that the plugin **rewrites `mcp.merv` on every session**. If you point OpenCode at a self-hosted brain by editing `mcp.merv`, the plugin overwrites it. Use the hosted brain, or configure the self-hosted URL a different way until this is fixed.
