{
  "auth": {
    "command": [
      "gh",
      "auth",
      "token"
    ],
    "env": "GH_TOKEN"
  },
  "config": {
    "$schema": "https://opencode.ai/config.json",
    "model": "github-copilot/gpt-5.3-codex",
    "small_model": "github-copilot/claude-haiku-4-5",
    "share": "disabled",
    "enabled_providers": [
      "github-copilot"
    ],
    "provider": {
      "github-copilot": {
        "options": {
          "timeout": 1800000,
          "chunkTimeout": 120000
        }
      }
    },
    "watcher": {
      "ignore": [
        "node_modules/**", "dist/**", ".git/**", "target/**", "build/**", ".gradle/**",
        ".idea/**", "*.iml", "*.ipr", "*.iws",
        ".vscode/**", ".settings/**",
        ".classpath", ".project", ".factorypath",
        ".springBeans", ".sts4-cache",
        ".apt_generated/**",
        "*.jar", "*.class", "*.war",
        "__pycache__/**", "*.py[cod]", "*$py.class",
        ".venv/**", "venv/**", "env/**",
        ".pytest_cache/**", ".mypy_cache/**", ".ruff_cache/**",
        ".tox/**", ".nox/**", ".hypothesis/**",
        "*.egg-info/**", ".eggs/**",
        "htmlcov/**", "coverage.xml", ".coverage", ".coverage.*",
        ".next/**", ".nuxt/**", ".nyc_output/**",
        ".terraform/**", "*.tfstate*",
        "Chart.lock",
        ".DS_Store", "*.log",
        ".cache/**",
        "vendor/**"
      ]
    },
    "mcp": {
      "github": {
        "type": "remote",
        "url": "https://api.githubcopilot.com/mcp/",
        "enabled": false,
        "oauth": false,
        "timeout": 60000,
        "headers": {
          "Authorization": "Bearer {env:GITHUB_TOKEN}"
        }
      },
      "context7": {
        "type": "remote",
        "url": "https://mcp.context7.com/mcp",
        "enabled": false
      },
      "atlassian": {
        "type": "remote",
        "url": "https://mcp.atlassian.com/v1/mcp",
        "enabled": false
      },
      "playwright": {
        "type": "local",
        "command": [
          "npx",
          "@playwright/mcp@0.0.68",
          "--extension"
        ],
        "enabled": false,
        "environment": {
          "PLAYWRIGHT_MCP_EXTENSION_TOKEN": "{env:PLAYWRIGHT_MCP_EXTENSION_TOKEN}"
        }
      },
      "stitch": {
        "headers": {
          "X-Goog-Api-Key": "{env:STITCH_API_KEY}"
        },
        "oauth": false,
        "type": "remote",
        "url": "https://stitch.googleapis.com/mcp",
        "enabled": false
      },
      "feedback": {
        "type": "local",
        "command": [
          "node",
          "{env:HOME}/.config/opencode/mcp/feedback-mcp/feedback-mcp.mjs"
        ],
        "environment": {
          "CANNY_API_KEY": "{env:CANNY_API_KEY}",
          "TYPEFORM_API_TOKEN": "{env:TYPEFORM_API_TOKEN}",
          "CHURNZERO_USERNAME": "{env:CHURNZERO_USERNAME}",
          "CHURNZERO_API_KEY": "{env:CHURNZERO_API_KEY}",
          "CHURNZERO_BASE_URL": "https://lightspeedhq.eu2app.churnzero.net/public/v1"
        },
        "enabled": false
      },
      "dovetail": {
        "type": "remote",
        "url": "https://dovetail.com/api/mcp",
        "headers": {
          "Authorization": "Bearer {env:DOVETAIL_API_TOKEN}"
        },
        "enabled": false
      },
      "figma": {
        "type": "remote",
        "url": "http://127.0.0.1:3845/mcp",
        "enabled": false
      },
      "miro": {
        "type": "remote",
        "url": "https://mcp.miro.com/",
        "enabled": false
      }
    },
    "permission": {
      "*": "ask",
      "external_directory": {
        "~/.agents/skills/**": "allow",
        "~/.config/opencode/**": "allow",
        "/tmp/**": "allow"
      },
      "bash": {
        "*": "ask",
        "git *": "allow",
        "git push *--force*": "deny",
        "git push *--force-with-lease*": "ask",
        "git push *--force-with-lease*--force*": "deny",
        "git push *--force*--force-with-lease*": "deny",
        "git push *-f *": "deny",
        "git reset --hard*": "deny",
        "git clean *": "deny",
        "find *": "allow",
        "find * -delete*": "deny",
        "find * -exec*": "deny",
        "find * -execdir*": "deny",
        "find * -ok*": "deny",
        "find * -fprint*": "deny",
        "find * -fprintf*": "deny",
        "find * -fls*": "deny",
        "find -delete*": "deny",
        "find -exec*": "deny",
        "find -execdir*": "deny",
        "find -ok*": "deny",
        "find -fprint*": "deny",
        "find -fprintf*": "deny",
        "find -fls*": "deny",
        "head *": "allow",
        "tail *": "allow",
        "gh *": "allow",
        "gh pr ready*": "deny",
        "gh pr review*--approve*": "deny",
        "gh pr review * -a": "deny",
        "gh pr review * -a *": "deny",
        "gh pr review -a": "deny",
        "gh pr review -a *": "deny",
        "gh pr merge*": "deny",
        "gh repo create*": "deny",
        "gh repo delete*": "deny",
        "gh repo archive*": "deny",
        "gh repo rename*": "deny",
        "gh repo edit*": "ask",
        "gh repo edit*--visibility*": "deny",
        "gh repo edit*--default-branch*": "deny",
        "gh secret set*": "deny",
        "gh secret delete*": "deny",
        "gh variable set*": "deny",
        "gh variable delete*": "deny",
        "gh release delete*": "deny",
        "gh api *--method PUT*": "deny",
        "gh api *--method=PUT*": "deny",
        "gh api *--method DELETE*": "deny",
        "gh api *--method=DELETE*": "deny",
        "gh api *-X PUT*": "deny",
        "gh api *-XPUT*": "deny",
        "gh api *-X DELETE*": "deny",
        "gh api *-XDELETE*": "deny",
        "gh api *-X=PUT*": "deny",
        "gh api *-X=DELETE*": "deny",
        "gh api *--method put*": "deny",
        "gh api *--method=put*": "deny",
        "gh api *--method delete*": "deny",
        "gh api *--method=delete*": "deny",
        "gh api *-X put*": "deny",
        "gh api *-Xput*": "deny",
        "gh api *-X delete*": "deny",
        "gh api *-Xdelete*": "deny",
        "gh api *-X=put*": "deny",
        "gh api *-X=delete*": "deny",
        "acli jira *": "allow",
        "acli jira workitem delete*": "deny",
        "assume *": "ask",
        "aws sts get-caller-identity*": "allow",
        "aws bedrock-agent-runtime retrieve*": "allow",
        "aws dynamodb list-tables*": "allow",
        "aws dynamodb describe-table*": "allow",
        "aws dynamodb query*": "ask",
        "aws dynamodb get-item*": "ask",
        "aws *": "ask",
        "kubectl version*": "allow",
        "kubectl cluster-info*": "allow",
        "kubectl config current-context*": "allow",
        "kubectl config get-contexts*": "allow",
        "kubectl config use-context*": "ask",
        "kubectl get *": "allow",
        "kubectl describe *": "allow",
        "kubectl logs *": "allow",
        "kubectl explain *": "allow",
        "kubectl api-resources*": "allow",
        "kubectl top *": "allow",
        "kubectl events*": "allow",
        "kubectl apply *": "ask",
        "kubectl create *": "ask",
        "kubectl set *": "ask",
        "kubectl rollout *": "ask",
        "kubectl scale *": "ask",
        "kubectl label *": "ask",
        "kubectl annotate *": "ask",
        "kubectl port-forward *": "ask",
        "kubectl exec *": "ask",
        "kubectl cp *": "ask",
        "kubectl run *": "ask",
        "kubectl debug *": "ask",
        "kubectl delete *": "deny",
        "kubectl sniff *": "ask",
        "kubectl krew *": "deny",
        "helm *": "ask",
        "helm install *": "deny",
        "helm upgrade *": "deny",
        "helm uninstall *": "deny",
        "helm rollback *": "deny",
        "helm version*": "allow",
        "helm list*": "allow",
        "helm status*": "allow",
        "helm get *": "allow",
        "helm show *": "allow",
        "helm search *": "allow",
        "gcloud *": "ask",
        "gsutil *": "ask",
        "terraform *": "ask",
        "testrail projects list*": "allow",
        "testrail cases list*": "allow",
        "testrail case-fields list*": "allow",
        "testrail attachments list*": "allow",
        "testrail runs list*": "allow",
        "testrail cases update*": "ask",
        "testrail attachments add*": "ask",
        "testrail runs add*": "ask",
        "testrail results add*": "ask",
        "testrail runs close*": "ask",
        "testrail cases delete*": "deny",
        "testrail *": "ask",
        "circleci version*": "allow",
        "circleci diagnostic*": "allow",
        "circleci config validate*": "allow",
        "circleci config pack*": "ask",
        "circleci orb source*": "allow",
        "circleci *": "ask",
        "lsk-db-connect*-admin*": "deny",
        "lsk-db-connect*prod*": "ask",
        "lsk-db-connect*": "ask",
        "lskt-codeartifact *": "ask",
        "lskt codeartifact *": "ask",
        "lskt-codeartifact configure*": "deny",
        "lskt-codeartifact completion*": "deny",
        "lskt codeartifact configure*": "deny",
        "lskt codeartifact completion*": "deny",
        "lskt* unconfigure*": "deny",
        "curl *": "allow",
        "curl *--request *": "deny",
        "curl *--request=*": "deny",
        "curl -X*": "deny",
        "curl * -X*": "deny",
        "curl *--data*": "deny",
        "curl *atlassian.net*--data*": "allow",
        "curl *--data*atlassian.net*": "allow",
        "curl -d*": "deny",
        "curl * -d*": "deny",
        "curl *--form*": "deny",
        "curl -F*": "deny",
        "curl * -F*": "deny",
        "curl *--upload-file*": "deny",
        "curl -T*": "deny",
        "curl * -T*": "deny",
        "curl *--json*": "deny",
        "curl *--config *": "deny",
        "curl *--config=*": "deny",
        "curl -K*": "deny",
        "curl * -K*": "deny",
        "brew *": "deny",
        "brew list *": "allow",
        "brew info *": "allow",
        "brew search *": "allow",
        "brew --version": "allow",
        "bun *": "allow",
        "bun install -g*": "deny",
        "bun install * -g*": "deny",
        "bun install --global*": "deny",
        "bun install * --global*": "deny",
        "bun add -g*": "deny",
        "bun add * -g*": "deny",
        "bun add --global*": "deny",
        "bun add * --global*": "deny",
        "bun x *": "ask",
        "npm *": "ask",
        "npm ci": "allow",
        "npm install": "allow",
        "npm install *": "allow",
        "npm install -g*": "deny",
        "npm install * -g*": "deny",
        "npm install --global*": "deny",
        "npm install * --global*": "deny",
        "npm run *": "allow",
        "npm test": "allow",
        "npm test*": "allow",
        "npm audit": "allow",
        "npm audit *": "allow",
        "npm outdated": "allow",
        "npm outdated *": "allow",
        "npm list": "allow",
        "npm list *": "allow",
        "npm ls": "allow",
        "npm ls *": "allow",
        "npm info *": "allow",
        "npm view *": "allow",
        "npm show *": "allow",
        "npm search *": "allow",
        "npm why *": "allow",
        "npm explain *": "allow",
        "npm config get *": "allow",
        "npm config list": "allow",
        "npm config list *": "allow",
        "npm help": "allow",
        "npm help *": "allow",
        "npm bin": "allow",
        "npm bin *": "allow",
        "npm prefix": "allow",
        "npm prefix *": "allow",
        "npm root": "allow",
        "npm root *": "allow",
        "npm version": "allow",
        "npm version ?*": "ask",
        "npm pack": "allow",
        "npm pack *": "allow",
        "npm dedupe": "allow",
        "npm dedupe *": "allow",
        "npm prune": "allow",
        "npm prune *": "allow",
        "npm rebuild": "allow",
        "npm rebuild *": "allow",
        "npm link": "allow",
        "npm link ?*": "ask",
        "npm unlink": "allow",
        "npm unlink ?*": "ask",
        "npx *": "ask",
        "pnpm *": "ask",
        "pnpm install": "allow",
        "pnpm install *": "allow",
        "pnpm install -g*": "deny",
        "pnpm install * -g*": "deny",
        "pnpm install --global*": "deny",
        "pnpm install * --global*": "deny",
        "pnpm add *": "allow",
        "pnpm add -g*": "deny",
        "pnpm add * -g*": "deny",
        "pnpm add --global*": "deny",
        "pnpm add * --global*": "deny",
        "pnpm run *": "allow",
        "pnpm test": "allow",
        "pnpm test*": "allow",
        "pnpm exec *": "ask",
        "pnpm dlx *": "ask",
        "pnpm audit": "allow",
        "pnpm audit *": "allow",
        "pnpm outdated": "allow",
        "pnpm outdated *": "allow",
        "pnpm list": "allow",
        "pnpm list *": "allow",
        "pnpm ls": "allow",
        "pnpm ls *": "allow",
        "pnpm info *": "allow",
        "pnpm why *": "allow",
        "pnpm store status": "allow",
        "yarn *": "ask",
        "pip *": "ask",
        "pip3 *": "ask",
        "pipx *": "ask",
        "uv *": "ask",
        "uv sync": "allow",
        "uv sync *": "allow",
        "uvx *": "ask",
        "poetry *": "ask",
        "poetry install": "allow",
        "poetry install *": "allow",
        "gem *": "ask",
        "pre-commit run*": "allow",
        "pre-commit *": "ask",
        "playwright-cli *": "allow",
        "source *": "ask",
        "source *venv/bin/activate": "allow",
        "mvn *": "allow",
        "mvn *deploy*": "deny",
        "./mvnw *": "allow",
        "./mvnw *deploy*": "deny",
        "gradle *": "ask",
        "pytest *": "allow",
        "cargo test*": "allow",
        "cargo build*": "allow",
        "cargo *": "ask",
        "go test *": "allow",
        "go mod download*": "allow",
        "go *": "ask",
        "diff *": "allow",
        "jq *": "allow",
        "yq *": "allow",
        "cat *": "allow",
        "set *": "allow",
        "wc *": "allow",
        "ls *": "allow",
        "echo *": "allow",
        "test *": "allow",
        "stat *": "allow",
        "date *": "allow",
        "grep *": "allow",
        "awk *": "allow",
        "sed *": "ask",
        "sort *": "allow",
        "uniq *": "allow",
        "tr *": "allow",
        "which *": "allow",
        "basename *": "allow",
        "dirname *": "allow",
        "mkdir *": "ask",
        "mkdir /tmp/*": "allow",
        "rm *": "ask",
        "rm /tmp/*": "allow",
        "chmod *": "ask",
        "chmod /tmp/*": "allow",
        "cp *": "ask",
        "cp /tmp/*": "allow",
        "cp * /tmp/*": "allow",
        "mv *": "ask",
        "mv /tmp/*": "allow",
        "mv * /tmp/*": "allow",
        "sh *": "ask",
        "bash *": "ask",
        "zsh *": "ask",
        "docker ps*": "allow",
        "docker images*": "allow",
        "docker logs*": "allow",
        "docker inspect*": "allow",
        "docker compose up*": "ask",
        "docker compose down*": "ask",
        "docker run*": "ask",
        "docker *": "ask",
        "python *": "ask",
        "python3 *": "ask",
        "node *": "ask",

        "bats *": "allow",

        "python3 ~/.agents/skills/*/scripts/*": "allow",
        "python3 ~/.config/opencode/skill/*/scripts/*": "allow",
        "python3 */.agents/skills/*/scripts/*": "allow",
        "python3 */.config/opencode/skill/*/scripts/*": "allow",
        "python ~/.agents/skills/*/scripts/*": "allow",
        "python ~/.config/opencode/skill/*/scripts/*": "allow",
        "python */.agents/skills/*/scripts/*": "allow",
        "python */.config/opencode/skill/*/scripts/*": "allow",
        "bash ~/.agents/skills/*/scripts/*": "allow",
        "bash ~/.config/opencode/skill/*/scripts/*": "allow",
        "bash */.agents/skills/*/scripts/*": "allow",
        "bash */.config/opencode/skill/*/scripts/*": "allow",
        "sh ~/.agents/skills/*/scripts/*": "allow",
        "sh ~/.config/opencode/skill/*/scripts/*": "allow",
        "sh */.agents/skills/*/scripts/*": "allow",
        "sh */.config/opencode/skill/*/scripts/*": "allow",
        "node ~/.agents/skills/*/scripts/*": "allow",
        "node ~/.config/opencode/skill/*/scripts/*": "allow",
        "node */.agents/skills/*/scripts/*": "allow",
        "node */.config/opencode/skill/*/scripts/*": "allow",
        "python3 *../*": "deny",
        "python *../*": "deny",
        "bash *../*": "deny",
        "sh *../*": "deny",
        "node *../*": "deny",

        "security list-keychains*": "allow",
        "security find-identity*": "ask",
        "security *": "deny",
        "codesign *": "ask",
        "ssh *": "ask",
        "scp *": "ask",
        "rsync *": "ask",
        "ngrok *": "ask",
        "nohup *": "ask",
        "kill *": "ask",
        "killall *": "ask",
        "pkill *": "ask",
        "rmdir *": "ask",
        "ln *": "ask",
        "ln -s *": "ask",
        "biome *": "allow",
        "ruff *": "allow",
        "black *": "allow",
        "golangci-lint *": "allow",
        "hadolint *": "allow",
        "shellcheck *": "allow",
        "xmllint *": "allow",
        "make": "allow",
        "make *": "allow",
        "task *": "allow",
        "java *": "allow",
        "jest *": "allow",
        "vitest *": "allow",
        "tsc *": "allow",
        "tsx *": "allow",
        "bundle exec *": "allow",
        "ruby *": "allow",
        "rustc *": "allow",
        "printf *": "allow",
        "date": "allow",
        "env": "allow",
        "env *": "allow",
        "export *": "allow",
        "read *": "allow",
        "true": "allow",
        "false": "allow",
        "sleep *": "allow",
        "wait *": "allow",
        "jobs": "allow",
        "pwd": "allow",
        "hostname": "allow",
        "ls": "allow",
        "bat *": "allow",
        "eza *": "allow",
        "rg *": "allow",
        "fd *": "allow",
        "less *": "allow",
        "more *": "allow",
        "delta *": "allow",
        "cut *": "allow",
        "realpath *": "allow",
        "file *": "allow",
        "xargs *": "allow",
        "ps": "allow",
        "ps *": "allow",
        "pgrep *": "allow",
        "lsof *": "ask",
        "lsof -i*": "allow",
        "lsof -p*": "allow",
        "top -l 1 *": "allow",
        "sw_vers": "allow",
        "sw_vers *": "allow",
        "uname": "allow",
        "uname *": "allow",
        "arch": "allow",
        "df": "allow",
        "df *": "allow",
        "du": "allow",
        "du *": "allow",
        "dust *": "allow",
        "tee *": "allow",
        "tar *": "allow",
        "unzip *": "allow",
        "zip *": "allow",
        "touch *": "allow",
        "open *": "allow",
        "pbcopy": "allow",
        "pbpaste": "allow",
        "xclip *": "allow",
        "fx *": "allow",
        "jless *": "allow",
        "fzf *": "allow",
        "tokei": "allow",
        "tokei *": "allow",
        "hyperfine *": "allow",
        "parallel *": "ask",
        "entr *": "ask",
        "direnv *": "allow",
        "mise *": "allow",
        "z *": "allow",
        "zoxide *": "allow",
        "lazygit *": "allow",
        "btop *": "allow",
        "ncdu *": "allow"
      },
      "edit": {
        "*": "allow"
      },
      "glob": "allow",
      "grep": "allow",
      "list": "allow",
      "lsp": "allow",
      "context7_*": "allow",
      "datadog_analyze_datadog_logs": "allow",
      "datadog_create_datadog_notebook": "ask",
      "datadog_edit_datadog_notebook": "ask",
      "datadog_get_datadog_incident": "allow",
      "datadog_get_datadog_metric": "allow",
      "datadog_get_datadog_metric_context": "allow",
      "datadog_get_datadog_notebook": "allow",
      "datadog_get_datadog_trace": "allow",
      "datadog_search_datadog_dashboards": "allow",
      "datadog_search_datadog_events": "allow",
      "datadog_search_datadog_hosts": "allow",
      "datadog_search_datadog_incidents": "allow",
      "datadog_search_datadog_logs": "allow",
      "datadog_search_datadog_metrics": "allow",
      "datadog_search_datadog_monitors": "allow",
      "datadog_search_datadog_rum_events": "allow",
      "datadog_search_datadog_service_dependencies": "allow",
      "datadog_search_datadog_services": "allow",
      "datadog_search_datadog_spans": "allow",
      "read": {
        "*": "allow",
        "*.env": "deny",
        "*.env.*": "deny",
        "*.env.example": "allow",
        "*/.circleci/cli.yml": "deny",
        "*/.testrail-cli.yaml": "deny",
        "*/.aws/credentials": "deny",
        "*/auth.json": "ask",
        "*/.local/share/opencode/auth.json": "deny"
      },
      "skill": "allow",
      "task": "allow",
      "todoread": "allow",
      "todowrite": "allow",
      "write": "allow",
      "webfetch": "allow",
      "github_*": "allow",
      "github_merge_pull_request": "deny",
      "github_delete_file": "deny",
      "stitch_*": "allow",
      "stitch-personal_*": "allow",
      "feedback_*": "allow",
      "dovetail_*": "allow",
      "miro_*": "allow"
    }
  }
}
