| name | creating-opencode-agents |
| description | Use when creating OpenCode agents - provides markdown format with YAML frontmatter, mode/tools/permission configuration, and best practices for specialized AI assistants |
Creating OpenCode Agents
Expert guidance for creating OpenCode AI agents with proper configuration, tools, and permissions.
When to Use
Use when:
- User asks to create an OpenCode agent
- Need specialized AI assistant for specific tasks
- Building domain-focused development tools
- Configuring agent tools and permissions
Don't use for:
- OpenCode plugins (use creating-opencode-plugins skill)
- OpenCode slash commands (different format)
- Generic AI prompts (not OpenCode-specific)
Quick Reference
File Location
- Project:
.opencode/agent/<name>.md - Global:
~/.config/opencode/agent/<name>.md
Minimal Agent Structure
---
description: Brief explanation of the agent's purpose
mode: all
---
System prompt content here...
Required Fields
description(string): Brief explanation of the agent's purpose (REQUIRED)
Optional Fields
| Field | Type | Description |
|---|---|---|
mode |
primary | subagent | all |
How agent can be used (default: all) |
model |
string | Override model (e.g., anthropic/claude-sonnet-4-20250514) |
temperature |
number | Response randomness 0.0-1.0 |
prompt |
string | Path to prompt file: {file:./path/to/prompt.txt} |
maxSteps |
number | Maximum iterations (unlimited if unset) |
tools |
object | Enable/disable tools with boolean values |
permission |
object | Tool access: ask, allow, or deny |
disable |
boolean | Deactivate the agent |
Agent Modes
primary: Main assistant for direct interaction, switchable via Tab keysubagent: Specialized assistant invoked by primary agents or@mentionsall: Default; usable in both contexts
Common Patterns
Code Reviewer (Read-Only)
---
description: Reviews code for best practices and security
mode: subagent
model: anthropic/claude-sonnet-4-20250514
temperature: 0.1
tools:
write: false
edit: false
bash: false
read: true
grep: true
glob: true
permission:
edit: deny
bash: deny
---
# Code Review Agent
You are an expert code reviewer with deep knowledge of software engineering principles.
## Instructions
- Check for code smells and anti-patterns
- Verify test coverage
- Ensure documentation exists
- Review error handling and security
- Suggest improvements with examples
## Review Checklist
- [ ] Code follows project conventions
- [ ] Tests are comprehensive
- [ ] No security vulnerabilities
- [ ] Documentation is clear
Backend Developer
---
description: Node.js/Express API development with database optimization
mode: all
temperature: 0.3
tools:
read: true
write: true
edit: true
bash: true
grep: true
glob: true
permission:
bash:
"npm test": allow
"npm run *": allow
"git *": ask
"*": deny
---
# Backend Development Agent
You are a backend development expert specializing in Node.js, Express, and database optimization.
## Focus Areas
- RESTful API design
- Input validation and error handling
- Database query optimization
- Security best practices
## Standards
- Always use async/await
- Implement proper logging
- Validate all inputs
- Use TypeScript interfaces
Test Writer
---
description: Writes comprehensive test suites with high coverage
mode: subagent
temperature: 0.2
maxSteps: 50
tools:
read: true
write: true
bash: true
permission:
bash:
"npm test*": allow
"*": deny
---
# Test Writer Agent
You are a testing expert focused on comprehensive test coverage.
## Test Requirements
- Unit tests for all functions
- Edge case coverage
- Proper mocking
- AAA pattern (Arrange, Act, Assert)
- Descriptive test names
## Frameworks
- Vitest for unit tests
- Playwright for E2E
- MSW for API mocking
Documentation Writer (Limited Tools)
---
description: Technical documentation and API reference writer
mode: subagent
temperature: 0.5
tools:
read: true
write: true
edit: true
bash: false
---
# Documentation Agent
You write clear, comprehensive technical documentation.
## Focus
- API reference documentation
- README files
- Architecture docs
- Code comments and JSDoc
## Style
- Clear and concise
- Include examples
- Use proper markdown formatting
- Follow project documentation standards
Tools Configuration
Available Tools
| Tool | Description |
|---|---|
read |
Read file contents |
write |
Create new files |
edit |
Modify existing files |
bash |
Execute shell commands |
grep |
Search file contents |
glob |
Find files by pattern |
webfetch |
Fetch web content |
websearch |
Search the web |
Wildcard Patterns
Disable groups of tools with wildcards:
tools:
mymcp_*: false # Disable all MCP tools starting with mymcp_
Permission Configuration
Simple Permissions
permission:
edit: ask # Prompt before editing
bash: deny # Block all bash commands
webfetch: allow # Allow web fetching
Per-Command Bash Permissions
permission:
bash:
"git push": ask # Ask before pushing
"git *": allow # Allow other git commands
"npm test": allow # Allow testing
"*": deny # Deny everything else
Temperature Guidelines
| Temperature | Use Case |
|---|---|
| 0.0-0.2 | Code review, debugging, analysis |
| 0.3-0.5 | General development, refactoring |
| 0.6-1.0 | Documentation, brainstorming, creative work |
Common Mistakes
| Mistake | Problem | Fix |
|---|---|---|
| Missing description | Required field | Add description in frontmatter |
| Granting all tools | Security risk | Only grant necessary tools |
| Vague prompt | Ineffective agent | Be specific about domain and tasks |
| Wrong mode | Agent not accessible | Use all for flexibility |
| No tool restrictions | Agent can do anything | Use tools/permission to limit scope |
Best Practices
Naming
- Use kebab-case:
code-reviewer, notCodeReviewer - Be specific:
react-testing-expert, nothelper - Indicate domain:
aws-infrastructure,mobile-ui-designer
Prompts
- Define expertise area clearly
- List specific focus areas
- Specify standards/conventions
- Provide examples when helpful
- Set clear expectations
Security
- Grant minimum necessary tools
- Use permissions to restrict dangerous operations
- Disable bash for read-only agents
- Use glob patterns for bash permissions
- Consider maxSteps for long-running agents
PRPM Integration
Package Manifest (prpm.json)
{
"name": "@username/my-agent",
"version": "1.0.0",
"description": "My OpenCode agent",
"format": "opencode",
"subtype": "agent",
"files": [".opencode/agent/my-agent.md"],
"tags": ["opencode", "agent", "development"]
}
Installation
# Install from registry
prpm install @username/agent-name --format opencode
# Installs to: .opencode/agent/<agent-name>.md
Publishing
prpm publish
Navigation & Usage
- Tab key: Switch between primary agents
- @ mention: Invoke subagents (e.g.,
@code-reviewer check this function) +Right/Left : Navigate parent/child sessions
Troubleshooting
Agent Not Found
- Check file is in
.opencode/agent/ - Verify
.mdextension - Validate YAML frontmatter syntax
Tools Not Working
- Verify tool names (lowercase in OpenCode)
- Check permission settings
- Ensure mode allows tool access
Agent Ineffective
- Be more specific in prompt
- Add concrete examples
- Reference team standards
- Structure with markdown headers
Schema Reference: packages/converters/schemas/opencode.schema.json
Documentation: https://opencode.ai/docs/agents/