opencode
The open-source SST agent, run as opencode run. Headless opencode auto-rejects any permission left on “ask”, and models treat that rejection as a stop signal, so Jetty writes an opencode.json that allows everything up front. That file also registers Playwright and Firecrawl MCP servers on every run, Firecrawl with a Jetty-provided key, so browser automation and scraping work without any setup on your side.
| Providers | anthropic, openai, bedrock, openrouter, vllm |
|---|---|
| Model ids | opencode wants provider/id; Jetty adds the prefix. Keep the vendor namespace on OpenRouter (anthropic/claude-sonnet-5), bare ids elsewhere, Bedrock's dotted form (anthropic.claude-sonnet-5). |
| MCP | Yes. Your mcp_servers are merged on top of the Playwright and Firecrawl presets. |
| Usage | Best-effort. opencode prints text rather than a stable event stream. |
| agent_env | — |
vllm goes through the AI SDK's OpenAI-compatible loader on the chat completions wire, which makes opencode a good fit for a plain vLLM or SGLang server.
agent: opencode
model: anthropic/claude-sonnet-5
model_provider: openrouterBack: Runtime Configuration — the full comparison table, frontmatter defaults, and per-run overrides.