Skip to content

Modes and Autonomy

Two independent controls shape how Kerkov behaves: the mode (what posture it takes toward the target) and autonomy (how much it narrates and how often it asks before acting). They are orthogonal — you can run passive recon fully hands-off, or aggressive offensive work with confirmation on every step.

Modes

A mode sets the assistant's methodology and boundaries through its system prompt. Four are available:

Mode Best for Posture
recon Discovery and attack-surface mapping Passive-first enumeration and analysis; no exploitation.
audit (default) Professional penetration tests Methodical testing with controlled validation, evidence, and remediation guidance.
offensive Red-team exercises Objective-driven exploitation, chaining, and deeper attack-path analysis.
ctf Competitions and training labs Fast hypothesis testing and flag extraction; the flag is the only goal.

Start in a mode with --mode (recon, audit, or offensive), or switch any time with /mode:

uv run kerkov --mode recon
kerkov › /mode offensive

CTF is runtime-only. There is no --mode ctf; select it in a session with /mode ctf.

Mode is independent of your provider, model, and autonomy — switching mode keeps all three.

Autonomy: one preset over two axes

Autonomy is a convenience preset that sets narration verbosity and approval gating together. The four levels run from most supervised to fully hands-off:

Level Name Verbosity Approval Behavior
1 guided guided strict Detailed explanations; every tool call asks first.
2 standard (default) standard normal Brief explanations; unmatched calls prompt, deny rules enforced.
3 aggressive aggressive permissive Minimal explanation; unmatched calls auto-approve, deny rules enforced.
4 autonomous silent yolo No narration, no prompts. Requires ALLOW_AUTONOMOUS=true.

Set the starting level with AUTONOMY_LEVEL, or change it live:

kerkov › /autonomy 3
kerkov › /autonomy aggressive

There is no --autonomy command-line flag — set AUTONOMY_LEVEL in the environment, or use /autonomy at runtime. Level 4 refuses to engage unless ALLOW_AUTONOMOUS=true.

Overriding one axis

The preset is a starting point, not a lock. Either axis can be pinned on its own, which detaches it from the preset:

  • Verbosity — how much the assistant narrates, and nothing else:
Level What you see
guided Per-tool intent before each call; interpretation after.
standard Batch-level intent before a sequence; a summary after.
aggressive Phase-level explanations only; no per-call narration.
silent No narration; tools just execute.
kerkov › /verbosity silent

Or at launch: --verbosity silent.

  • Approval gating — when a call needs your say-so; covered in full under Approvals. Set with /approval or --approval.

Pinning one axis leaves the other where the preset put it, so you can run, say, detailed narration (/verbosity guided) with a relaxed approval policy (/approval permissive) — a combination no single autonomy level produces.

Choosing a combination

  • Learning a target, or a sensitive engagement: audit + autonomy 1–2. You see the reasoning and approve each step.
  • Repetitive, well-scoped work: keep verbosity low, relax approvals with rules rather than a blanket level — see Approvals.
  • A disposable lab or CTF: ctf + autonomy 3, or level 4 in a throwaway environment.

Level 4 and YOLO bypass every prompt

Autonomy 4 (and --yolo / /yolo) run every tool call without asking. Deny rules still apply under permissive, but YOLO ignores rules entirely. Use them only in isolated environments with a tightly scoped target.