---
title: "coding.sh harness · coding.sh docs"
description: "Snapshot and list agent harness bundles; audit which memory and instruction files agents use. sh harness and its subcommands, from its own --help."
canonical: https://coding.sh/docs/cli/harness
human_url: https://coding.sh/docs/cli/harness
markdown_url: https://coding.sh/docs/cli/harness.md
agents_url: https://coding.sh/agents.md
llms_url: https://coding.sh/llms.txt
updated: 2026-11-11
---

# coding.sh harness

Snapshot and list agent harness bundles; audit which memory and instruction files agents use. sh harness and its subcommands, from its own --help.

coding.sh harness --help

```
coding.sh harness <action>

  Snapshot and list agent harness bundles; audit which memory and instruction files agents use

Commands
  snapshot      Snapshot an agent's harness files into a bundle
  list          List harness bundles
  audit         Count the sessions that loaded, read and wrote each memory, AGENTS.md, rule and skill file; warn about subagent files Claude Code misreads

Notes
  A harness TOML can carry Claude Code plugins too: plugins = ["terse", "./plugins/mine"], with a directory relative to the TOML file.
  A plugin is looked up read-only in plugins/installed_plugins.json under $CLAUDE_CONFIG_DIR (default ~/.claude), or read from a directory with .claude-plugin/plugin.json. Its whole directory is stored in the bundle. A run writes it under the run's own home and starts Claude Code with --plugin-dir; your Claude config is not touched.
```

## `coding.sh harness snapshot`

Snapshot an agent's harness files into a bundle.

coding.sh harness snapshot --help

```
coding.sh harness snapshot [options]

  Snapshot an agent's harness files into a bundle

Options
  -a, --agent <AGENT>    Agent id (required)
      --name <NAME>      Bundle name (default: agent and date)
      --dir <DIR>        Project directory (default: current directory)
      --file <TOML>      Build the bundle from a harness TOML instead
      --model <MODEL>    Model to record
      --plugin <PLUGIN>  claude-code: carry this Claude Code plugin, an installed one (name or name@marketplace) or a plugin directory (repeatable). Only the plugins named here are carried

Examples
  coding.sh harness snapshot --agent claude-code --name base
  coding.sh harness snapshot --agent claude-code --name with-terse --plugin terse
  coding.sh harness snapshot --agent claude-code --plugin ./my-plugin
```

## `coding.sh harness list`

List harness bundles.

coding.sh harness list --help

```
coding.sh harness list

  List harness bundles
```

## `coding.sh harness audit`

Count the sessions that loaded, read and wrote each memory, AGENTS.md, rule and skill file; warn about subagent files Claude Code misreads.

coding.sh harness audit --help

```
coding.sh harness audit [options]

  Count the sessions that loaded, read and wrote each memory, AGENTS.md, rule and skill file; warn about subagent files Claude Code misreads

Options
  -a, --agent <AGENT>  Only this agent's sessions and files
      --since <WHEN>   Only at or after this time: 7d, 12h, 30m, today, yesterday or a date. A date without a zone is local time: 2026-11-09 is local midnight (default: 30d)
      --limit <N>      Files to list, flagged first (default: 40)
      --fresh          Wait for every pending capture to be ingested (default: answer after 1.5 s)

Examples
  coding.sh harness audit
  coding.sh harness audit --agent claude-code --since 90d
  coding.sh harness audit --json
```

[All commands](https://coding.sh/docs/cli) · [Global options](https://coding.sh/docs/cli#global)

To set coding.sh up for a user, follow the agent workflow at [/agents.md](https://coding.sh/agents.md).
