Skip to main content

Cyberstrike is now open source! AI-powered penetration testing for security professionals. Star on GitHub

Custom Agents

Create custom agents with their own system prompt, model, and permissions. Agents are Markdown files with YAML frontmatter.

📸 SCREENSHOT: custom-agent-config.png

Custom agent configuration file

File & Location

Custom agents are *.md files in an agent/ or agents/ directory inside any .cyberstrike/ folder (project or ~/.cyberstrike/). The agent’s id is its filename.

.cyberstrike/
└── agents/
├── api-security.md
└── compliance-audit.md

Frontmatter

.cyberstrike/agents/api-security.md
---
description: Specialized agent for REST and GraphQL API testing
mode: primary
model: anthropic/claude-sonnet-4-20250514
permission:
bash: { "*": "ask", "rm -rf *": "deny" }
edit: allow
---
You are an expert API security tester specializing in REST and GraphQL APIs.
Follow the OWASP API Security Top 10 …

The body (after the frontmatter) is the system prompt.

FieldTypeDescription
descriptionstringWhat the agent is for
modeprimary | subagent | allprimary agents can be run directly; subagent agents are delegated to via the task tool
modelstringprovider/model override
temperature, top_pnumberSampling controls
stepsnumberMax agentic iterations
colorstringHex or theme color
permissionobjectPer-tool permissions (see Permissions)
hidden, disablebooleanHide from the picker / disable

Caution

Restrict tools with the permission field. The old tools: map is deprecated, and there is no allowedCommands field — command restrictions are permission.bash glob rules (e.g. bash: { "nmap *": "allow" }).

Primary vs Subagent

Only primary agents can be selected with --agent or default_agent. If you want your agent to be runnable directly, set mode: primary. Otherwise it behaves as a subagent that the cyberstrike agent can delegate to.

---
description: Read-only auditor
mode: primary
permission:
edit: deny
bash: deny
read: allow
glob: allow
grep: allow
---
You are a read-only security auditor …

Using a Custom Agent

Once it’s a primary agent, select it:

Terminal window
cyberstrike --agent api-security

Or set it as the default in cyberstrike.json:

{
"default_agent": "api-security"
}

Browse agents in the TUI with /agents.

Best Practices

  1. Focused scope — one clear purpose per agent.
  2. Least privilege — allow only the tools the agent needs via permission.
  3. Clear prompt — be specific about methodology and output format.
  4. Version control — commit .cyberstrike/agents/ with the project.