Fix OpenCode entry: correct repo is anomalyco/opencode (163K★, Bun/TS), not the archived Go version
This commit is contained in:
@@ -48,30 +48,49 @@ representation, no verification, no self-modification protection, no architectur
|
|||||||
for neurosymbolic reasoning. It is a thin shell around litellm + edit format
|
for neurosymbolic reasoning. It is a thin shell around litellm + edit format
|
||||||
parsers.
|
parsers.
|
||||||
|
|
||||||
** OpenCode / Crush (Go, ~42K lines, MIT)
|
** OpenCode (TypeScript/Bun, anomalyco/opencode, 163K★)
|
||||||
|
|
||||||
Now archived and succeeded by Crush (github.com/charmbracelet/crush). Go-based,
|
The dominant open-source coding agent by adoption. Bun runtime, Effect-TS
|
||||||
Bubble Tea TUI.
|
functional core, Solid.js TUI, Turborepo monorepo.
|
||||||
|
|
||||||
Architecture: Pubsub-driven layered architecture with LSP integration, 8+ provider
|
Architecture: Dual LLM runtime — default AI SDK (streamText/generateText) +
|
||||||
clients (Anthropic, OpenAI, Gemini, Bedrock, Copilot, Azure, Vertex, Groq, xAI),
|
opt-in native Effect-Schema runtime (@opencode-ai/llm) with 4-axis route
|
||||||
hierarchical subagent delegation (child agents have read-only tools).
|
decomposition (Protocol/Endpoint/Auth/Framing). 30+ provider plugins.
|
||||||
|
Agent workflow DSL with plan/build agent switching. Agent Communication
|
||||||
|
Protocol (ACP) for inter-agent messaging. Subagents inherit permission
|
||||||
|
boundaries from parent. 18+ built-in tools + custom tools from config.
|
||||||
|
Effect-TS ScopedCache per-project state management.
|
||||||
|
|
||||||
Safety model: Hybrid prompt-based + deterministic permission gating. Permission
|
Safety model: Explicitly documentes /not/ sandboxing the agent. The
|
||||||
dialog blocks on channel until user approves. Bash commands have a banned-list
|
permission system is rule-based (glob matching, actions: allow/ask/deny)
|
||||||
(no curl/wget/nc/telnet). Read-before-write invariant ensures edits only on
|
and exists as a UX feature, not security isolation. Built-in agents have
|
||||||
freshly-read content.
|
carefully scoped defaults (build allows most, prompts on doom_loop;
|
||||||
|
plan denies all edits except plan files; explore denies everything except
|
||||||
|
grep/glob/bash/webfetch/read; question defaults to deny). Permission
|
||||||
|
rules are inherited by subagents. Shell tool dynamically scans commands
|
||||||
|
for filesystem-impacting operations to determine ask patterns.
|
||||||
|
|
||||||
Data model: SQLite with 3 tables — sessions, messages (JSON parts column),
|
Data model: SQLite via Drizzle ORM with bun:sqlite or better-sqlite3.
|
||||||
files (versioned file history per session). Hierarchical sessions via
|
Key tables: SessionTable (project, workspace, parent hierarchy, cost,
|
||||||
parent_session_id.
|
tokens, model JSON, agent config JSON, permission JSON, revert snapshot),
|
||||||
|
MessageTable, PartTable. Project model stores worktree, VCS, sandbox
|
||||||
|
config. Config is JSON-chain (user home → project root → worktree) with
|
||||||
|
remote config fetch and mergeDeep with concatenating array semantics.
|
||||||
|
20 config modules covering agents, permissions, providers, MCP, LSP,
|
||||||
|
plugins, skills, references, variable.
|
||||||
|
|
||||||
Self-modification: No protection against editing its own Go source.
|
Self-modification: Agent.generate() interface lets the LLM create new
|
||||||
|
agent definitions — the system grows its own subagent roster. Skills
|
||||||
|
system loads domain-specific knowledge packs dynamically.
|
||||||
|
|
||||||
Verification: None.
|
Verification: None.
|
||||||
|
|
||||||
Key gap vs Passepartout: No safety gates, no knowledge graph, no Org-mode,
|
Key gap vs Passepartout: No deterministic safety architecture, no
|
||||||
no neurosymbolic architecture. The archived project status is a risk.
|
knowledge graph, no Org-mode, no verification/proof system, no
|
||||||
|
neurosymbolic architecture. The permission system is explicitly labeled
|
||||||
|
\"not security isolation\" — it's UX, not a gate stack. Largest userbase
|
||||||
|
and most polished product of any coding agent, but architecturally
|
||||||
|
conventional.
|
||||||
|
|
||||||
** Codex CLI (OpenAI, Rust, ~950K lines)
|
** Codex CLI (OpenAI, Rust, ~950K lines)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user