opencode.jsonc.tmpl
3243 bytes
1// vim: ft=jsonc ts=2 sts=2 sw=2
2{
3 "$schema": "https://opencode.ai/config.json",
4 "autoupdate": false,
5 "permission": {
6 "edit": "allow",
7 "bash": {
8 "*": "ask",
9 "*sudo*": "deny",
10 "*terraform apply*": "deny"
11 },
12 "external_directory": {
13 "/home/pavle/dev/*": "allow",
14 "/home/pavle/.local/share/opencode/*": "allow",
15 "/home/pavle/.cache/*": "allow",
16 "/home/pavle/.cargo/*": "allow",
17 "/home/pavle/.gradle/*": "allow",
18 "/home/pavle/.m2/*": "allow",
19 "/tmp/opencode/*": "allow",
20 "/usr/lib/go/*": "allow",
21 },
22 "skill": {
23 "*": "allow",
24 "linear-update": "deny",
25 "qmd": "deny",
26 "share-tables": "deny"
27 },
28 "webfetch": "ask",
29 "websearch": "allow",
30 "codesearch": "allow",
31 "doom_loop": "ask"
32 },
33 "plugin": [
34 "/home/pavle/.local/lib/node_modules/@rynfar/meridian/plugin/meridian.ts"
35 ],
36 "provider": {
37 "llama.cpp": {
38 "npm": "@ai-sdk/openai-compatible",
39 "name": "llama-server (local)",
40 "options": {
41 "baseURL": "https://llama.home.theedgeofrage.com/v1"
42 },
43 "models": {
44 "qwen3.8-27b-q3": {
45 "name": "Qwen3.8 27B (local)",
46 "limit": {
47 "context": 65536,
48 "output": 32768
49 }
50 },
51 "gemma4-26b-a4b": {
52 "name": "Gemma 4 26B A4B (local)",
53 "limit": {
54 "context": 131072,
55 "output": 32768
56 }
57 },
58 "muse-glimmer-30b": {
59 "name": "Muse Glimmer 30B (local)",
60 "limit": {
61 "context": 131072,
62 "output": 32768
63 }
64 }
65 }
66 },
67 "anthropic": {
68 "options": {
69 "baseURL": "http://127.0.0.1:3456",
70 "apiKey": "meridian"
71 }
72 }
73 },
74 {{- if index (index . "agents" | default dict) "mcp" | default false }}
75 "mcp": {
76 "grafana prod": {
77 "enabled": false,
78 "type": "local",
79 "command": [
80 "uvx",
81 "mcp-grafana"
82 ],
83 "environment": {
84 "GRAFANA_URL": "https://grafana.prod.internal.dunetech.io/",
85 "GRAFANA_SERVICE_ACCOUNT_TOKEN": "{file:~/.local/share/opencode/grafana-prod-token}"
86 }
87 },
88 "grafana dev": {
89 "enabled": false,
90 "type": "local",
91 "command": [
92 "uvx",
93 "mcp-grafana"
94 ],
95 "environment": {
96 "GRAFANA_URL": "https://grafana.dev.internal.dunetech.io/",
97 "GRAFANA_SERVICE_ACCOUNT_TOKEN": "{file:~/.local/share/opencode/grafana-dev-token}"
98 }
99 },
100 "dune": {
101 "enabled": false,
102 "type": "remote",
103 "url": "https://api.dune.com/mcp/v1",
104 "oauth": {}
105 },
106 "linear": {
107 "enabled": false,
108 "type": "remote",
109 "url": "https://mcp.linear.app/mcp",
110 },
111 "sentry": {
112 "enabled": false,
113 "type": "remote",
114 "url": "https://mcp.sentry.dev/mcp",
115 "oauth": {}
116 },
117 "notion": {
118 "enabled": false,
119 "type": "remote",
120 "url": "https://mcp.notion.com/mcp",
121 }
122 },
123 {{ end -}}
124 "formatter": {
125 "clang-format": {
126 "disabled": true
127 }
128 },
129 "instructions": [
130 "/home/pavle/.cache/dune-sietch/sietch/bundles/base/instructions/dune-base.md"
131 ]
132}