This page checks feature scope for future OpenProgram improvements. It is not an implementation specification, product-quality ranking, or marketing material. The audit covers 160 features across OpenProgram and 12 reference columns. Evidence includes feature configuration, commands and tools, bundled agents, help text, UI entries, and implementation code. Each cell records confirmed status in the specified snapshot, not end-to-end verification of every execution path.
integrated candidate@d91c3e66 as its baseline (reviewed 2026-09-01). Claude Code, Codex, OpenClaw, and OpenCode were checked against the latest official stable releases on that date and corresponding official documentation. Other columns retain the fixed local versions listed in section five. Current OpenProgram evidence includes mid-run message queuing, owner/paired source authority and pairing admission, default local sandboxing, ACP, an stdio MCP server, three LSP tools, cross-channel /attach, PR worktree, .worktreeinclude, diff security review, request recording and strictly offline replay, backup, per-session resource limits, session archiving, scheduling, cross-session agent provenance, and WebSocket lifecycle/error classification. JSON Schema structured output is separately reviewed against Tasks 1–6@2fb471b3 and subsequent trust-boundary fixes; Runtime URL SSRF is separately marked according to implementation, compatibility tests, and runtime audit at integration commit be5eaa3c as ◐.· means only that the listed versions and evidence did not confirm implementation, not that a feature does not exist. Section four offers design references; priorities have not been validated by usage-frequency statistics or effort estimates.
First, six Git workflow items are now confirmed. Of ten items, OpenProgram confirms read-only commit-message generation, worktree creation from a PR number or GitHub URL, worktree-isolated execution, .worktreeinclude synchronization, shadow git, and diff security review. Unconfirmed items are a default product entry for commit/push/PR creation, PR or Issue comment triggers, AI authorship attribution, and non-git version control. Without usage and effort data, this page cannot establish usage priority or implementation cost.
Second, recoverable deletion currently covers common entry points in local agent subprocesses bound to a session/turn. PATH, PYTHONPATH, and NODE_OPTIONS cover common shell, Python, and Node deletion APIs; openprogram trash list/restore can list and restore recorded entries. Cron and background tasks without session/turn context receive no injection. Docker/SSH backends, absolute-path system commands, direct syscalls, find -delete and other bypasses are outside coverage. The list is not a complete deletion audit, and the mechanism is not a security sandbox.
Third, external control already includes ACP and an authenticated stdio MCP server.openprogram acp An editor-driven server implements ACP v1; openprogram mcp serve reuses tool registration and permission mapping. OpenAI-compatible endpoints, an official remote-control SDK, and inbound webhooks remain unconfirmed. Local FastAPI and WebSocket actions still carry no versioned external compatibility guarantee. Image generation is gated by provider availability and scores 0.5.
Current evidence confirms model tool-call results and all levels of Agent method calls are normalized as code nodes sharing the session DAG with user and llm nodes. Default session storage is one git repository per session. Equivalent implementations were not confirmed in the other 12 listed columns; this is not an absolute uniqueness claim about every version or unpublished implementation.
The other four are N-way branch merging, adapting subagent tools to the remaining message budget, isolated cold-start checks before upgrades, and removing ask_user_question.
from resolved tools during unattended operation. These six concern session data structures, collaboration budgets, and runtime safety; they do not imply a lead in user-visible feature count.
context/git/dag.py · store/session/git_session.py · agent/internals/_merge.py · agent/attended.pyEarlier mechanism audits recorded 55 candidate differences. When this page was written, 78 features were unconfirmed in OpenProgram but confirmed in at least one reference column. The documents overlap on 15; the other 63 were previously unlisted. After calibration against current code, tests, and stable releases of the four main comparators, 56 remain.
Seven version-control, five interface, six multi-agent, and four code-understanding items were absent from earlier lists. Editor integration adds six, integration and interoperability nine, and deployment/operations six.
“New” means previously undocumented here, not recently released by the products, and does not mean every item belongs in an implementation plan.
Sources from the first six rounds: runtime/sandbox · agent-collab-comparison · memory-comparison · memory-adoption · speaker-identity · chat-attachments · context/comparison · extension-gating · framework-comparison160 features in 13 categories. OpenProgram primarily uses current implementation, reachable entry points, and tests; design documents alone do not count as confirmation. Claude Code, Codex, OpenClaw, and OpenCode use official stable releases from 2026-09-01; other columns use the fixed versions in section five. The table scrolls horizontally.
| Feature | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 01 Editor integration 9 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Official IDE extension or plugin We have no proprietary IDE extension. Editors connect through openprogram acp; ACP-native editors such as Zed need no extension. This row counts proprietary plugins only. claude /ide · codex app-server drives the VS Code extension · buddy --ide | · | ● | ● | · | ● | ◐ | · | · | · | ● | ● | ● | ● |
| IDE-driven through ACP openprogram acp speaks ACP v1 over stdio through acp/server.py: initialize negotiation, session new/load, streaming prompt turns with tool_call reports, cancel, and permission requests forwarded to existing approval. docs/interfaces/acp.md provides Zed agent_servers configuration. openclaw acp · opencode acp · hermes acp · buddy --acp · gm internal --experimental-acp | ● | · | · | ● | ● | ● | · | · | · | · | · | ○ | ● |
| LSP diagnostics and symbol navigation Our lsp/ JSON-RPC stdio client supplies lsp_diagnostics/lsp_references/lsp_definition in the core toolset. Python uses pyright, TS uses typescript-language-server; missing binaries produce installation guidance. Two languages are covered, versus about 25 in Hermes. claude ENABLE_LSP_TOOL | ● | ○ | · | · | ○ | ● | · | · | · | ○ | · | · | ○ |
| Editor selections and open files in context Our acp/server.py fully converts resource/resource_link in ACP prompts: selections/open files enter path-fenced context, with persisted path mentions. Protocol and persistence tests cover this. Proprietary IDE extensions are a separate row. codex /ide · opencode extension · gm internal IDE companion | ● | ● | ● | · | ● | · | · | · | · | ● | ● | ● | ● |
| Inline completion buddy product.json productFeatures.InlineCompletions | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| Inline chat, CodeLens, and status-bar actions buddy InlineChat / CodeLens / StatusBar / CodeAction / FloatShortcut | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| Automatic terminal-shortcut configuration claude /terminal-setup · buddy /terminal-setup covers over ten terminals | · | ● | · | · | · | · | ◐ | · | · | ● | · | ● | ● |
| Browser control Our core browser tool provides 28 actions through both the default registry and deferred catalog; release runtime installs Chromium. openclaw dedicated Chrome profile · hermes five backends · codex chrome@openai-bundled | ● | ○ | ● | ● | · | ● | · | · | · | ○ | ● | ○ | · |
| Desktop GUI control Our gui_agent program (GUI-Agent-Harness) provides desktop control and is statically registered in openprogram/programs/_programs.py. Release runtime includes GPA detector weights and Chromium, but explicitly excludes heavy dependencies such as PyTorch, OpenCV, and EasyOCR, so this remains partial. codex computer-use@openai-bundled · buddy ComputerUse disabled by default · openclaw peekaboo | ◐ | · | ● | ● | · | · | · | · | · | · | ● | ○ | ○ |
| 02 Sessions and history 17 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Resume the last session Various --resume / -c commands | ● | ● | ● | ● | ● | ● | ● | · | ● | ● | ● | ● | ● |
| Branch or fork sessions codex fork · OpenClaw Control UI fork/rewind/branch · opencode --fork · buddy /fork | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | · | ● |
| Multiple histories within one session Our context/git/dag.py head pointer · OpenClaw transcript branch · pi-mono /tree session tree; not equivalent to an independent worktree per branch | ● | ◐ | · | ● | · | · | ● | · | · | ◐ | · | · | ◐ |
| Store the session itself in a git repository Our store/session/git_session.py uses one repository per session. History JSON nodes can be created, have output/metadata filled, or be deleted under a lock. Current head and optional branch refs in meta.json use CAS; title/archive use locked atomic replacement. Other implementations mainly use JSONL or SQLite | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| Manual context compaction Various /compact commands; our Web action and TUI /compact both call dispatcher.trigger_compaction | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Automatic compaction at a threshold Our context/engine.py defaults to 0.80; dispatcher/loop_runner.py first snips over-threshold context and automatically compacts if it remains over the threshold | ● | ● | ◐ | ● | ● | ● | ● | · | · | ● | ◐ | ● | ● |
| Rewind history and restore files Our _rewind.py · claude /rewind · buddy /rewind Beta · hermes checkpoints disabled by default | ● | ● | ○ | · | ● | ○ | ◐ | · | · | ● | ○ | ● | ● |
| Export a session to a file Our CLI and REST export the active branch of a specified session as Markdown or self-contained HTML, redacting content and tool data by default through store/session/export.py. pi-mono /export · openclaw /export-trajectory · opencode export --sanitize | ● | ● | ◐ | ● | ● | ● | ● | · | · | ● | ◐ | ● | ● |
| Generate a public sharing link opencode /share to opncd.ai · pi-mono /share to GitHub gist | · | ● | · | · | ● | · | ● | · | · | ● | · | · | · |
| Full-text session search Our store/session/search.py uses ripgrep on sessions/*/history/*.json; without rg it scans individual files in Python and bounds result count · OpenClaw per-agent SQLite transcript FTS · hermes session_search FTS5 | ● | ● | ◐ | ● | · | ● | · | · | · | ● | ◐ | · | · |
| Archive sessions openprogram sessions archive/unarchive calls session_db.set_archived through cli/commands/sessions.py::_cmd_session_archive; list --archived/--all provide views. Archiving hides sessions from the default list but does not guarantee permanent retention: startup age/capacity cleanup may still remove old archives. codex archive/unarchive · OpenClaw sessions archive · OpenCode session archive | ● | · | ● | ● | ● | · | · | · | · | · | ● | · | · |
| Background or detached sessions buddy --bg with codebuddy ps/logs/attach/kill · hermes /background | ◐ | ● | ◐ | ● | ● | ● | · | · | · | ● | ◐ | · | ● |
| Move a running session to another device or client claude /teleport · codex --remote · OpenClaw paired devices/cloud workers · opencode attach · buddy --remote-control | · | ● | ● | ● | ● | · | · | · | · | ● | ● | ○ | ● |
| Cross-channel takeover of the same session Our TUI /attach uses attach_session to bind a channel/account/peer to an existing session and explicitly returns the replaced binding · openclaw /dock · hermes /handoff | ● | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Steer a running turn Our Web/TUI expose steer. ws_actions/runtime.py submits instructions to the dispatcher; loop_runner injects and persists them at message boundaries. Web falls back to ordinary queued messages on not_running; TUI only reports failure. Tests cover admission, persistence, final sweep, and Web ACK fallback. openclaw /steer · hermes /steer · pi-mono Enter queues and Alt+Enter follows up | ● | · | · | ● | · | ● | ● | · | · | · | · | · | · |
| Context-usage visualization Our Web /api/sessions/{id}/context shows token categories through shared session_stats. TUI /context currently sends an unregistered action and cannot show statistics, so only some interfaces are confirmed. OpenClaw Control UI provides a context meter | ◐ | ● | ● | ● | · | ◐ | ◐ | · | · | ● | ● | · | ● |
| Temporary side sessions outside main history codex /side and /btw · openclaw /btw · hermes /background | · | · | ● | ● | · | ● | · | · | · | · | ● | · | · |
| 03 Code understanding 10 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Semantic or vector code search Our semble_search/semble_find_related are registered core/research tools. Release runtime installs the search extra and verifies semble, making them directly available. Source-only development checkouts must install the extra themselves. openclaw QMD indexes arbitrary directories | ● | · | · | ● | · | · | · | · | · | · | · | · | ◐ |
| Read-only exploration subagent opencode explore · claude Explore · gm internal codebase_investigator · buddy code-explorer | ◐ | ● | · | · | ● | · | ◐ | · | · | ● | · | ● | ● |
| External dependency/documentation research agent Official OpenCode agent documentation lists Scout, but stable v1.18.25 source defines only General and Explore as built-in non-hidden subagents, not Scout; marked unconfirmed according to the stable-source boundary | · | · | · | · | · | · | · | · | · | · | · | · | · |
| Register external directories or repositories as named context opencode references through @aliases | · | · | · | · | ● | · | · | · | · | · | · | · | · |
| Generate project instruction files Our TUI /init synchronously creates generic AGENTS.md, SOUL.md, and USER.md templates, preserving existing files and reporting created/skipped individually; it does not analyze project code. claude /init · buddy /init | ◐ | ● | ● | ◐ | ● | · | · | · | · | ● | ● | · | ● |
| Read project instructions in other agents’ formats opencode reads CLAUDE.md and .claude/skills · buddy reads AGENTS.md when CODEBUDDY.md is absent | ◐ | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Read existing conversation history as context Our read_conversation · openclaw sessions_history · hermes session_search | ● | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Built-in deep-research workflow Our public research_agent is included in product runtime, exposes chat/CLI entries, and runs the complete research process. buddy builtin/workflows/deep-research.workflow.js uses five parallel branches and three voting-based validations | ● | · | · | ◐ | · | · | · | · | · | · | · | · | ● |
| Answer product questions from its own documentation Our docs_question workflow discovers and loads local documentation and answers with advance_head=False · claude claude-code-guide subagent · gm internal get_internal_docs · openclaw docs command | ● | ● | · | ● | · | · | · | · | · | ● | · | ● | ◐ |
| Image and PDF input Our Web/channels accept attachments. Images become ImageContent; PDFs are saved in the session workdir and read with pdf/read. TUI has no equivalent file-picker entry | ◐ | ● | ● | ● | ● | ● | ● | · | ◐ | ● | ● | ● | ● |
| 04 Version control 10 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Generate commit messages Our /commit-message reads staged or unstaged changes with GIT_OPTIONAL_LOCKS=0. Status is limited to 20,000 characters and total model input to 80,000. A tool-free model generates a candidate without committing. buddy GenerateCommitMessage · claude /commit | ● | ● | · | ● | · | ● | · | · | · | ● | · | · | ● |
| Commit, push, and create a PR OpenProgram does not bundle this default skill; commits and remote writes follow ordinary tool permissions and user authorization. Codex managed worktrees support commit, push, and open PR; buddy commit-push-pr allowedTools permits only gh pr create | · | ● | ● | ● | · | ● | · | · | · | ● | · | · | ● |
| PR or Issue comment-triggered bot Codex GitHub integration supports @codex task/review · opencode /oc mentions · buddy GitLab @codebuddy · gm internal @gemini-cli | · | ● | ● | ● | ● | ● | · | · | · | ● | · | ● | ● |
| Create a worktree directly from a PR number or URL Our worktree_create pr parameter accepts a number, #number, or GitHub PR URL; WorktreeManager resolves the checkout ref · buddy -w #PR or PR URL supports GitHub/GitLab/CNB | ● | ● | · | · | ◐ | · | · | · | · | ● | · | · | ● |
| Worktree-isolated execution Our worktree/manager.py · Claude Code and Codex managed worktrees · OpenClaw managed worktrees · OpenCode v1.18.25 has the core implementation but experimental HTTP routes · hermes -w · buddy isolation: worktree | ● | ● | ● | ● | ○ | · | ● | · | · | ● | · | · | ● |
| Synchronize local untracked files after worktree creation Our WorktreeManager calls sync_include_files after creation, using only repository-relative untracked paths from git ls-files --others and preserving their relative paths in the target. Claude Code, Codex, OpenClaw, Hermes, and Buddy support .worktreeinclude | ● | ● | ● | ● | · | ● | · | · | · | · | · | · | ● |
| Shadow git without modifying user history Our store/shadow_git · opencode snapshot enabled by default · hermes checkpoints disabled by default | ● | ● | · | · | ● | ○ | ◐ | · | · | ● | · | ○ | ● |
| AI authorship in git history codex ext/git-attribution | · | · | ● | · | · | · | · | · | · | · | ● | · | · |
| Security review of the current diff Our security_review workflow reads the current git diff and uses a review agent with restricted tools to produce severity-ranked findings and file/line references without advancing the main-session head · buddy /security-review · claude /security-review | ● | ● | · | · | · | · | · | · | · | ● | · | · | ● |
| Non-git version control claude CLAUDE_CODE_PERFORCE_MODE · buddy WorktreeCreate hook supports SVN/Perforce | · | ● | · | · | · | · | · | · | · | ● | · | · | ◐ |
| 05 Tasks and planning 11 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Todo-list tools Various todowrite / TaskCreate; pi-mono has only an example extension | ● | ● | ● | ● | ● | ● | ◐ | · | · | ● | ● | ● | ● |
| Plan mode Our enter_plan_mode · gm internal /plan is experimental | ● | ● | ● | · | ● | ◐ | ◐ | · | · | ● | ● | ○ | ● |
| Goal-condition-driven autonomous loop Our agent/goal/judge.py uses an independent judge model · claude /goal · codex /goal · buddy /goal · hermes /goal | ● | ● | ● | · | · | ● | · | · | · | ● | ● | · | ● |
| Scheduled tasks Our Scheduler tools and REST API register one-shot, recurring, and monitor tasks. A resident worker executes agent prompts or controlled commands; scheduler-worker supports --once/--list. Codex Automations supports recurring background tasks | ● | ● | ● | ● | ◐ | ● | · | · | · | ● | · | · | ● |
| Periodic proactive heartbeat OpenProgram removed the dedicated Commitments heartbeat. Scheduler monitors periodically run agent prompts but have no default main-session heartbeat semantics for channel delivery, silence, and importance filtering. Openclaw heartbeat and cron are separate paths | ◐ | · | · | ● | · | · | · | · | · | · | · | · | · |
| Standing authorization for long-running autonomy openclaw standing orders with trigger and escalation rules | · | · | · | ● | · | · | · | · | · | · | · | · | · |
| One-shot, recurring, and monitor tasks linked to long-term memory OpenProgram Scheduler reuses signed execution specs, frozen sandbox policies, and the resident worker. Tasks can store workspace_id + memory_id and resolve the current Topic block only at execution. The Memory writer no longer infers Commitments; old commitments.jsonl receives a one-time migration only. | ● | · | · | ● | · | · | · | · | · | · | · | · | · |
| Model-generated orchestration scripts for large-scale parallel tasks Our create_workflow lets models generate and publish orchestration scripts; auto_workflow selects or creates one before execution. Execution is serialized by a process-level RLock and limited to 40 actual steps, without large-scale parallel semantics. buddy ultracode supports up to 1000 subagents with concurrency 16 · claude Dynamic Workflows · codex code mode disabled by default | ◐ | ● | ○ | · | · | · | · | · | · | ● | ○ | · | ● |
| Typed workflow runtime with approval checkpoints Our Agent method derives JSON schema from Python signatures. requires_approval enters fail-closed approval only when a function is an outer AgentTool. Workflow calls have completed-call checkpoint/replay but no cross-process resumable human-approval checkpoint or declarative workflow DAG. openclaw Lobster with llm-task | ◐ | · | · | ● | · | · | · | · | · | · | · | · | · |
| Structured questions to users Our ask_user_question · OpenClaw ask_user · buddy AskUserQuestion · opencode question · hermes clarify | ● | ● | ◐ | ● | ● | ● | · | · | · | ● | ◐ | · | ● |
| JSON-schema-constrained output Our Tasks 1–6@2fb471b3: strict local Runtime/Agent validation, at most one repair, verified native/hidden-tool/explicit-prompt negotiation, CLI/Web typed lifecycle, record/replay v2, and no-tool session titles. Subsequent trust-boundary fixes reject remote refs, direct local reference cycles, over-budget schemas, and EOF without a raw terminal · buddy --json-schema with StructuredOutput · opencode format: json_schema | ● | ● | · | · | ● | · | · | · | · | ● | · | ◐ | ● |
| 06 Multi-agent 14 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Spawn subagents Our agent tool has three starting states · pi-mono has only an example extension · weclaw broadcasts messages to multiple external CLIs | ● | ● | ● | ● | ● | ● | ◐ | · | ◐ | ● | ● | ● | ● |
| Messaging between agents Our send_message · codex multi_agent_v1.send_message · buddy SendMessage | ● | ● | ● | ● | · | ◐ | · | · | · | ● | ● | · | ● |
| Persistent inbox with bounded cross-session deduplication Our agent/inbox.py uses a 60-second deduplication window and 50-entry limit · Claude also has a 50-entry cross-session inbox | ● | ● | · | · | · | · | · | · | · | ● | · | · | · |
| Persistent task board OpenClaw Workboard bundled plugin disabled by default · hermes ~/.hermes/kanban.db with per-project boards and automatic decomposition | · | · | · | ○ | · | ● | · | · | · | · | · | · | · |
| Agent teams: leader, members, and mailboxes buddy Agent Teams with @member completion and shared task lists · claude requires CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS | · | ○ | · | · | · | · | · | · | · | ○ | · | · | ○ |
| Interchangeable team execution backends Buddy supports in-process, separate-process, and tmux execution · claude teammateMode: iterm2 | · | ◐ | · | · | · | · | · | · | · | ◐ | · | · | ● |
| N-way merge of multiple branches Our agent/internals/_merge.py and subagent merge | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| Delegation mode: coordinator does not execute tasks directly buddy --permission-mode delegate restricts available tools to five | · | ○ | · | · | · | · | · | · | · | ● | · | · | ● |
| Multi-model consensus or cross-review Our mixture_of_agents · claude /advisor · openclaw oracle skill | ● | ● | · | ● | · | ● | · | · | · | ● | · | · | · |
| Subagent depth budget Our agent.max_spawn_depth defaults to 1 · Claude defaults to 3 · hermes max_spawn_depth | ● | ● | · | · | · | ● | · | · | · | ● | · | · | ◐ |
| Concurrency and per-session total-spawn limits Our agent/resource_governance.py applies per-session live/queued/total limits plus token, cost, and runtime limits, configured through config_schema and measured in the usage ledger · Claude concurrency 20 and 200 spawns per session · Hermes max_concurrent_children defaults to 3 | ● | ● | · | ● | ◐ | ● | · | · | · | ● | · | · | ● |
| Resume subagents from persistent state Calling our agent(to=…) again continues an existing persistent branch. If the target is busy, a process-crash window remains between persistent Job admission and inbox persistence; that deferred intent is not automatically recovered, so status is partial. Buddy uses agentId and agent-{id}.jsonl with a resume parameter on later calls | ◐ | · | · | · | · | · | · | · | · | · | · | · | ● |
| Function-call trees in the same session graph Our agentic_programming/call_state.py writes code nodes; store/session/session_node_writer.py and context/nodes.py unify caller/predecessor semantics | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| Restrict subagent tools by remaining message budget Our agent/internals/_model_tools.py reads the call-chain message budget while resolving tools; tests/unit/agent/jobs/test_spawn_caller_invariant.py verifies collaboration tools are removed when the budget is exhausted | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| 07 Memory and knowledge 10 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Long-term memory across sessions Our memory/ · codex memories disabled by default · openclaw built-in SQLite with FTS5 | ● | ● | ○ | ● | · | ● | · | · | · | ● | ○ | · | ● |
| Background memory organization and consolidation Our 3 a.m. reorganization · claude Dream System · openclaw dreaming requires opt-in | ● | ● | ● | ○ | · | · | · | · | · | ● | ● | · | ◐ |
| Pluggable external memory services Hermes eight memory providers · openclaw honcho / lancedb / QMD | · | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Memory compiled as a browsable wiki openclaw memory-wiki with sources and claims | · | · | · | ● | · | · | · | · | · | · | · | · | · |
| Skills and progressive disclosure Various SKILL.md systems; ours merges remote-cache, plugin, user, and project sources with remote caching and progressive disclosure | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Skill marketplace or remote installation openclaw ClawHub · hermes Skills Hub with eight sources · pi-mono pi install npm/git | ● | ● | ● | ● | · | ● | ● | · | · | ● | ● | ● | ● |
| Agents create their own skills claude skillify · hermes skill_manage · openclaw Skill Workshop disabled by default | · | ● | · | ○ | · | ● | · | · | · | ● | · | · | · |
| Skill/plugin security scanning or trust levels Our plugins/trust.py persists three trust levels; the loader rejects untrusted plugins and Web management APIs permit review/changes. Content scanning and community-plugin subprocess isolation are not implemented. Hermes four trust levels and scanning · buddy SkillSecurityScan disabled by default | ● | ● | ● | ● | · | ● | · | · | · | ● | ● | · | ○ |
| Load skill bundles Hermes bundles load a group of skills through a slash command | · | · | · | · | · | ● | · | · | · | · | · | · | · |
| Vendor knowledge-base integration Buddy knowledgeBases Tencent document source, referenceable with @ | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| 08 Extensions 11 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Plugin system Various implementations; our openprogram/plugins supports pip/npm/git/path | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Plugin marketplace Our plugins/marketplace.py supports built-in catalogs and custom marketplaces; Web Marketplace browses and invokes plugin installation APIs | ● | ● | ● | ● | · | ● | ● | · | · | ● | ● | · | ● |
| MCP client Our mcp/client.py covers the full lifecycle; pi-mono explicitly excludes MCP | ● | ● | ● | ● | ● | ● | · | · | · | ● | ● | ● | ● |
| MCP server for external programs openprogram mcp serve exposes list_tools/call_tool over stdio through mcp/server/server.py, with token authentication in auth.py and tool contracts/owner-paired mapping in service.py and contracts.py. Covered by tests/unit/test_mcp_server_{contracts,turns,auth,tools,security,cli}.py and tests/integration/programs/test_mcp_server.py. claude mcp serve · Codex codex mcp-server remains but is deprecated in favor of App Server/SDK · openclaw mcp serve · hermes mcp serve | ● | ● | ● | ● | · | ● | · | · | · | ● | ● | · | · |
| Interactive MCP HTML components buddy dist/web-ui/sandbox_proxy.html, io.modelcontextprotocol/ui specification | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| Event hooks Claude about 28 events · Buddy 26 · ours 32 | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Hooks support LLM judgments or HTTP callbacks Buddy and Claude both support command, prompt, agent, and http actions | · | ● | · | · | · | ◐ | · | · | · | ● | · | · | ● |
| Register new tools in user-written code opencode .opencode/tools/*.ts · pi-mono registerTool · codex experimental dynamicTools | ● | ● | ○ | ● | ● | ● | ● | · | · | ● | ○ | ◐ | ◐ |
| Register custom model providers codex model_providers · opencode provider.npm · buddy models.json hot reload | ● | ◐ | ● | ● | ● | ● | ● | · | · | ◐ | ● | · | ● |
| Migrate configuration/state from other agents Codex desktop/CLI import migrates Claude Code/Cursor setup and recent work · openclaw migrate-claude · hermes claw migrate | · | ● | ● | ● | · | ● | · | · | · | ● | ○ | ◐ | ◐ |
| Switch output style or personality Our context/output_style.py provides concise/explanatory/direct/detailed styles with user/project .md overrides. agent.output_style uses APPLY_LIVE in config_schema.py, taking effect immediately; the output_style component in context/components.py inserts style text into the system prompt. codex /personality · Hermes 14 personalities plus SOUL.md · Buddy three output styles | ● | ● | ● | ● | · | ● | · | · | · | ● | ● | · | ● |
| 09 Interfaces 12 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Terminal UI Our Ink and Rich implementations; weclaw has no terminal UI | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Web UI Our Next.js Web UI has chat, agents, workflows, sessions, settings, and other pages · Codex cloud Web · buddy --serve with xterm.js split views · gm internal /remote panel disabled by default | ● | ● | ● | ● | ● | ● | · | · | · | ● | · | ○ | ● |
| Desktop app Our Electron app supports dragging tabs across windows · codex codex app · opencode Electron Beta | ● | ● | ● | ● | ● | · | · | · | · | ● | ● | · | · |
| Mobile app or PWA Our apps/web/app/manifest.ts with 192/512/maskable PNG icons enables standalone PWA installation · openclaw iOS/Android node apps · buddy manifest.webmanifest supports PWA installation and QR pairing | ● | ● | ○ | ● | · | · | · | · | · | ● | ○ | · | ● |
| Chat-channel integration Ours has four · Claude Code includes Slack/Discord entries · Codex Slack integration depends on cloud account/workspace configuration · Openclaw 28 · Hermes 27 · Buddy six | ● | ◐ | ◐ | ● | ◐ | ● | · | · | ● | ◐ | · | · | ● |
| Voice input or output openclaw Swabble wake word and 14 TTS providers · Hermes hold Ctrl+B to talk; ours has only one working TTS provider, OpenAI | ◐ | ● | ○ | ● | · | ● | · | · | ◐ | ● | ○ | · | · |
| Incoming and outgoing phone calls openclaw voice-call uses Twilio, Telnyx, or Plivo, with DTMF support | · | · | · | ● | · | · | · | · | · | · | · | · | · |
| Theme switching Our Web settings persist multiple themes and auto; TUI /theme persists auto, dark/light, and dim variants. OpenClaw Control UI supports themes | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Vim mode Claude full modal engine with text objects · buddy /vim · codex /vim | · | ● | ● | · | · | · | ◐ | · | · | ● | ● | ● | ● |
| Fully remappable keyboard shortcuts Buddy keybindings.json has 16 contexts and key chords · Claude about 95 bindable actions | · | ● | ● | · | ● | · | ● | · | · | ● | ● | · | ● |
| Standalone binary without Node installation pi-mono bun build --compile · Buddy native installer and Homebrew tap · Weclaw uses Go | · | ● | ● | · | ● | · | ● | · | ● | · | · | · | ● |
| Screen readers and accessibility claude --ax-screen-reader · gm internal --screen-reader | · | ● | · | · | · | · | · | · | · | ● | · | ● | · |
| 10 Integration and interoperability 13 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| HTTP API server Our resident worker provides owner-authenticated FastAPI, REST, SSE, and WebSocket. A stable versioned remote-control SDK is a separate row and does not affect HTTP-server status. opencode serve with OpenAPI · buddy --serve with Swagger and PTY APIs | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | · | ● |
| OpenAI-compatible endpoint openclaw /v1/chat/completions disabled by default · hermes /v1/chat/completions and /v1/responses | · | · | · | ○ | · | ● | · | · | · | · | · | · | · |
| Official SDK for remote-control protocols Codex Python and TypeScript · opencode @opencode-ai/sdk · Buddy SDKs in two languages. OpenProgram’s local Python import API does not count as a remote-client SDK | · | ● | ● | · | ● | ◐ | ● | · | · | ● | ● | · | ● |
| CI integration Codex openai/codex-action@v1 · opencode GitHub Action · Buddy GitLab CI/CD component · claude /install-github-app | · | ● | ● | · | ● | ● | · | · | · | ● | · | ● | ● |
| Inbound webhook openclaw webhooks plugin connects Zapier/n8n · buddy /api/v1/webhooks with wecom and wechat-kf | · | ○ | · | ● | · | ● | · | · | · | ○ | · | · | ● |
| Control running sessions from mobile buddy --remote-control with Cloudflare tunnels and QR pairing · codex remoteControl pairing | · | ● | ○ | ● | · | · | · | · | · | ● | ○ | ○ | ● |
| Execute tasks in the cloud Codex cloud production service · OpenClaw cloud workers require explicit profiles · Claude cloud containers · Buddy sandbox e2b and Tencent Cloud CVM | · | ● | ● | ○ | · | · | · | · | · | ● | ○ | · | ● |
| Image generation Our core image_generate registers OpenAI, Gemini, and FAL backends, gated by available credentials and provider configuration; supports explicit/automatic selection and saving results. Openclaw ten backends · Hermes FAL with nine models · Buddy ImageGen gated by deployment profile | ○ | · | ● | ● | · | ● | ◐ | · | · | · | ● | · | ○ |
| Video generation Openclaw 16 backends · buddy Hunyuan-Video-Art | · | · | · | ● | · | ● | · | · | · | · | · | · | ○ |
| Web search Openclaw 12 interchangeable providers · Hermes eight including self-hosted SearXNG | ● | ● | ● | ● | ◐ | ● | · | · | · | ● | ● | ● | ● |
| Smart home and IoT openclaw openhue / sonoscli / camsnap · Hermes Home Assistant tools | · | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Attend meetings and produce minutes Openclaw Google Meet plugin and meeting-notes · Hermes Teams meetings | · | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Payment authorization card Buddy WeixinPayInterception pauses tasks for actual payment confirmation | · | · | · | · | · | · | · | · | · | · | · | · | ○ |
| 11 Deployment and operations 15 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Resident service and startup launch We write launchd plists and systemd units · claude server and self-hosted-runner | ● | ● | ● | ● | · | ● | · | · | ● | ● | ● | · | ● |
| Deployment documentation for multiple platforms Openclaw about 20 deployment targets including K8s and Fly.io · Buddy official Dev Container feature | · | ● | · | ● | ◐ | ● | · | · | ◐ | · | · | · | ● |
| Multiple identities or tenants Our agents add defines named personalities. channels/_access.py admits channel senders using eight-character pairing codes and stable sender IDs. agent/authority.py grants owner/paired authority; paired gets only reply and memory.source.append. Channels share one agent and memory workspace without tenant isolation. Hermes profile create provides separate gateways/memory · Openclaw multiple agents per gateway | ● | ◐ | · | ● | · | ● | · | · | ◐ | · | · | · | ● |
| Enforced enterprise-policy configuration codex configRequirements and MDM · opencode .mobileconfig · claude managed-settings.d | · | ● | ● | · | ● | · | · | · | · | ● | ● | ● | ● |
| Usage and cost display Various implementations; our usage/ledger.py computes actual per-million-token pricing | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Credit quotas and purchase entry Buddy model-specific credit multipliers and recharge deep links · Opencode Zen and Go subscriptions | · | ● | ● | · | ● | ● | · | · | · | · | · | · | ● |
| OpenTelemetry export Claude with Datadog and Perfetto · Buddy traces only, plus four default-off privacy switches · Openclaw plugin-based | · | ● | ● | ○ | ● | ◐ | · | · | · | ◐ | ● | ○ | ● |
| Self-update Various implementations; Weclaw replaces its own binary and clears macOS quarantine attributes | ● | ● | ● | ● | ● | ● | ● | · | ● | ● | ● | ● | ● |
| Isolated cold-start probe before upgrades Our cli/commands/upgrade.py checks /healthz and doctor on a temporary port before restart; post-restart validation failure only prints a manual rollback command, with no automatic rollback | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| Health checks Our doctor checks environment, extensions, providers, MCP, cache, worker, and Runtime HTTP. TUI /doctor calls the same /api/doctor and shows individual results; backend tests fix the results/all_ok response shape. openclaw doctor · buddy doctor | ● | ● | ● | ● | ◐ | ● | · | · | · | ● | ● | · | ● |
| Shareable diagnostic bundle openprogram diagnostics uses cli/commands/diagnostics.py::build_bundle to zip version/config/credentials/environment and log tails. Redaction reuses providers/recording.remove_secret_values plus substring key matching and GitHub/AWS/Google/JWT value patterns. Credential files are excluded; credentials.json records provider names/counts only. Covered by tests/unit/config/test_diagnostics_command.py. openclaw redacted diagnostics bundle · hermes debug share · codex doctor --json | ● | ◐ | ● | ● | · | ● | · | · | · | ◐ | ● | · | · |
| Back up and import application state Our cli/commands/backup.py provides backup create/list/restore/prune. INCLUDED explicitly allowlists memory, sessions, config.json, agents, skills, plugins, usage.db, etc. Credentials auth and mcp_tokens are excluded unless --include-credentials is passed, with a warning. Archives are written as tar.gz under <state>/backups/, first as .partial then renamed, with 0600 permissions. Read-back verification removes unreadable archives and reports errors. Restore has three safeguards: reject while worker/web runs, confirm unless --yes, and automatically save a pre-restore snapshot before overwriting. Extraction uses filter="data" plus per-member containment checks and skips all symlinks. Openclaw backup includes all state · Hermes backup and import | ● | ◐ | · | ● | · | ● | · | · | · | ◐ | · | · | · |
| Process prewarming to reduce startup latency Buddy cbc-prewarm uses Unix-socket notification. Its documentation reports startup falling from 3.7 seconds to about 1 ms; this page has not independently verified it | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| Multi-instance manager Buddy instances.json and web switching · Openclaw multiple gateways per machine | · | · | · | ● | · | ● | · | · | · | · | · | · | ● |
| Automatically start local model servers on demand Openclaw starts vLLM, llama.cpp, or MLX when selecting local models and stops idle services · codex --oss --local-provider | · | · | ● | ● | ◐ | ◐ | ◐ | · | · | · | ● | · | · |
| 12 Security 15 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| OS-level sandbox Our sandbox/__init__.py uses Seatbelt, Linux bubblewrap, and Windows WSL2-to-bubblewrap delegation. sandbox.mode defaults to auto in config_schema.py and activates available backends. Bash, execute_code, cron workers, MCP stdio servers, and spawned agents share backend/local.py wrapping; _with_hard_floor keeps agentics directories unwritable under any configuration. Codex three platforms · Opencode Docker installation only | ● | ● | ● | ● | ◐ | ● | · | · | · | ● | ● | ● | ● |
| Interchangeable sandbox backends Hermes seven terminal backends including Modal and Daytona · Openclaw docker/ssh/OpenShell · Buddy container/e2b/CVM | ● | · | ◐ | ● | · | ● | · | · | · | · | ◐ | · | ● |
| Multiple approval modes Our five approval modes plus owner/paired source authority in agent/authority.py restrict channel tools and provide structured reason_code. Buddy eight modes · Claude six; Weclaw approves automatically | ● | ● | ● | ● | ● | ● | ◐ | · | · | ● | ● | ● | ● |
| LLM-based automatic approval Our auto mode first applies fixed allow/deny sets; uncertain write/edit operations call permissions/classifier.py, rejecting on classification failure | ● | ● | ● | · | · | ● | · | · | · | ● | ● | · | ● |
| Mandatory deny rules that bypass cannot override Our permissions/approval.py applies explicit deny/ask and force_ask before bypass short-circuiting. test_deny_rule_blocks_even_under_bypass covers deny · Hermes hardline · Buddy hard_deny | ● | ◐ | · | · | · | ● | · | · | · | ◐ | · | · | ● |
| Redirect deletion to recoverable storage We inject shell/Python/Node shims into LocalBackend and execute_code with session/turn context; manifests support openprogram trash list/restore. Context-free cron/background tasks, Docker/SSH, and bypassable entries are uncovered | ◐ | · | · | · | · | · | · | · | · | · | · | · | ● |
| Store credentials in the OS keychain Buddy uses Keychain, keyring, or Credential Manager · Codex optional keyring-store; ours uses plaintext files with mode 0600 | · | ● | ○ | · | · | · | · | · | · | ● | ○ | · | ● |
| Retrieve secrets through an external command Our auth/methods/credential_process.py obtains tokens through external commands, with argv arrays and no shell interpolation, configurable 60-second timeout, and cache_seconds deduplication. Helper stderr is redacted through the diagnostics redactor before errors/logging and truncated to 200 characters. Pi-mono interprets !-prefixed values as shell commands · claude apiKeyHelper · openclaw SecretRef | ● | ● | · | ● | · | ● | ● | · | · | ● | · | · | ● |
| Prompt-injection scanning Hermes scans AGENTS.md and .cursorrules, plus Tirith pre-execution content scanning | · | · | · | · | · | ● | · | · | · | · | · | · | · |
Private-network access and SSRF protection Ours be5eaa3c : unified URL/IP policy, synchronous/asynchronous peer-constrained transport, per-hop redirect and credential-origin restrictions, response/decompression/timeout limits, consumer registry, SDK fail-closed disposition, owner-only exact exceptions, doctor, and runtime audit. Scope is Runtime-owned HTTP; browser navigation and arbitrary-code networking require separate acceptance. Hermes blocks RFC1918/cloud metadata · Openclaw optional forward proxy | ◐ | · | · | ● | · | ● | · | · | · | · | · | · | · |
| Threat-model documentation or formal verification Our ui/remote-web-access.md defines five caller-threat classes and six security invariants for owner Web, but does not cover the entire product or provide formal verification. Openclaw MITRE ATLAS and machine-checked TLA+ models · Codex Bugcrowd disclosure | ◐ | · | ◐ | ● | · | ◐ | · | · | · | · | ◐ | · | · |
| Compliance controls and external-model switches Three internal editions follow the Gongfeng repository’s “AI Coding IDE Security Controls” when enabling external models | · | · | · | · | · | · | · | · | · | ● | ● | ● | ● |
| Silent audit reporting on every edit cc internal’s default plugin calls back on every Write/Edit and UserPromptSubmit; no switch was found | · | · | · | · | · | · | · | · | · | ● | · | · | ◐ |
| Private or offline deployment profile Our standard macOS/Linux CLI and server runtime support self-hosting, LAN/VPN, SSH tunnels, and same-machine HTTPS proxies. This does not imply fully offline model calls. buddy product.selfhosted.json · Openclaw self-hosting · Hermes Docker Compose | ● | · | · | ● | · | ● | · | · | · | · | · | · | ● |
| Remove user-question tools during unattended operation Our agent/attended.py removes ask_user_question at the policy layer, preventing tasks from stopping to await input | ● | · | · | · | · | · | · | · | · | · | · | · | · |
| 13 Developer experience 13 features | Ours | claude | codex | openclaw | opencode | hermes | pi-mono | pi-ai | weclaw | cc internal | cx internal | gm internal | buddy |
| Live cost visibility Various implementations; ours remains in the bottom bar | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Debug switches and categorized logging claude --debug "api,hooks" · about 30 environment-variable switches in ours | ● | ● | ● | ● | ● | ● | ● | · | · | ● | ● | ● | ● |
| Deterministic mock models driving complete agent loops Our tests/component/providers/scripted_provider.py scripts text, thinking, tool calls, errors, and multiple turns through the production provider registry and public stream entry · pi-mono faux provider | ● | · | · | · | · | · | ● | · | · | · | · | · | · |
| Request recording and replay Our openprogram recordings CLI (status/record/replay/off/list/show/delete/prune) and record_replay.mode/file configuration support concurrent cross-process recording and strictly offline replay without credential resolution · pi-mono HTTP/WebSocket recordings · buddy CODEBUDDY_RECORD_DIR / REPLAY_DIR | ● | · | ◐ | · | · | · | ● | · | · | · | ◐ | · | ● |
| Export sessions as training examples Hermes batch processing generates trajectories · Pi-mono depends on external pi-share-hf | · | · | · | · | · | ● | ◐ | · | · | · | · | · | · |
| Built-in reinforcement-learning training pipeline Hermes Tinker-Atropos GRPO and LoRA | · | · | · | · | · | ● | · | · | · | · | · | · | · |
| Usage insights report Buddy /insights generates HTML describing interaction habits and failure/interruption scenarios · claude /insights | · | ● | · | · | ◐ | ● | · | · | · | ● | · | · | ● |
| Proportion of human-written versus machine-written code buddy CodeAdoptionRate | · | · | · | · | · | · | · | · | · | · | · | · | ● |
| Model-independent diagnostic/recovery commands Our rescue has twelve probes · Openclaw crestodian provides configuration-free repair | ● | · | · | ● | · | ◐ | · | · | · | · | · | · | · |
| Switch providers within a session while preserving history compatibility Our Web/TUI can switch models within a session; providers/_shared/transform_messages.py normalizes cross-protocol messages, with tests for cross-provider tool-call ID replay | ● | · | · | · | · | · | ● | · | · | · | · | · | · |
| Rotate multiple API keys Our auth/usage.py and auth/pool.py support multiple credentials per provider, cooldown skipping, and several selection strategies; coverage currently includes only providers using the unified auth pool | ◐ | · | · | · | · | ● | · | · | · | · | · | · | · |
| Automatic model/provider fallback on failure Enabled by default in ours: fallback candidates are up to two other enabled models from the same provider. Switching occurs only for rate-limit/overload/service/timeout/network errors before content output. OPENPROGRAM_FALLBACK_MODELS explicitly selects a cross-provider sequence or disables fallback with off | ● | ● | · | ● | · | ● | ◐ | · | · | ● | · | ● | ● |
| Submit feedback and logs codex /feedback requests consent before including logs · buddy /feedback | · | ● | ● | · | · | ● | · | · | · | ● | ● | ● | · |
pi-ai is protocol reference source, not a runnable product; its empty column is retained to show the difference in audit units.cc internal and cx internal wrap upstream CLIs as launchers, so their feature status strongly depends on upstream; gm internal also reuses substantial upstream content. These 13 columns are not 13 independent product samples. Scores are weighted sums of confirmed status among these 160 features, not measures of quality, stability, security, user value, or market coverage.
Weighted across 160 features: ● counts as 1; ◐ and ○ each count as 0.5. Scores identify candidate differences within this inventory, not overall product rankings.
The gray band shows the minimum-to-maximum confirmed proportion across ten valid reference columns, excluding sparse-evidence pi-ai and weclaw. The vertical tick is the median; the blue dot is OpenProgram. A dot near the left indicates a lower confirmed proportion; one beyond the right exceeds all references. The largest gaps are integration and interoperability, interfaces, and version control.
cc internal is 8.0/14 (57%). OpenProgram tasks and planning is 8.5/11 (77%); the highest references, claude, openclaw, cc internal, buddy tie at 7.0/11 (64%). Sessions and history is 13.0/17 (76%) for OpenProgram versus OpenClaw 14.0/17 (82%), so it is not a leading category. The largest gaps to upper bounds are integration and interoperability (ours 19%, range 12%–73%), interfaces (54%, 38%–88%), and version control (60%, 10%–90%). Ranges include ten valid references; pi-ai (zero confirmed features) and weclaw (5%) are excluded for sparse evidence. Values are recomputed from the current full table and remain limited by feature definitions and version evidence.
Select entries where OpenProgram is · and at least one reference is not ·. These 56 are design candidates, not proven product defects; · may indicate an absent implementation or insufficient evidence in this round. Grouping follows the current product scope: one user, local machine, resident worker, general harness, and proprietary TUI/Web/desktop interfaces.
| Feature | Category | Confirmed references | Evidence |
|---|---|---|---|
| For further assessment 29 features | |||
| Automatic terminal-shortcut configuration | Editor integration | Five including Claude, cc internal, and gm internal | claude /terminal-setup · buddy /terminal-setup covers over ten terminals |
| Move a running session to another device or client | Sessions and history | Eight including Claude, Codex, Openclaw, and Opencode | claude /teleport · codex --remote · OpenClaw paired devices/cloud workers · opencode attach · buddy --remote-control |
| Temporary side sessions outside main history | Sessions and history | Four including Codex, Openclaw, and Hermes | codex /side and /btw · openclaw /btw · hermes /background |
| Register external directories or repositories as named context | Code understanding | opencode | opencode references through @aliases |
| Commit, push, and create a PR | Version control | Six including Claude, Codex, Openclaw, and Hermes | Codex managed worktrees support commit, push, and open PR. OpenProgram does not bundle this default skill; remote writes follow ordinary tool permissions and user authorization |
| AI authorship in git history | Version control | Codex, cx internal | codex ext/git-attribution |
| Standing authorization for long-running autonomy | Tasks and planning | openclaw | openclaw standing orders with trigger and escalation rules |
| Persistent task board | Multi-agent | Openclaw (disabled by default), Hermes | OpenClaw Workboard bundled plugin disabled by default · hermes ~/.hermes/kanban.db with per-project boards and automatic decomposition |
| Agent teams: leader, members, and mailboxes | Multi-agent | Claude, cc internal, Buddy | buddy Agent Teams with @member completion and shared task lists · claude requires CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS |
| Delegation mode: coordinator does not execute tasks directly | Multi-agent | cc internal, Buddy | buddy --permission-mode delegate restricts available tools to five |
| Memory compiled as a browsable wiki | Memory and knowledge | openclaw | openclaw memory-wiki with sources and claims |
| Agents create their own skills | Memory and knowledge | Claude, Openclaw (disabled by default), Hermes, cc internal | claude skillify · hermes skill_manage · openclaw Skill Workshop disabled by default |
| Load skill bundles | Memory and knowledge | hermes | Hermes bundles load a group of skills through a slash command |
| Interactive MCP HTML components | Extensions | buddy | buddy dist/web-ui/sandbox_proxy.html, io.modelcontextprotocol/ui specification |
| Hooks support LLM judgments or HTTP callbacks | Extensions | Four including Claude, cc internal, and Buddy | Buddy and Claude both support command, prompt, agent, and http actions |
| Migrate configuration/state from other agents | Extensions | Eight including Claude, Codex, Openclaw, and Hermes | Codex import migrates Claude Code/Cursor setup and recent work · openclaw migrate-claude · hermes claw migrate |
| Vim mode | Interfaces | Seven including Claude, Codex, and cc internal | Claude full modal engine with text objects · buddy /vim · codex /vim |
| Fully remappable keyboard shortcuts | Interfaces | Seven including Claude, Codex, and Opencode | Buddy keybindings.json has 16 contexts and key chords · Claude about 95 bindable actions |
| Screen readers and accessibility | Interfaces | Claude, cc internal, gm internal | claude --ax-screen-reader · gm internal --screen-reader |
| OpenAI-compatible endpoint | Integration and interoperability | hermes | openclaw /v1/chat/completions disabled by default · hermes /v1/chat/completions and /v1/responses |
| Official SDK for remote-control protocols | Integration and interoperability | Eight including Claude, Codex, and Opencode | Codex Python and TypeScript · opencode @opencode-ai/sdk · Buddy SDKs in two languages |
| Inbound webhook | Integration and interoperability | Five including Openclaw, Hermes, and Buddy | openclaw webhooks plugin connects Zapier/n8n · buddy /api/v1/webhooks with wecom and wechat-kf |
| Control running sessions from mobile | Integration and interoperability | Seven including Claude, Openclaw, and cc internal | buddy --remote-control with Cloudflare tunnels and QR pairing · codex remoteControl pairing |
| OpenTelemetry export | Deployment and operations | Nine including Claude, Codex, and Opencode | Claude with Datadog and Perfetto · Buddy traces only, plus four default-off privacy switches · Openclaw plugin-based |
| Process prewarming to reduce startup latency | Deployment and operations | buddy | Buddy cbc-prewarm uses Unix-socket notification. Its documentation reports startup falling from 3.7 seconds to about 1 ms; this page has not independently verified it |
| Automatically start local model servers on demand | Deployment and operations | Six including Codex, Openclaw, and cx internal | Openclaw starts vLLM, llama.cpp, or MLX when selecting local models and stops idle services · codex --oss --local-provider |
| Store credentials in the OS keychain | Security | Five including Claude, cc internal, and Buddy | Buddy uses Keychain, keyring, or Credential Manager · Codex optional keyring-store; ours uses plaintext files with mode 0600 |
| Prompt-injection scanning | Security | hermes | Hermes scans AGENTS.md and .cursorrules, plus Tirith pre-execution content scanning |
| Usage insights report | Developer experience | Five including Claude, Hermes, and cc internal | Buddy /insights generates HTML describing interaction habits and failure/interruption scenarios · claude /insights |
| Outside the current product scope 12 features | |||
| Official IDE extension or plugin | Editor integration | Eight including Claude, Codex, and Opencode | claude /ide · codex app-server drives the VS Code extension · buddy --ide |
| Generate a public sharing link | Sessions and history | Four including Claude, Opencode, and Pi-mono | opencode /share to opncd.ai · pi-mono /share to GitHub gist |
| PR or Issue comment-triggered bot | Version control | Eight including Claude, Codex, Openclaw, and Opencode | Codex GitHub integration supports @codex task/review · opencode /oc mentions · buddy GitLab @codebuddy · gm internal @gemini-cli |
| Interchangeable team execution backends | Multi-agent | buddy | Buddy supports in-process, separate-process, and tmux execution · claude teammateMode: iterm2 |
| Pluggable external memory services | Memory and knowledge | openclaw, hermes | Hermes eight memory providers · openclaw honcho / lancedb / QMD |
| Standalone binary without Node installation | Interfaces | Six including Claude, Codex, and Opencode | pi-mono bun build --compile · Buddy native installer and Homebrew tap · Weclaw uses Go |
| CI integration | Integration and interoperability | Seven including Claude, Codex, Opencode, and Hermes | Codex openai/codex-action@v1 · opencode GitHub Action · Buddy GitLab CI/CD component · claude /install-github-app |
| Deployment documentation for multiple platforms | Deployment and operations | Six including Claude, Openclaw, and Hermes | Openclaw about 20 deployment targets including K8s and Fly.io · Buddy official Dev Container feature |
| Multi-instance manager | Deployment and operations | openclaw, hermes, buddy | Buddy instances.json and web switching · Openclaw multiple gateways per machine |
| Export sessions as training examples | Developer experience | hermes | Hermes batch processing generates trajectories · Pi-mono depends on external pi-share-hf |
| Proportion of human-written versus machine-written code | Developer experience | buddy | buddy CodeAdoptionRate |
| Submit feedback and logs | Developer experience | Six including Claude, Codex, and Hermes | codex /feedback requests consent before including logs · buddy /feedback |
| Currently excluded 15 features | |||
| Inline completion | Editor integration | buddy | buddy product.json productFeatures.InlineCompletions |
| Inline chat, CodeLens, and status-bar actions | Editor integration | buddy | buddy InlineChat / CodeLens / StatusBar / CodeAction / FloatShortcut |
| Non-git version control | Version control | Claude, cc internal | claude CLAUDE_CODE_PERFORCE_MODE · buddy WorktreeCreate hook supports SVN/Perforce |
| Vendor knowledge-base integration | Memory and knowledge | buddy | Buddy knowledgeBases Tencent document source, referenceable with @ |
| Incoming and outgoing phone calls | Interfaces | openclaw | openclaw voice-call uses Twilio, Telnyx, or Plivo, with DTMF support |
| Execute tasks in the cloud | Integration and interoperability | Six including Claude, Codex, Openclaw, cc internal, and Buddy | Codex cloud production service · OpenClaw cloud workers require explicit profiles · Claude cloud containers · Buddy sandbox e2b and Tencent Cloud CVM |
| Video generation | Integration and interoperability | openclaw, hermes | Openclaw 16 backends · buddy Hunyuan-Video-Art |
| Smart home and IoT | Integration and interoperability | openclaw, hermes | openclaw openhue / sonoscli / camsnap · Hermes Home Assistant tools |
| Attend meetings and produce minutes | Integration and interoperability | openclaw, hermes | Openclaw Google Meet plugin and meeting-notes · Hermes Teams meetings |
| Payment authorization card | Integration and interoperability | buddy | Buddy WeixinPayInterception pauses tasks for actual payment confirmation |
| Enforced enterprise-policy configuration | Deployment and operations | Seven including Claude, Codex, and Opencode | codex configRequirements and MDM · opencode .mobileconfig · claude managed-settings.d |
| Credit quotas and purchase entry | Deployment and operations | Five including Claude, Codex, and Opencode | Buddy model-specific credit multipliers and recharge deep links · Opencode Zen and Go subscriptions |
| Compliance controls and external-model switches | Security | Four including cc internal, cx internal, and gm internal | Three internal editions follow the Gongfeng repository’s “AI Coding IDE Security Controls” when enabling external models |
| Silent audit reporting on every edit | Security | cc internal | cc internal’s default plugin calls back on every Write/Edit and UserPromptSubmit; no switch was found |
| Built-in reinforcement-learning training pipeline | Developer experience | hermes | Hermes Tinker-Atropos GRPO and LoRA |
.worktreeinclude synchronization, diff security review, current approval/recovery boundaries of typed workflows, model-generated serial workflows, and persistent subagent-branch continuation; those have been removed from this table. Uncovered recoverable-deletion backends/entries remain candidates. Reliable usage/effort data is absent, and section four is not implementation approval. Implemented credential_process has shell-free argv, configurable timeout, result caching, and redacted helper stderr.
Uses the original 78-item scope at baseline 414aa4de: 15 appeared in earlier documents, 63 were previously unlisted. Later status changes remain in this chart. “New” describes documentation coverage, not product release timing.
Select entries where OpenProgram is not · and all other twelve columns are ·. Conclusions apply only to section five’s versions/evidence; “unconfirmed” cannot establish absolute uniqueness.
| Feature | Confirmed implementation | Related mechanisms in other listed versions | Evidence |
|---|---|---|---|
| Function-call trees in the same session graph |
Agent method During execution, every function-call layer becomes a code node in the session DAG, sharing caller and predecessor edges with user/model messages and tool results. |
No equivalent implementation was confirmed in other listed versions this round.codex code mode uses model-generated JavaScript to call tools and is disabled by default; buddy ultracode generates parallel orchestration scripts; opencode and pi-mono records tool-call history, but this audit did not confirm nested function execution levels stored in the same session DAG. | agentic_programming/call_state.py · store/session/session_node_writer.py · context/nodes.py |
| Store the session itself in a git repository |
Each session has a git repository. History JSON nodes can be created, have output/metadata filled, or be deleted under a lock.meta.json uses CAS for current head and optional branch refs; title/archive use locked atomic replacement. The system does not maintain a mutable full-transcript snapshot. |
No equivalent was confirmed in other listed versions. Examined implementations mainly use JSONL or SQLite for sessions. Several also use git for project-file snapshots, but storing conversation content itself in a git repository was not confirmed. | store/session/git_session.py · store/session/session_store.py |
| N-way merge of multiple branches |
Multiple parallel branches can share a base and merge through subagent merge or the web /merge into one branch. |
No N-way session-branch merge was confirmed elsewhere this round. Opencode and Codex can create sessions/threads; Pi-mono’s /tree can inject a discarded-branch summary at the current location, but has different semantics. |
agent/internals/_merge.py |
| Restrict subagent tools by remaining message budget |
When spawning a subagent, remaining message budget determines its available tools instead of a fixed allowlist. | Other implementations restrict tools using different conditions: claude uses agentDepth to decide whether spawning tools are available; buddy uses per-agent tool allowlists; opencode uses permission.task glob rules. |
agent/internals/_model_tools.py · tests/unit/agent/jobs/test_spawn_caller_invariant.py |
| Isolated cold-start probe before upgrades |
New code starts under a separate profile on a temporary port, polls /healthz and runs doctor. The existing instance restarts only after these checks pass. Post-restart version-validation failure prints a manual rollback command; automatic rollback is not implemented. |
No equivalent isolated pre-restart cold-start probe was confirmed in other listed versions. Examined references mainly restart after downloading or replacing files. | cli/commands/upgrade.py::_cold_start_probe · run_upgrade |
| Remove user-question tools during unattended operation |
A per-session switch controls whether the agent may request user input. In default unattended mode, policy removes ask_user_question from available tools, so tasks do not enter a state waiting for an answer. |
No equivalent per-session removal during tool resolution was confirmed elsewhere. Weclaw automatically handles ACP permission requests, Hermes imposes approval timeouts, and Opencode offers permission-check bypass parameters; these are different mechanisms. | agent/attended.py |
The following six batches support future framework-design discussions and are not approved implementation plans. Ordering considers irreversible risk, dependencies, protocol stability, and definable acceptance criteria. Usage statistics and reliable effort estimates are unavailable.
| Batch | Candidate scope | Existing foundation and dependencies | Ordering rationale and minimum acceptance |
|---|---|---|---|
| One | Irreversible operations and credentials: extend recoverable deletion to remaining execution paths. External-command credentials already exist as credential_process, with shell-free argv, configurable timeout, result caching, and helper-stderr redaction. | agent/permissions/approval.py Explicit deny is confirmed to precede bypass. The current worktree provides recoverable directories, manifests, and trash list/restore for common shell/Python/Node deletion APIs in local agent subprocesses with session/turn context. Context-free cron/background tasks, Docker, SSH, absolute-path commands, direct syscalls, and disabled injection are uncovered. This is not a security boundary or complete deletion audit. |
Address irreversible local-state changes and secret exposure first. Minimum acceptance: covered deletions go to recoverable storage; restore paths and distributed artifacts are tested; new paths preserve sandbox fail-closed behavior; secrets never enter ordinary config/logs; external commands have argument constraints, timeouts, and redaction. |
| Two | Deterministic loop tests: request recording, default redaction, and offline replay. | The worktree already has a test-only scripted provider driving text, thinking, tools, errors, and multiple turns through normal provider registration, including real agent_loop result reinsertion. Recording/replay now provide openprogram recordings a CLI and record_replay.mode/file configuration, with strictly offline replay and no credential resolution. |
Future protocol/session/permission changes need a stable regression baseline. Minimum acceptance: recordings redact by default; replay never accesses the network; event-order and failure differences are traceable; recording formats are versioned. |
| Three | Git workflows: diff security review, PR-to-worktree creation, and local-file synchronization through .worktreeinclude are confirmed. Default commit/push/PR product entries remain candidates. |
Currently, worktree/manager.py accepts PR numbers, #numbers and GitHub PR URLs, then calls sync_include_files; security_review after creation. The workflow reads the current diff and emits severity-ranked findings. Local capabilities do not automatically authorize remote writes. |
Few dependencies and close to existing coding workflows. Minimum acceptance: all remote writes require explicit authorization by default; dry-run support; preserve uncommitted changes; test GitHub/GitLab adaptations; review findings trace to the specific diff. |
| Four | External control protocols: ACP server and authenticated stdio MCP server are implemented; inbound webhooks, OpenAI-compatible endpoints, and remote-control SDK remain candidates. | openprogram acp ACP v1 reuses process_user_turn and existing approval; openprogram mcp serve reuses the tool registry, permission modes, and allow-pattern mappings. Local FastAPI/WebSocket actions are not a versioned third-party compatibility commitment. |
Define protocol/security boundaries first so clients do not invent conflicting behavior. Minimum acceptance: authentication on by default; explicit tool permission, cancellation, progress, and error semantics; passing external-client end-to-end tests; SDK wraps only stable protocols. |
| Five | Session operations: archiving, cross-channel takeover, and mid-turn steer are confirmed; temporary side sessions remain candidates. | TUI exposes /attach <channel> <account> <peer>; the server binds the target to the specified session and returns the replaced binding. Web/TUI steer is injected and persisted by the dispatcher at message boundaries, with queued-message fallback on failure. Existing SessionStore and branching do not imply an arbitrary /side entry point. |
Temporary side sessions change history visibility and first require persistence, cancellation, recovery, and cross-interface consistency semantics. This candidate still needs design approval. |
| Six | Interfaces and diagnostics: first ensure keyboard/screen-reader usability, then assess shortcut remapping, Vim, code-aware /init and usage insights. |
Web/TUI already persist themes, and Web provides a standalone PWA manifest/install icons; openprogram diagnostics already creates redacted zip diagnostic bundles. Currently, /init synchronously creates three generic templates, preserves existing files, and reports created/skipped individually without analyzing code. Keybinding work first needs a cross-interface configuration model. |
Accessibility is a basic acceptance requirement. Minimum acceptance: major flows work with a keyboard; screen readers have semantic labels; settings persist with clear scope. Shortcut remapping, Vim, code-aware initialization, and usage insights each need separate scope definitions. |
openprogram acp already covers that need. Enterprise policy, silent audit reporting, credit purchases, and organization-wide enforced configuration assume multi-user governance/commercial billing absent from the current single-user local product scope. Reassess if users or deployment change rather than reusing this conclusion.
This is primarily a static audit. OpenProgram uses current implementation/tests; Claude Code, Codex, OpenClaw, and OpenCode use official stable releases and matching documentation from 2026-09-01. Others use fixed local source, binaries, or packages. Except for explicit command output, not every subject received complete end-to-end acceptance.
| Entry | Audit content | Typical evidence |
|---|---|---|
| Feature-switch configuration | Confirms feature status and gating stages declared in structured configuration | Buddy product.json has 74 productFeatures · Codex features/src/lib.rs Stage levels · Claude about 70 tengu_ rollout gates |
| Command inventory | Enumerates user-callable slash commands, CLI subcommands, and shortcut entries | Codex tui/src/slash_command.rs has 51 · Buddy slash-commands.md 42 · Openclaw about 55 top-level CLI commands |
| Tool inventory | Confirms the model-callable tool set for a specified version | Buddy product.json tools[] has 47 · Hermes about 82 across 32 toolsets · Pi-mono seven, three disabled by default |
| Bundled agent definitions | Confirms preset agents and their tool allowlists | Buddy agents[] has 16 · Claude Explore / Plan / claude-code-guide / verification · gm internal codebase_investigator |
| README and help text | Confirms documented user-visible features; secondary evidence without implementation verification | Opencode 35 documentation pages · Hermes 48 feature pages · Openclaw about 350 documentation files |
| UI entries | Confirms reachable menus, panels, settings categories, and extension contribution points | Buddy dist/web-ui/manifest.webmanifest and sandbox_proxy.html · Hermes panel-plugin SDK |
| Subject | Evidence source | Notes |
|---|---|---|
| OpenProgram | integrated candidate@d91c3e66; JSON Schema separately uses 2fb471b3; Runtime URL SSRF separately uses be5eaa3c | General capabilities were checked against the 2026-09-01 integration candidate. Current code/tests confirm queuing and mid-turn steer, WebSocket lifecycle/error classification, session index/merged_heads, DAG persistence, cross-session agent provenance, scheduler, structured-output retry budgets, provider diagnostics, record/replay, credential_process, SessionStore lock scope, credential-file hardening, resource governance, cross-channel /attach, docs_question, PR worktree, .worktreeinclude, security_review, session archiving, backup, ACP, stdio MCP server, and three LSP tools. JSON Schema structured output and Runtime URL SSRF use their respective implementation/review/integration evidence. Documentation changes alone are not feature evidence. |
| claude-code | Official stable release v2.1.252 and official documentation; references/claude-code-leaked@a371abbe75ff Historical source supplement only | Current feature status follows official stable releases/documentation; reference source trees do not negate later public capabilities |
| codex | Official stable release rust-v0.152.0 and official documentation | Cloud, worktrees, Automations, GitHub/Slack, import, and App Server/SDK count as public production capabilities. Explicitly experimental items use ○ |
| openclaw | Official stable release v2026.8.1 and official documentation | Session search/archive, cloud workers requiring explicit profiles, managed worktrees, Control UI, ask_user, and Workboard use version-matched documentation. Cloud workers and Workboard are opt-in, marked ○ |
| opencode | Official stable release v1.18.25 and official documentation | Stable source defines only General and Explore as built-in non-hidden subagents, while current official documentation lists Scout. This conflict follows the stable-source boundary and Scout is unconfirmed. Worktree core exists but routes remain experimental, marked ○ |
| hermes | references/hermes-agent@d952b377aa3d | Fixed local source version, not claimed to be the latest release; documented claims have not uniformly become end-to-end runtime verification |
| pi-mono | references/pi-mono@3eb002766fff | |
| weclaw | references/weclaw@10711d0c6b7e | |
| pi-ai | Protocol reference source, not a product | Ten files, 4,493 lines. README states the directory does not participate in builds or runtime imports; src/utils/oauth/index.ts three re-exported files are absent from this snapshot. This column records protocol source only, not product functionality |
| Four Chinese implementations | Local npm packages: claude-internal 1.1.9 / claude 2.1.154, Codex-internal 0.0.8, gemini-internal 1.9.0, codebuddy 2.109.3 | cc internal and cx internal wrap upstream CLIs as launchers and are not independent samples. gm internal reuses substantial upstream content; Buddy is independently implemented |
| Trae | Implementation unavailable | Not installed locally, with no verifiable implementation/version snapshot obtained; excluded from the matrix. The reference-column count remains twelve |
| Subject | Version evidence | Official evidence changing matrix status this round |
|---|---|---|
| Claude Code | v2.1.252 release |
Six permission modes · Managed worktrees and .worktreeinclude |
| Codex | rust-v0.152.0 release |
worktree, .worktreeinclude, commit/push/PR · Cloud and Web · GitHub Action · GitHub comment triggers · Slack · Automations · import · App Server/SDK and MCP-server deprecation |
| OpenClaw | v2026.8.1 release |
Full-text search · Archiving · paired devices · Cloud workers requiring explicit profiles · Managed worktrees and .worktreeinclude · Fork/branch, context meter, and themes · per-agent SQLite · ask_user · Workboard disabled by default |
| OpenCode | v1.18.25 release |
Archive implementation · Stable-release agent definitions and Current agent documentation Scout conflict · worktree core · Experimental worktree routes |
| Item | Status |
|---|---|
| Feature matrix, 94.5 score, 56 candidate differences, 6 version-evidence differences | Mechanically computed from the current canonical table; general baseline: integrated candidate@d91c3e66. JSON Schema and Runtime URL SSRF retain their respective evidence at 2fb471b3 and be5eaa3c ; the four main comparators use official stable releases from 2026-09-01. Other external subjects have not received complete runtime acceptance |
| Six batches in section four | Design references, not claims of implementation or approval; recheck current status and estimate individually before implementation |
In the OpenProgram column, ◐ | means confirmed only for some interfaces/input paths; limitations are recorded in each evidence cell |
| Scores, category proportions, and candidate counts | Mechanically computed from matrix status, without quality or importance weights |