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.mdFrontmatter
---description: Specialized agent for REST and GraphQL API testingmode: primarymodel: anthropic/claude-sonnet-4-20250514permission: 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.
| Field | Type | Description |
|---|---|---|
description | string | What the agent is for |
mode | primary | subagent | all | primary agents can be run directly; subagent agents are delegated to via the task tool |
model | string | provider/model override |
temperature, top_p | number | Sampling controls |
steps | number | Max agentic iterations |
color | string | Hex or theme color |
permission | object | Per-tool permissions (see Permissions) |
hidden, disable | boolean | Hide 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 auditormode: primarypermission: 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:
cyberstrike --agent api-securityOr set it as the default in cyberstrike.json:
{ "default_agent": "api-security"}Browse agents in the TUI with /agents.
Best Practices
- Focused scope β one clear purpose per agent.
- Least privilege β allow only the tools the agent needs via
permission. - Clear prompt β be specific about methodology and output format.
- Version control β commit
.cyberstrike/agents/with the project.
Related Documentation
- Security Agents - Built-in agents and delegation
- Permissions - The
permissionfield - Configuration - Project and global config