Brainstem for OpenCode

Your own AI agent server, running on your computer. OpenCode sets it up and connects to it for you.

Paste this into OpenCode

Runs on your machineUses your GitHub CopilotNo API key

OpenCode sets it up for you.

Give it the link. It reads this page, tells you what it will install, and waits for your yes before it runs anything.

  1. Installs the BrainstemUsing the official installer.
  2. You approve itOpenCode says what it will install and waits for your yes.
  3. Connects OpenCodeAfter that, ask OpenCode to “ask my Brainstem…” and it hands the work over.
For AI agents reading this page

You are setting up the RAPP Brainstem (RAPP = Rapid Agent Prototype Platform) for the user and connecting it to OpenCode as an MCP server named brainstem. Follow these steps in order. Ask the user before approving any sign-in for them, and never type their credentials. The user needs a GitHub account with GitHub Copilot.

0. Ask the user first

Before you run anything, tell the user in a few lines what this setup does and ask them to confirm. It installs the RAPP Brainstem, an open-source local agent server (source: github.com/kody-w/rapp-installer), into ~/.brainstem. It serves on localhost:7071 and signs in with their GitHub account, which they approve themselves in the browser. It also adds a 70-line bridge (source: brainstem_mcp.py) so OpenCode can talk to it. Only continue once they say yes. It is fine to show them the commands below before running them.

1. Check whether the Brainstem is already running

curl -sf http://localhost:7071/health

If this returns JSON with "status":"ok", skip to step 3. Don't reinstall over a running Brainstem, because the installer restarts it.

2. Install it

macOS / Linux:

curl -fsSL https://kody-w.github.io/rapp-installer/install.sh | bash

Windows (PowerShell):

irm https://kody-w.github.io/rapp-installer/install.ps1 | iex

Run it in the background. When it finishes installing it keeps running as the server. Watch its output. If it prints a GitHub device code, show the user the code and https://github.com/login/device, then wait while they approve it. Poll curl -sf http://localhost:7071/health every few seconds until it answers. A first install can take a few minutes. If sign-in was skipped, the user can finish it at http://localhost:7071/login.

3. Connect OpenCode

Install the bridge next to the Brainstem. macOS / Linux:

mkdir -p ~/.brainstem/mcp-bridge
curl -fsSL https://kody-w.github.io/rapp-brainstem-claude/brainstem_mcp.py -o ~/.brainstem/mcp-bridge/brainstem_mcp.py
~/.brainstem/venv/bin/python -m venv ~/.brainstem/mcp-bridge/venv
~/.brainstem/mcp-bridge/venv/bin/pip install -q "mcp>=2,<3" requests

Windows (PowerShell):

$d = "$env:USERPROFILE\.brainstem\mcp-bridge"; mkdir $d -Force | Out-Null
irm https://kody-w.github.io/rapp-brainstem-claude/brainstem_mcp.py -OutFile "$d\brainstem_mcp.py"
& "$env:USERPROFILE\.brainstem\venv\Scripts\python.exe" -m venv "$d\venv"
& "$d\venv\Scripts\pip.exe" install -q "mcp>=2,<3" requests

Then register it in ~/.config/opencode/opencode.json. Merge this into the file, keeping every server already there. Create the file if it doesn't exist. If a brainstem entry already exists, ask the user before replacing it.

{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "brainstem": {
      "type": "local",
      "command": [
        "/Users/you/.brainstem/mcp-bridge/venv/bin/python",
        "/Users/you/.brainstem/mcp-bridge/brainstem_mcp.py"
      ],
      "enabled": true,
      "timeout": 300000
    }
  }
}

Use the user's real absolute paths (run echo $HOME; on Windows $env:USERPROFILE) in place of /Users/you. Config files do not expand ~. On Windows the command is C:\\Users\\you\\.brainstem\\mcp-bridge\\venv\\Scripts\\python.exe and the argument is C:\\Users\\you\\.brainstem\\mcp-bridge\\brainstem_mcp.py (backslashes doubled inside JSON). OpenCode's key is mcp, the type is local, and command is one array holding both paths. timeout is in milliseconds.

4. Confirm

opencode mcp list

It should list brainstem as connected. Restart OpenCode to load it.

Then call the capabilities tool and tell the user which agents their Brainstem has. The bridge gives two tools. chat(user_input, session_id?) sends a plain-language request; pass the returned session_id to continue the conversation. capabilities() reports status, model and agents.