Claude Code compatibility
dsh-cc aims for a useful Claude-Code-style workflow: the same agent loop, tool names, hooks, slash commands, and permission modes you are used to, running on the dsh harness. It is not byte-for-byte emulation of Claude Code, and it is not a goal to clone every vendor-bound feature.
dsh-cc is not Claude Code and is not a wrapper around Claude Code.
How to read parity honestly
Compatibility here is judged per capability, not as a single blanket claim. For each capability, four independent dimensions are tracked:
- Recognized — does dsh-cc understand the Claude Code form (a hook event, a slash command, a config key)?
- Mounted — is it actually wired into the shipped profile, or only present in the codebase?
- Behavior — does the underlying behavior match upstream (full/partial/missing)?
- UX — does the user-facing surface match?
A capability can be recognized but not mounted, or behave correctly while the UX differs. "Partial" is not a footnote to hide: it means usable today with known, documented differences. Several rows are deliberately marked missing — either because no design exists yet, or because the feature is vendor-bound and outside parity scope.
The single source of truth
The generated parity matrix tracks every capability row with these dimensions, evidence links, and deviation notes:
It is regenerated from a machine-readable capability manifest, so treat it as authoritative over any prose — including this page.
WARNING
The examples below describe the state as of dsh-cc v0.9.0 (cdfcca16). Check the matrix for the current state before relying on any of them.
A few example highlights (as of v0.9.0)
- Hook executors —
commandandhttpexecutors are always on;promptandagentexecutors are gated behindenablePromptHooks/enableAgentHooks, default off. Partial. - /resume — lists sessions, but switching is host-owned (
dsh --resume <id>). Partial. - Schedule / reminders —
after_seconds/at/every_seconds(>=300s) are supported; cron-expression selectors are not yet. Partial. - Background jobs — the dsh jobs tools carry the equivalent surface under dsh names; CC's
TaskCreate/TaskOutput/TaskStopnaming is not aliased. Partial. - WebSearch and plan mode — full parity, mounted by default.
- Divergent-by-design extension surfaces — v0.9.0 adds more dsh-cc extension rows beyond Claude Code, marked divergent in the matrix:
engine.moa(tiered cascade routing for the main conversation; its routing scope is main-session turns only — subagent sessions are never classified, overlaid, or judged; a notice sanitizer drops phantom[model changed: …]notices while the overlay is active; a mid-session/modelselection disarms moa until it returns to the boot pair),engine.acp-front-end(the ACP lane),engine.completion-gate,engine.verify-before-retry,engine.config-snapshot,sessions.progress-rebuild(default ON since 2026-10-16, was ship-dark), andsubagents.ephemeral-agents(allow-listed read-only one-shot agents). The same release also addsskills.usage-telemetryas a full-parity capability row. - Git worktrees — the worktree rows (
workspace.worktree-ecosystem,workspace.worktree-launcher,workspace.worktree-lifecycle,workspace.worktree-tools) are behavioral/ux partial, with downgrade-kind deviations (for example, no.worktreeincludeinclude-copy in launcher--worktreesessions). See /guide/worktrees. - Subagents and plugins —
subagents.isolationis behavioral/ux partial (downgrade);plugins.rules(the Cursor dialect) is behavioral divergent with partial ux;settings.actor-contractis behavioral divergent with partial ux;hooks.worktree-events(WorktreeCreate/WorktreeRemove) is behavioral/ux partial. - Permissions and auto mode — auto mode is now strict-rule and content evaluation is deny-first, matching Claude Code;
permissions.rulesstays partial./auto-modeis partial by design: read-only introspection rather than Claude Code's config-file editor. See /reference/permission-modes. - Workflow engine —
engine.workflowis behavioral divergent with partial ux (same-session replay only, per-user directory under$DSH_HOME); the Ralph loop is now its own full-parity row. Same-session workflow resume now matches each journal line by request hash rather than arrival position, so replay is order-independent for concurrent combinators likepipeline/parallel. - Hooks —
SubagentStart/SubagentStopare now partial: they report a constantagent_typeofgeneral-purposeand a child-scopedsession_id. - New dsh-cc extensions —
plugins.codex-bridgeandplugins.grok-bridge(first-party plugins, see /guide/plugins),plugins.foreign-rules(imports cline/windsurf/copilot rule files from the session cwd; opt out withcc-foreign-rules.disabled), andengine.advisor-watchdogare marked divergent./exportis now divergent because it redacts secrets, which Claude Code does not.
Next
- /reference/cli — the
dsh-ccbin and its flags. - /reference/commands — slash commands available in the TUI.