Comparison with OpenCode
このコンテンツはまだ日本語訳がありません。
OpenCode is an open-source coding agent for the terminal (MIT licence, published by Anomaly). Kurahi is a resident agent runtime: one background service per identity, with the terminal as one of several clients. They overlap on the terminal experience and diverge on purpose. This table is maintained by the Kurahi maintainers; corrections are welcome as pull requests with a source. Verified against the OpenCode documentation on 2026-10-14.
Legend: yes shipped and documented; partial shipped with a narrower scope, explained in the notes; no not shipped; n/a not a goal.
Terminal experience
Section titled “Terminal experience”| Capability | OpenCode | Kurahi | Notes and sources |
|---|---|---|---|
| Interactive terminal UI | yes | yes | OpenCode: opencode TUI. Kurahi: kurahi tui (TUI) |
| Session list and switch | yes | yes | OpenCode /sessions, ctrl+x l. Kurahi /sessions, ctrl+p, rows show agent and last activity |
| Diff display for file edits | yes | yes | OpenCode diff_style auto/stacked. Kurahi unified diff per edit tool call, collapsible, tui.diffs |
| Slash commands | yes | yes | OpenCode: connect, compact, details, editor, export, init, models, new, redo, sessions, share, themes, thinking, undo (TUI). Kurahi: help, sessions, attach, model, jobs, cancel, clear, theme, keys, export, editor, undo, redo, snapshots, think, verbose, reasoning, usage, elevated, settings and gateway commands |
| Undo and redo of messages and file changes | yes | partial | OpenCode uses Git snapshots and reverts messages with the files. Kurahi records content-addressed snapshots of the files a tool is about to write (snapshots.*): /undo, /redo, /snapshots, GET/POST /api/sessions/{id}/snapshots[/restore], audited (Snapshots); messages are not undone |
| Export to Markdown, external editor | yes | yes | OpenCode /export, /editor. Kurahi /export [md|json] [path] with secrets redacted, /editor in $VISUAL or $EDITOR through a temp file |
| Themes | yes | yes | OpenCode ships 12 named themes and custom JSON themes (Themes). Kurahi ships 8 built-ins and JSON theme files (tui.theme as a name or a path; kurahi tui themes list|export|check) |
| Configurable keybinds | yes | yes | OpenCode binds about 150 actions with a leader key (Keybinds). Kurahi binds every TUI action (23) with a direct key and a leader chord (tui.keybinds, tui.keybinds.leader), reports conflicts, /keys prints the table; the text editor’s own keys are fixed |
| Status line | yes | yes | Kurahi: identity, session, job state, step count against the limit, provider profile |
| Reconnect when the server drops | yes | yes | Kurahi: banner with the backoff, typed messages queued up to 30 s |
| Attach a terminal to a running server | yes | yes | OpenCode opencode attach. Kurahi kurahi attach, with scoped credentials from kurahi pair |
File references with @, shell with ! |
yes | yes | Kurahi: @path completes from the working directory and attaches the file to the message (bounded); ! runs a local shell line |
| Plan and build agents switched with Tab | yes | partial | Kurahi switches agents with ctrl+g; a read-only profile is a tool policy, not a built-in mode |
| Desktop app, IDE extension | yes | no | OpenCode has a desktop app (beta) and IDE extensions |
Editor and language servers
Section titled “Editor and language servers”| Capability | OpenCode | Kurahi | Notes and sources |
|---|---|---|---|
| Language server integration | yes | yes | OpenCode: built-in servers for many languages, some auto-downloaded, lsp config (LSP servers). Kurahi: lsp.servers.<lang> with defaults for TypeScript, Python, Go, Rust and Java, command on PATH only, never downloaded (Language servers) |
| Diagnostics fed back to the agent after an edit | yes | yes | Kurahi appends bounded diagnostics to the edit tool result |
| Definition, references, hover as tools | partial | yes | OpenCode exposes an lsp tool under permissions. Kurahi: lsp_definition, lsp_references, lsp_hover, lsp_diagnostics, also from Code Mode |
| Formatters | yes | yes | OpenCode runs formatters after edits. Kurahi: format.onEdit with defaults for prettier, biome, ruff, black, gofmt and rustfmt detected on PATH, one result line appended like diagnostics (Formatters) |
Providers and models
Section titled “Providers and models”| Capability | OpenCode | Kurahi | Notes and sources |
|---|---|---|---|
| Provider catalogue | yes | yes | OpenCode lists 51 providers backed by models.dev (Providers). Kurahi ships 210 entries: 18 curated plus 192 generated from the same public catalogue by pnpm providers:sync, drift-checked (Providers) |
| Add a provider from the terminal | yes | yes | OpenCode /connect, opencode auth login. Kurahi kurahi providers add, kurahi onboard |
| Test a provider | no | yes | Kurahi kurahi providers test <id> makes one request and reports latency |
| Live model listing | yes | yes | OpenCode /models from the catalogue. Kurahi kurahi models list --live reads the provider’s models endpoint |
| Japan-hosted default provider | no | yes | Kurahi’s first profile is a Japan-hosted OpenAI-compatible service |
| Subscription sign-in (OAuth, device code) | yes | partial | OpenCode supports several. Kurahi supports a subset through auth profiles |
Runtime, API and operations
Section titled “Runtime, API and operations”| Capability | OpenCode | Kurahi | Notes and sources |
|---|---|---|---|
| Headless server with OpenAPI | yes | yes | OpenCode opencode serve, spec at /doc, SSE events (Server). Kurahi gateway, spec at /doc, WebSocket events, generated client |
| Runs as an OS service | no | yes | Kurahi kurahi service on systemd, launchd, Task Scheduler |
| Authentication | partial | yes | OpenCode: optional HTTP basic auth. Kurahi: token on every non-health route, scoped device pairing with short-lived access tokens |
| Audit log | no | yes | OpenCode documents no audit log (Permissions). Kurahi: hash-chained audit log, kurahi audit verify |
| Boot integrity gate | no | yes | Kurahi verifies protected policy files before serving |
| Permissions and tool policy | yes | yes | OpenCode: allow/ask/deny per tool with patterns. Kurahi: tool policy per agent, group and provider profile, exec approvals |
| Jobs with step cap and loop guard | partial | yes | OpenCode has a doom_loop permission. Kurahi: every run is a job (listJobs, cancelJob), step cap, loop detector |
| MCP client | yes | yes | Both |
| Code Mode (one script calls many tools) | no | yes | Kurahi code_mode_run, sandboxed worker with limits |
| Plugins | yes | yes | OpenCode plugin ecosystem (38 listed on Ecosystem). Kurahi in-process plugins with hot reload; small ecosystem |
| Messaging channels as clients | no | yes | Kurahi channels (chat platforms) share sessions with the terminal |
| Session sharing by public link | yes | n/a | OpenCode /share uploads the conversation to a hosted service (Share). Kurahi has no hosted service by design |
| Secrets store | partial | yes | OpenCode stores credentials in auth.json. Kurahi: OS keyring or encrypted file, never on argv |
Self-contained bundles with checksums, kurahi update |
partial | yes | OpenCode installs via script and package managers |
Community
Section titled “Community”| Surface | OpenCode | Kurahi |
|---|---|---|
| Licence | MIT | open core: MIT, FSL-1.1-Apache-2.0, proprietary layer (LICENSING.md) |
| Repository | github.com/anomalyco/opencode (about 213k stars on 2026-10-14) | github.com/koda-tokyo/kurahi (private until the public release) |
| Discussion | Discord, GitHub | GitHub Discussions with forms |
| Issue forms, PR template | yes | yes |
| Governance document, CLA | not published | GOVERNANCE.md, CLA.md |
| Public roadmap | not published | ROADMAP.md |
| Translations | README in about 20 languages | docs in English and Japanese |
Where Kurahi is behind
Section titled “Where Kurahi is behind”Undo of messages (Kurahi undoes files only), a built-in plan mode switched with Tab, subscription sign-in for every provider, the desktop app and IDE extensions, and the size of the plugin ecosystem. Message undo and plan mode are on the roadmap for the terminal.
Where Kurahi is ahead
Section titled “Where Kurahi is ahead”Running as a service with one state root, authentication on every route with scoped pairing, the audit log and integrity gate (restores from snapshots are audited too), jobs with a loop guard, Code Mode, messaging channels as first-class clients, the secrets store, a Japan-hosted default provider, kurahi providers test, and a snapshot API usable from any client.