Repository navigation
Expand file tree
/
Copy pathopencode.jsonc
More file actions
174 lines (174 loc) · 5.53 KB
/
Copy pathopencode.jsonc
File metadata and controls
174 lines (174 loc) · 5.53 KB
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
{
"$schema": "https://opencode.ai/config.json",
"update": "disable",
"model": "anthropic/claude-opus-5-5",
"default_agent": "build",
"shell": "/usr/bin/zsh",
"worktree": {
"directory": "/data/workspace/.worktrees"
},
"compaction": {
"buffer": 10000
},
"agents": {
"build": {
"permissions": [
{ "action": "*", "resource": "*", "effect": "allow" },
{ "action": "shell", "resource": "rm *.config*", "effect": "ask" },
{ "action": "shell", "resource": "rm *.local*", "effect": "ask" },
{ "action": "shell", "resource": "rm *HOME*", "effect": "ask" },
{ "action": "shell", "resource": "rm *~*", "effect": "ask" },
{ "action": "shell", "resource": "rm */data", "effect": "ask" },
{ "action": "shell", "resource": "rm */data/", "effect": "ask" },
{ "action": "shell", "resource": "rm */data/.*", "effect": "ask" }
]
},
"general": {
"permissions": [
{ "action": "grafana_*", "resource": "*", "effect": "deny" },
{ "action": "lunchmoney_*", "resource": "*", "effect": "deny" },
{ "action": "karakeep_*", "resource": "*", "effect": "deny" },
{ "action": "notion_*", "resource": "*", "effect": "deny" },
{ "action": "robinhood_*", "resource": "*", "effect": "deny" },
{ "action": "subagent", "resource": "*", "effect": "deny" },
{ "action": "skill", "resource": "*", "effect": "allow" },
{ "action": "execute", "resource": "*", "effect": "allow" },
{ "action": "context7_*", "resource": "*", "effect": "allow" },
{ "action": "shell", "resource": "rm *.config*", "effect": "ask" },
{ "action": "shell", "resource": "rm *.local*", "effect": "ask" },
{ "action": "shell", "resource": "rm *HOME*", "effect": "ask" },
{ "action": "shell", "resource": "rm *~*", "effect": "ask" },
{ "action": "shell", "resource": "rm */data", "effect": "ask" },
{ "action": "shell", "resource": "rm */data/", "effect": "ask" },
{ "action": "shell", "resource": "rm */data/.*", "effect": "ask" }
]
},
"explore": {
"permissions": [
{ "action": "shell", "resource": "*", "effect": "deny" },
{ "action": "edit", "resource": "*", "effect": "deny" },
{ "action": "grafana_*", "resource": "*", "effect": "deny" },
{ "action": "lunchmoney_*", "resource": "*", "effect": "deny" },
{ "action": "karakeep_*", "resource": "*", "effect": "deny" },
{ "action": "notion_*", "resource": "*", "effect": "deny" },
{ "action": "robinhood_*", "resource": "*", "effect": "deny" },
{ "action": "subagent", "resource": "*", "effect": "deny" },
{ "action": "skill", "resource": "*", "effect": "allow" },
{ "action": "execute", "resource": "*", "effect": "allow" },
{ "action": "context7_*", "resource": "*", "effect": "allow" }
]
},
"title": {
"model": "github-copilot/gpt-5.4-mini"
},
"compaction": {
"model": "anthropic/claude-opus-5-5"
}
},
"mcp": {
"servers": {
"notion": {
"type": "remote",
"url": "https://mcp.notion.com/mcp"
},
"robinhood": {
"type": "remote",
"url": "https://agent.robinhood.com/mcp/trading"
},
"karakeep": {
"type": "local",
"command": [
"npx",
"-y",
"@karakeep/mcp@0.33.1"
],
"environment": {
"KARAKEEP_API_ADDR": "{env:KARAKEEP_API_ADDR}",
"KARAKEEP_API_KEY": "{env:KARAKEEP_API_KEY}"
}
},
"lunchmoney": {
"type": "local",
"command": [
"npx",
"-y",
"@akutishevsky/lunchmoney-mcp@3.0.0"
],
"environment": {
"LUNCHMONEY_API_TOKEN": "{env:LUNCHMONEY_API_TOKEN}"
}
},
"grafana": {
"type": "local",
"command": [
"mcp-grafana",
"--transport",
"stdio",
"--enabled-tools",
"search,datasource,prometheus,loki,alerting,dashboard,navigation,annotations",
"--disable-write"
],
"environment": {
"GRAFANA_URL": "{env:GRAFANA_URL}",
"GRAFANA_SERVICE_ACCOUNT_TOKEN": "{env:GRAFANA_SERVICE_ACCOUNT_TOKEN}"
}
},
"context7": {
"type": "remote",
"url": "https://mcp.context7.com/mcp"
}
}
},
"skills": [
"/etc/opencode/skills"
],
"plugins": [
"opencode-gemini-auth@2.0.1",
"opencode-wakatime@1.4.0",
"superpowers@git+https://github.com/obra/superpowers.git#bb92a77741419a4ab5f06e711a283343f1ada0c3",
"@slkiser/opencode-quota@5.0.3",
{
"package": "opencode-runtime-fallback@0.3.0",
"options": {
"fallback_models": [
"openai/gpt-6-astra",
"google/gemini-4-argon",
"github-copilot/gpt-6-astra"
],
"retryable_error_patterns": [
"usage limits",
"exceeded your current quota"
],
"cooldown_seconds": 3600,
"timeout_seconds": 120
}
}
],
"policies": [
{
"action": "provider.use",
"resource": "*",
"effect": "deny"
},
{
"action": "provider.use",
"resource": "google",
"effect": "allow"
},
{
"action": "provider.use",
"resource": "github-copilot",
"effect": "allow"
},
{
"action": "provider.use",
"resource": "anthropic",
"effect": "allow"
},
{
"action": "provider.use",
"resource": "openai",
"effect": "allow"
}
]
}