Your agent. Your rules.

Tired of repeating the same instructions? Cross out the coding-agent behavior you dislike; xout turns your choices into readable rules for Claude Code, Codex, and other supported tools.

15 choices · 8 behavior axes · one portable rules file

Local session. No API key. Review before applying.

uvx xout open --lang en

Each choice narrows the catalog; the resulting profile is rendered as eight rules. Review before you enable a target.
Watch a real terminal session: 15 choices, 8 rule lines (0.6 MB GIF) A real xout terminal session: fifteen choices produce eight rule lines for review.

Turn the behavior that keeps annoying you into a rule you can review.

Compare the same request before and after you choose and enable a rule. The after text is illustrative: an agent can still diverge.

Before

Illustrative: Agent: “Should I start?”

After

Illustrative: “Fixed. Tests pass. Here is what changed.”

XOUT.md

Portable Markdown rules connected to a selected target through an xout-owned line or block.

manifest.json

The evidence and source behind every rule.

settings.xout.json

A proposal to review; until you explicitly grant a target, external instruction files are untouched.

After review, grant one target with --grant; xout records consent and adds only its owned line or block. Undo removes xout-owned additions.

Eight behavior axes: autonomy, scope, tests, comments and docs, error handling, commits, verification, and dependencies. Different choices in routine and hard-to-reverse scenes can add a condition to a rule.

Cross out one response; keep a rule draft you can read.

These pairs are illustrative examples, not a promise about every agent response.

Illustrative example: the input is “Fix the bug.” One possible response is “Should I start?” and another is “Fixed. Tests pass.” Your choice is recorded as a draft such as “Act first on reversible changes; confirm first on irreversible ones.” A later session may respond “Fixed. Tests pass. Here is what changed.”

The storyboard is an illustrative example; the animation is decoration, not a behavior guarantee.

Crossed out

Illustrative before: asks whether tests and cleanup are in scope.

Kept

Illustrative after: fixes pagination, runs relevant tests, and reports the evidence.

6,561 (3⁸; 8 axes, 3 values each)Example after one choice: 4,3748 rule lines

The counter tracks catalog possibilities, not agent compliance. XOUT.md contains the rules; manifest.json records their evidence. Use xout why to trace a rule back to your choices.

Autonomy rule draft

Draft: Write a short plan first, then proceed. For hard-to-reverse work such as deletes, pushes, deploys, and migrations, ask for approval before executing.

Make your first rules.

Start with uvx

Have uv installed? Run this in your terminal. No permanent xout installation needed.

uvx xout open --lang en

--lang en selects English; the default is Korean. At the end, review the rules saved in ~/.claude/xout/. Accept only to apply to Claude Code; decline to choose another tool below.

Install with pip instead

No uvx? Install once with pip, then start a session. Choose this path or uvx, not both.

pip install xoutxout open --lang en

Choose the agent that should use the rules

Review XOUT.md and its evidence in manifest.json, then run only the command for your tool. After pip install xout, use the commands below. Using uvx? Start each command with uvx xout instead of xout. --grant authorizes the selected target's owned line or block.

Codex

xout enable --grant --target codex --lang en

Claude Code

xout enable --grant --target claude --lang en

More registered targets

xout targets --lang en

Check in a fresh agent session

Status checks installation, not obedience. Open a fresh agent session and repeat a small request to check the rule in practice. Optional xout probe uses an external runner and may incur provider charges.

xout status --lang en

Remove xout additions

xout undo --lang en
Install as a checksum-verified Claude Code plugin
  1. Download and extract

    Download the plugin ZIP, SHA256SUMS, and the verifier together. Check the checksums first, then extract into a fresh versioned directory.

    python3 verify_checksums.py SHA256SUMS --only xout-plugin-1.1.0.zip verify_checksums.pytest ! -e "$HOME/.local/share/xout-plugin-1.1.0"python3 -m zipfile -e xout-plugin-1.1.0.zip "$HOME/.local/share/xout-plugin-1.1.0"
  2. Install locally

    Install the extracted package from your local marketplace.

    claude plugin marketplace add "$HOME/.local/share/xout-plugin-1.1.0"claude plugin install xout@xout-marketplace
  3. Enable it yourself

    Run the session as a conversation: the agent shows each pair in chat, you pick the one to X, and it records only that choice. Review the generated files, then explicitly grant the import before checking status.

    /xout:xout open/xout:xout enable/xout:xout status

Useful because you can see where it stops.

You own it

Your files, your install, and your decision to turn a target on are yours.

No LLM calls, no network, no telemetry

The whole session runs in your terminal. It makes no model calls or remote requests and leaves no analytics trail.

Append-only, deterministic record

Your choices are recorded in order; replaying the same ledger reproduces the same compiled artifacts.

Turning it on and off is explicit

Enable only after review and an explicit grant. Undo removes the xout-owned line or block, not unrelated content.

Check again after a week

After a week, review whether the rules still fit. A surviving choice is not proof that a rule is correct or followed.

One sentence, with the README behind it.

Cross out the behavior you do not want; xout leaves you a readable rule profile to review and enable on your machine.