Worker profiles configure how genie-cli spawns Claude Code workers. Each profile bundles:
- Launcher:
claude(direct) orclaudio(via LLM router) - Claudio Profile: Which claudio model routing profile to use (if using claudio)
- Claude Args: CLI arguments passed to Claude Code
The template config (templates/genie-config.template.json) includes these profiles:
| Profile | Launcher | Purpose |
|---|---|---|
coding-fast |
claudio | Fast autonomous workers via LLM router (default) |
autonomous |
claudio | Opus-level autonomous workers for complex tasks |
safe |
claude | Interactive workers with permission prompts |
interactive |
claude | Direct claude, no special flags |
genie profiles listgenie profiles add my-profile
# Interactive prompts for:
# - Launcher (claude or claudio)
# - Claudio profile name (if claudio)
# - Claude args (space-separated)genie profiles show coding-fastgenie profiles rm my-profile
# Requires confirmationgenie profiles default coding-fastterm spawn implementor --profile coding-fast
term spawn implementor --profile safe # For interactive workterm work bd-123 --profile autonomous # Use opus for complex issue
term work bd-123 --profile safe # Interactive with permissionsIf no --profile flag is provided, the defaultWorkerProfile is used.
Profiles are stored in ~/.genie/config.json:
{
"workerProfiles": {
"my-profile": {
"launcher": "claudio",
"claudioProfile": "coding-fast",
"claudeArgs": ["--dangerously-skip-permissions", "--model", "sonnet"]
}
},
"defaultWorkerProfile": "my-profile"
}| Field | Type | Required | Description |
|---|---|---|---|
launcher |
"claude" | "claudio" |
Yes | Which binary to invoke |
claudioProfile |
string | No | Claudio profile name (required if launcher is claudio) |
claudeArgs |
string[] | Yes | Arguments passed to Claude Code |
| Arg | Purpose |
|---|---|
--dangerously-skip-permissions |
Autonomous mode (no permission prompts) |
--permission-mode default |
Standard permission prompts |
--permission-mode plan |
Plan mode by default |
--model opus |
Use Opus model |
--model sonnet |
Use Sonnet model |
--allowedTools Read,Grep,Glob |
Restrict to specific tools |
When using claudio launcher, the worker goes through your LLM router:
- Claudio reads its config from
~/.claudio/config.json - Uses the specified
claudioProfilefor model routing - Passes
claudeArgsthrough to Claude Code
This enables:
- Custom model routing (use different models for opus/sonnet/haiku)
- API URL customization (use local or proxy endpoints)
- Profile-based model selection without changing genie config
Copy the template to get started:
cp templates/genie-config.template.json ~/.genie/config.jsonOr run setup which will offer to create default profiles:
genie setup