enabledPlugins["cc-safety-net@cc-marketplace"] entry from ~/.claude/settings.json (or $CLAUDE_SETTINGS_PATH) to decide whether the Claude Code plugin is enabled. If you installed CC Safety Net for a different agent, or as a manual Claude Code hook rather than the marketplace plugin, this indicator is not relevant to you.
Configure the status line
Add astatusLine entry to your ~/.claude/settings.json. Choose the runner that matches your environment:
- Bun (recommended)
- Claude X
- NPM
- Pipe with existing command
Status line indicators
The output is exactly one line with this shape:Level indicator
Exactly one level emoji is always present. It reports the effective safety level afterpolicy.json and the environment have been combined — not which environment variable you happened to set.
The
custom indicator appears in two cases: the enabled capabilities match no preset (for example CC_SAFETY_NET_PARANOID=1 on top of the default level, which turns on both paranoid capabilities but not fail_closed), or a per-rule entry in destructive_command_protection.overrides changes a destructive-command rule away from the state its level would have given it.
See Modes for what each level blocks, and Environment for the precedence rules that produce the effective level.
Worktree and degraded indicators
These are appended after the level emoji, in this order:
The ⚠️ marker is the only passive signal that configuration is degraded. It does not say which source failed — run
npx cc-safety-net status for the diagnostics, or npx cc-safety-net doctor for the full report. See Configuration recovery for what ready and degraded mean and how to repair each one.
Plugin-disabled indicator
This is the same condition that
status reports as the first item under Not active — the verdict stays ready or degraded, because a disabled plugin affects only the Claude Code integration. The statusline command checks this condition first and replaces the rest of the line, so no level, worktree, or degraded indicator appears alongside ❌.
The
❌ state specifically means the Claude Code marketplace plugin is disabled. If you run CC Safety Net as a manual Claude Code hook (not the marketplace plugin), or for a different agent entirely, the status line may show ❌ even though protection is active — it only reflects the enabledPlugins entry in ~/.claude/settings.json.Status line and status command differences
Both commands load the policy snapshot and resolved environment. They show the configuration state in different formats. status prints a multi-line terminal report with a verdict and one diagnostic per issue. The status line prints one line of emoji indicators and no diagnostics.
Use status when you want to know why; use the status line when you want a persistent at-a-glance marker. See CLI commands for the full status and statusline syntax, output, and exit behavior.
Changes to
~/.claude/settings.json take effect immediately — no restart of Claude Code is needed. The statusline command accepts -cc as a short alias for --claude-code.When you pipe another command into
statusline, its output is prefixed as <piped output> | 🛡️ CC Safety Net …. JSON piped on stdin is discarded rather than echoed, because Claude Code pipes its own status payload into the command.