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.