本文へスキップ

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.

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
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)
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
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
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

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.

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.