Skip to main content
The blacklist blocks commands that match its patterns before they run, without asking an LLM.

Always on

Blacklists are checked regardless of:
  • The host the agent is on
  • The specialty attached to the agent
  • The operational rules in context
  • Whether the agent is in Plan or Auto
  • Whether the agent is mid-task or starting
If the agent retries a blocked command 3 times, the task is terminated.

What to blacklist by default

Even in non-production environments, block the most destructive primitives: Glob wildcards (*, ?) are supported and patterns match anywhere in the command (substring match by default).

When the check cannot run

A command is blocked when its blacklist cannot load. An invalid stored regular expression also blocks commands and asks the operator to repair the configuration. A successful check is required before the command can run.

Restrict interactive tools where needed

Agents can answer supported terminal prompts, but full-screen interfaces and arbitrary interactive programs have limits. Restrict programs that your environment cannot safely support. The blacklist checks the command that opens a terminal, not input sent into an open session. Blacklist patterns are not a substitute for host permissions.

Block calls into known-broken paths

If an agent has repeatedly failed with a tool that has a known-bad UX (a CLI with confusing flags, an internal tool that errors silently), blacklist the bad invocation pattern and steer the agent elsewhere via a specialty or operational rule.

What blacklists are NOT

  • Not behavioral guidance. Use operational rules to guide behavior; use blacklists to stop specific commands.
  • Not a substitute for permissions. If the credential can run a destructive command, the blacklist is your last line - but scoping permissions is the better first line.
  • Not for nuanced cases. A pattern either matches or it doesn’t. If you need “block this in prod but allow in staging,” that’s an operational rule, not a blacklist entry.