Harnesses

Claude Code

Anthropic's CLI. Headless -p mode with a real advisor, JSONL transcripts per project, JSON settings at four scopes, MCP in ~/.claude.json.
getHarness
getHarness("claude")
binary
claude
invoke modes
4 of 6 · official
model listing
no
mcp config
json · standard
agents file
~/.claude/CLAUDE.md

Claude Code is the harness most of the others borrow from: Cursor, Copilot, OpenCode and Mastra Code read .claude/skills/, Grok loads CLAUDE.md. Its own layout is settings in JSON at user, project, local and managed scopes, transcripts under ~/.claude/projects/ in a directory named after the dash-encoded working directory, and MCP servers in ~/.claude.json rather than in the settings file, which surprises everyone once.

--tools "" removes every tool from the model, so the advisor mode is real. There is no native read-only sandbox, so readOnly: true is rejected rather than approximated with a permission prompt you'd never see in headless mode.

Capabilities and invocation

mcp: yesvision: yesaudio: novideo: notools: yesstreaming: yes

Binary claude, evidence official. Headless print mode; add --output-format json for structured output. Model selection appends --model {model}.

advisor

{}

-p {prompt} --tools

advisor · json

{ structured: true }

-p --output-format json {prompt} --tools

read-only

{ readOnly: true }

rejected

read-only · json

{ readOnly: true, structured: true }

rejected

agent

{ tools: true }

-p {prompt}

agent · json

{ tools: true, structured: true }

-p --output-format json {prompt}

Paths

Templates as the registry stores them. ~, ${HOME} and %VAR% expand in resolve(); entries tagged with a platform are dropped on the others. Open in the explorer to see them expanded for a home directory of your choice.

config

  • ~/.claude/settings.jsonuser · official · all
  • ~/.claude.jsonuser · official · allGlobal MCP server configurations.
  • .claude/settings.jsonproject · official · all
  • .claude/settings.local.jsonproject · official · allLocal overrides, typically gitignored.
  • .claude/.mcp.jsonproject · official · allProject-scoped MCP server configurations.
  • /etc/claude-code/managed-settings.jsonsystem · official · linuxEnterprise managed settings.
  • /Library/Application Support/ClaudeCode/managed-settings.jsonsystem · official · darwinEnterprise managed settings.

sessions

  • ~/.claude/projects/<dash-encoded-cwd>/*.jsonldata · official · allPer-project session transcripts in JSONL format.
  • ~/.claude/history.jsonldata · official · allGlobal prompt history across all projects.

instructions

  • CLAUDE.mdproject · official · all
  • .claude/CLAUDE.mdproject · official · allAlternative project-level location.
  • ~/.claude/CLAUDE.mduser · official · allGlobal user-level instructions.

skills

  • .claude/skills/project · official · all
  • ~/.claude/skills/user · official · allGlobal user-level skills.

commands

  • .claude/commands/project · official · allLegacy slash commands, merged into skills.
  • ~/.claude/commands/user · official · allLegacy global slash commands.

hooks

  • .claude/hooks/project · official · all
  • ~/.claude/hooks/user · official · allGlobal user-level hooks.

MCP servers

~/.claude.jsonuser · json · standard · mcpServers
.mcp.jsonproject · json · standard · mcpServers

Detection

envVars

CLAUDE_CODECLAUDECODECLAUDE_CODE_ENTRYPOINTCLAUDE_CONFIG_DIR

projectMarkers

.claude/settings.json.claude/settings.local.json.claude/skillsCLAUDE.md

Persistence

  • JSON - Settings and MCP config files. (official)
  • JSONL - Session transcripts and global history. (official)

syncAgentsFiles links ~/.claude/CLAUDE.md to the master bundle.

@agntn/harnesses·MIT license· Paths follow the upstream CLIs and carry their evidence level. This site reads nothing from your machine.