# WeBot vs Claude Code

## Feature Matrix

| Capability | src-bak Claude Code | Clawcross WeBot | openclaw-claude-code | claw-code (Python mirror) |
|---|---|---|---|---|
| Startup / Init | Fast Bun bootstrap, OAuth + keychain prefetch, feature-flag driven entrypoints (`main.tsx`). | Flask + FastAPI services boot via `mainagent.py`/`front.py`, WeBot router ensures session auth before runtime payload. | Node/Bun CLI entry, session-manager prefetch. | Python script `src/main.py` entry with manifest-driven init (partial). |
| Query Engine / Loop | `QueryEngine.ts`, streaming, compact+recovery loops. | WeBot uses Claude-compatible prompt loop via `agent.py`, `webot_context.py` budgets, compaction helpers, and runtime store hooks. | session-manager orchestrates persistent sessions with streaming. | `query_engine.py` placeholder logic; not a running agent but includes state machine sketches. |
| Tool System | 60+ tools via `tools.ts`, Zod validation, tool registry with defer. | MCP tools for WeBot defined in `mcp_webot.py`, `webot_profiles.py`, `agent.py` injection. | Tools surface through embedded session-manager + persistent session APIs with deferred skills. | Tools mostly stubbed metadata; no actual MCP runtime. |
| Permission Pipeline | `webot_policy` + hooks; per-tool rules; session lifecycle hooks. | `webot_policy.py` normalizes hooks (before/after/permission/session events) and `webot_permission_context.py` enforces. | permission decisions scoped by session config. | Policy layer not mirrored (TODO). |
| Commands / Modes | /commands register + plan/review modes gated by `feature()`; session modes (plan/review/execute). | `webot_runtime.py` normalizes modes, `Agent` profiles enforce blocked tools; WeBot Service exposes `session-mode`. | CLI predefines command palette plus session mode selection in `session-manager`. | `src` scaffolds session metadata but lacks commands. |
| MCP / Extensibility | Model Context Protocol tooling and server exposures. | `mcp_webot.py` exposes spawn/send/inbox/ultraplan/ultrareview tools plus session mode API. | Provides MCP-like JS modules exposing session tool proxies. | No MCP server; Python workspace references saved snapshot metadata. |
| History / Persistence | history JSONL, transcripts, tool-result stored under `~/.claude`. | `webot_runtime_store.py` records runs, attempts, inbox, artifacts, session state; `webot_service` exposes aggregated runtime view. | Session-manager persists in IndexedDB / server storage. | `src-bak` snapshot accessible via `src/reference_data`; Python lacks persistence. |
| Subagent / Control Plane | AgentTool spawn/resume/separate worktrees/remote runs. | Durable run leases (`run_kind`, `lease_expires_at`, `heartbeat`), inbox, `spawn_subagent`, `cancel`, tooling recorded in runtime store. | Embedded council + subagent flows via `session-manager.ts`. | `claw-code` `src-bak` snapshot stored under `src-bak/` but no runtime. |
| Memory System | `memory/` directory per project, Sonnet recall. | `webot_memory.py` now maintains per-project memory dirs, `MEMORY.md`, daily logs, relevant-entry recall, and syncs the surface into `webot_runtime_store` + runtime DTO. | Memory entries surfaced via session metadata. | Python mirror missing memory service. |
| Kairos / autoDream | `services/autoDream` background agent + logs. | `webot_memory.py` + `webot_service.py` + `mcp_webot.py` now expose Kairos enable/disable, dream execution, daily logs, memory summary artifacts, and runtime-state persistence. | Not ported (Claude web). | Not implemented. |
| Ultraplan | Remote CCR session plan polling, teleport flag. | `mcp_webot.ultraplan_start/status`, artifact log, remote poll simulation, plan teleport placeholder, front-end runtime panel hooking into payload. | Session-manager includes plan prompt, remote session state. | No implementation. |
| Ultrareview | Reviewer fleet, 20 angles, coordinator. | `mcp_webot.ultrareview_start/status`, reviewer child runs, angle metadata, aggregator storing findings in artifacts. | Council review workflow built-in. | Not implemented. |
| Bridge / Remote Control | WebSocket bridge to claude.ai and direct connect API. | `webot_bridge.py` + `/webot/ws/{user_id}/{bridge_id}` now provide attach/detach session records, websocket path issuance, bridge runtime payload, runtime-snapshot pushes, browser auto-connect/reconnect in Studio, Flask BFF proxies, and MCP tools for bridge attach/status. | Bridge built for browser CLI integration. | None. |
| Voice Mode | CLI / CCR voice (requires OAuth). | WeBot reuses the existing audio/TTS stack and now persists voice mode state per session, surfaces it in runtime DTO/UI, and exposes BFF + MCP controls. | Session-manager voice stub. | CLI audio limited to placeholder functions. |
| Buddy | Tamagotchi companion with deterministic sprite + speech bubbles. | `webot_buddy.py` now provides deterministic buddy generation, persistent reaction state in runtime store, MCP/BFF actions, and runtime-panel rendering. Browser-native widget polish is still lighter than Claude Code’s terminal sprite system. | Not present. | Not present. |
| Frontend Runtime Visibility | Runtime panel showing plan/todos/runs/workspaces. | Studio now renders the current session as a first-class runtime card alongside subagents, with mode/verifications/approvals/runs/inbox/artifacts/relationships plus bridge/voice/buddy/memory controls mapped to the canonical runtime DTO. | Panel via session-manager UI. | Not a UI. |

## Current Parity Status

Clawcross now mirrors most of the Claude-Code-inspired product surface that is practical in a browser-first app: durable runtime store, MCP orchestration, mode gating, permission hooks, subagent control plane, run history, inbox delivery, plan/todo/verification persistence, compacted artifacts, current-session runtime UI, bridge attach/detach, voice state, buddy state, and Kairos/dream memory plumbing.

## Outstanding Alignments

- **Browser-native polish**: WeBot intentionally adapts Claude Code’s terminal UI into cards, controls, and websocket metadata. It still does not replicate Ink/Yoga/Vim/ANSI semantics.
- **Automation depth**: Kairos/dream is now callable and persisted, but still lacks a long-running autonomous scheduler equivalent to Claude Code’s always-on assistant mode.
- **Transport richness**: bridge attach/detach and websocket runtime snapshots are live, but a fuller remote viewer/editor client and more interactive direct-control protocol still remain.
