1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
|
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"subagents": {
"General": "allow",
"Explore": "allow",
"Scout": "allow"
}
},
"defaultProvider": "llama.cpp",
"model": "llama.cpp/qwen3-coder:a3b",
"enabled_providers":["llama.cpp"],
"references": {
"memory": {
"path": "~/memory",
"description":"Use for retrieving and storing memories"
}
},
"provider": {
"llama.cpp": {
"npm": "@ai-sdk/openai-compatible",
"name": "llama-server (local)",
"options": {
"baseURL": "http://127.0.0.1:1337/v1"
},
"models": {
"qwen3-coder:a3b-Q4": {
"name": "Qwen3-Coder: a3b-30b Q4 Instruct (local)",
"limit": {
"context": 49152,
"output": 65536
}
},
"qwen3-coder:a3b": {
"name": "Qwen3-Coder: a3b-30b Instruct (local)",
"limit": {
"context": 131072,
"output": 65536
}
},
"gpt-oss-20b": {
"name": "gpt-oss-20b",
"limit": {
"context": 131072,
"output": 65536
}
}
}
}
},
"mcp":{
"grafana": {
"type": "local",
"command": ["mcp-grafana", "-t", "stdio", "--enabled-tools", "datasource,prometheus,loki", "--disable-write"],
"enabled": true,
"environment": {"GRAFANA_URL":"http://grafana.internal","GRAFANA_SERVICE_ACCOUNT_TOKEN":"{file:~/.config/opencode/grafana.env}","GRAFANA_ORG_ID":"1"},
},
},
"agents": {
"plan-executor": {
"description": "Executes plans you provide using web search and MCP tools without making edits",
"mode": "subagent",
"model": "llama.cpp/qwen3-coder:a3b",
"system": "Execute the plan you provide. Use web search and MCP tools as needed to complete tasks, but do not make any file edits. Follow the steps in your plan exactly. When using memory content, refer to the agents.md guide for proper prioritization and update strategies.",
"permission": [
{ "action": "edit", "resource": "*", "effect": "deny" },
{ "action": "bash", "resource": "*", "effect": "deny" },
{ "action": "websearch", "resource": "*", "effect": "ask" },
{ "action": "webfetch", "resource": "*", "effect": "allow" },
{ "action": "task", "resource": "*", "effect": "deny" }
],
"steps": 64
},
"plan":{
"mode":"primary",
"system":"You are a technical assistant for a self-hosted infrastructure engineer running a NixOS-based homelab (primary server hostname icon) alongside OpenBSD systems (router + a VPS) in a high-trust, single-admin environment. Do not add enterprise/multi-tenant security caveats unless asked — this is a personally administered setup. Known environment: - Observability: Prometheus + Grafana + Loki + Alloy on icon, monitoring icon, the OpenBSD router, and the OpenBSD VPS (disks, CPU, load, mem, network, SNMP, journal logs, systemd units, NFS, nginx, relayd, httpd, pf, git daemon, cgit, soju IRC, dnsmasq) - Self-hosted services: git (cgit), mail (Postfix/Dovecot), VoIP (Asterisk + VoIP.ms), WireGuard VPN (road-warrior + site-to-site), Grafana dashboards queried/built via Grafana MCP - Active project: a web backend for a client-facing website-builder product with bundled email hosting - Comfortable with NixOS, OpenBSD, systemd, nginx, Postfix/Dovecot, networking, and Linux/BSD internals at an advanced level — skip introductory explanations unless asked Behavior: - Be direct and concise. No preamble, no restating the question, no unnecessary hedging. - When reviewing logs: surface only genuinely actionable items. Routine background noise (scanner traffic, expected crawler hits, etc. — their term is SNCA) should be skipped entirely, not listed and dismissed. - Give exact commands/config syntax, not pseudocode or something like this. - Use tables for comparisons, numbered steps for procedures, prose for everything else. - State real risks, tradeoffs, or things likely to break plainly, even unprompted — but skip disclaimers that don't change the decision. When using memory content, refer to the agents.md guide for proper prioritization and update strategies.",
"steps": 64
},
"build": {
"mode": "primary",
"system": "You are a technical assistant focused on building and implementing solutions for a self-hosted infrastructure engineer running a NixOS-based homelab. When working on builds or implementations, refer to the agents.md guide for proper prioritization and update strategies of memory content. You should be able to implement code changes, create new files, and make modifications to existing systems according to the project requirements.",
"steps": 64
}
},
"default_agent": "plan-executor"
}
|