command-output control for coding agents

Keep known command noise out of your coding agent's context.

cmdshape filters known boilerplate and repetition from command output routed through it. When no valid filter matches, it leaves semantic shaping off.

Install
curl -fsSL https://raw.githubusercontent.com/SuppieRK/cmdshape/main/scripts/install.sh | sh

Then run cmdshape init to connect detected coding agents.

agent integrations

One filtering layer, across the tools you already use.

Connect cmdshape to the coding agents already in your workflow.

  • Claude Code
  • Codex
  • OpenCode
  • Cursor
  • GitHub Copilot
  • Gemini
  • Windsurf
  • Roo Code
  • KiloCode
  • Qwen
  • Cline

the runtime contract

Filter known output noise. Keep the underlying tool.

Terminal output is written for human scanning. cmdshape keeps known banners, repeated status lines, and boilerplate out of routed output only when a command-aware filter can preserve the information needed for the next action.

Execute natively

The native command and exit status stay intact. A filter may normalize argv only when its contract documents that behavior.

Shape with evidence

Deterministic rules remove noise only when the command and output shape are understood.

Pass through doubt

Diagnostics, structured output, interactive modes, and --raw remain native.

rules you can inspect

Useful defaults. Your domain, your rules.

We ship useful defaults, but we do not pretend to know your domain. For repository scripts and domain-specific logs, author project-owned YAML, replay real output, and trust only the exact source you reviewed.

start with the command
version: 1
filter: "yarn"
cases:
  - id: "run-success"
    when_arguments:
      have_sequence: ["run"]
    compress_output:
      stdout:
        lines:
          skip:
            - starts_with: "yarn run v"
            - starts_with: "$ "
            - starts_with: "Done in "
native output
yarn run v1.22.22
$ node scripts/success.js
success-line-1
success-line-2
Done in 0.06s.

Scaffold a filter, capture a real command, verify the replay, then promote only when the behavior earns trust.

Read more about command-aware YAML filters

fixture-backed comparisons

Recorded examples from benchmark fixtures

The command on the left is recorded native fixture output. The right side is verified cmdshape output for that same case.

npm run success-noisy

recorded native → verified shaped

original
> cmdshape-npm-benchmark-basic@1.0.0 success-noisy
> node --test test/success.test.js

TAP version 13
# Subtest: add computes sums
ok 1 - add computes sums
  ---
  duration_ms: 0.366266
  type: 'test'
  ...
# Subtest: divide computes quotient
ok 2 - divide computes quotient
  ---
  duration_ms: 0.067165
  type: 'test'
  ...
1..2
# tests 2
# suites 0
# pass 2
# fail 0
# cancelled 0
# skipped 0
# todo 0
# duration_ms 37.905034
compressed
# Subtest: add computes sums
ok 1 - add computes sums
# Subtest: divide computes quotient
ok 2 - divide computes quotient
1..2
# tests 2
# pass 2
# fail 0
# duration_ms 37.905034

local command-boundary snapshot

Measure the output routed through cmdshape

cmdshape gain reports exact source, emitted, and net-reduction bytes. This local snapshot is not a benchmark or a promise about model tokens, billing, turns, task cost, or result quality.

LOCAL SNAPSHOT · LAST 30 DAYS
9,729 cmds · 77.4 MiB source → 76.1 MiB emitted (1.6% net reduction)
Most net reduction: find (808.7 KiB / 62%)
Low reduction: go (328.5 KiB / 6%) · git (101.9 KiB / 2%)