shuttle-rs 2026.6.4

Local-first event log CLI for agent memory, repository context, task coordination, handoffs, messaging, mesh sync, and MCP access.
Documentation
# opencode

Use Shuttle from opencode either as an MCP server or through the `stl` CLI.

## MCP Workflow

Build and initialize Shuttle from the repository you want to coordinate:

```bash
cargo build
cargo run -p stl -- init
```

Start Shuttle's HTTP MCP server from the repository root:

```bash
stl app serve --addr 127.0.0.1:8787
```

Register Shuttle as an MCP server with this endpoint:

```json
{
  "mcpServers": {
    "shuttle": {
      "url": "http://127.0.0.1:8787/mcp"
    }
  }
}
```

Set `SHUTTLE_MCP_BEARER_TOKEN` before starting the app server to require
`Authorization: Bearer <token>` on MCP requests. Use the repository root as the
working directory for the MCP server. That lets Shuttle attach repository
metadata and store events in `.shuttle/shuttle.db`.

For remote MCP clients such as web chat connectors, expose the same server
through a Cloudflare Named Tunnel:

```bash
SHUTTLE_OAUTH_ADMIN_TOKEN=<admin-token> \
CLOUDFLARE_TUNNEL_TOKEN=<cloudflare-tunnel-token> \
stl app tunnel --public-url https://shuttle.example.com
```

Register `https://shuttle.example.com/mcp` with the remote client.

Recommended startup workflow:

```text
Call Shuttle context, recall "current task", and list tasks before changing
files. Record decisions, observations, bugs, and handoffs in Shuttle as work
progresses.
```

## CLI Fallback

If MCP is unavailable, run the same workflow directly:

```bash
stl context
stl recall "current task"
stl task list
stl remember "important project note"
stl decide "important implementation decision"
stl handoff request codex "Please continue this branch"
```

Use `stl --json ...` for structured output that opencode can parse or summarize.