Parent directory

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}