Fix OpenCode entry: correct repo is anomalyco/opencode (163K★, Bun/TS), not the archived Go version

This commit is contained in:
Hermes
2026-05-22 11:09:35 +00:00
parent 7610d3a457
commit b2ec6e9c65

View File

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