All Settings
All settings are under the devManager.* namespace.
Edit via:
Ctrl+,→ search@ext:vaulttec-dev.snakeflow-dev-manager- Or edit
.vscode/settings.jsondirectly (workspace-level, per-project)
Note: the Quality Hub registers 90+ providers and exposes hundreds of per-provider settings (
devManager.quality.<providerId>.*). The tables below show representative examples per category. The complete, always-up-to-date list lives in the extension’spackage.jsoncontributes.configurationsection — open Settings UI and searchdevManager.quality.to browse every key with descriptions inline.
Project
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.project.name | string | auto | Project identifier |
devManager.project.dir | string | auto | Absolute path to project root |
devManager.project.packageManager | enum | "auto" | auto | npm | pnpm | yarn | bun |
devManager.project.servers | array | [] | Dev server configurations |
devManager.project.composePath | string | "" | Docker Compose file path (empty = auto-detect) |
devManager.project.containerActions | array | auto | Container action menu |
Git & GitHub
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.git.defaultBranch | string | "main" | Default branch name fallback |
devManager.git.protectedBranches | string[] | ["main","master","develop","staging","production"] | Branches requiring confirmation to delete |
devManager.github.defaultMilestone | string | "" | Default milestone for new issues |
devManager.prToChat.prompt | string | "" | Custom prompt when sending PR to Chat |
devManager.issueToChat.prompt | string | "" | Custom prompt when sending Issue to Chat |
SnakeFlow Cloud
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.cloud.apiUrl | string | https://snakeflow.pages.dev | Base URL of the cloud sync service (HTTPS). Change only if you use a self-hosted endpoint. |
See Cloud settings sync → for commands and privacy notes.
Team Tracker
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.team.enabled | boolean | false | When true, records active minutes per UTC day and sends them to the team API after login. |
devManager.team.idleWindowMinutes | number | 2 | Inactivity window in minutes before a tick is idle (1–15). |
devManager.team.useActivityWatch | boolean | true | Use local ActivityWatch for OS-wide mouse/keyboard signals. |
devManager.team.requireActivityWatch | boolean | true | Hard gate: no minutes counted unless ActivityWatch is reachable. |
devManager.team.activityWatchUrl | string | http://localhost:5600 | Base URL of the local aw-server REST API. |
Per-workspace app allowlist (regexes against ActivityWatch window app / title) is not a devManager.* setting — workspace admins configure it on the server (Cloud Team tab or SnakeFlow: Team Tracker — Edit App Allowlist). See Team Tracker → for the status-bar toggle, ActivityWatch, internal/external rules, and the activity log.
Docker & CI
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.docker.composeCommand | string | "docker compose" | Compose CLI (docker compose / docker-compose / podman compose) |
devManager.ci.workflowsPath | string | ".github/workflows" | Path to GitHub Actions workflows |
AI (Gemini)
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.gemini.apiKey | string | "" | Google Gemini API key for AI title generation and voice dictation |
devManager.gemini.model | string | "gemini-2.5-flash" | Gemini model name |
devManager.gemini.dictationLanguage | enum | "auto" | Spoken language for voice dictation transcription. auto = Gemini detects automatically. Other values: uk, en, de, fr, es, pl, it, pt, nl, cs, ja, zh, ko |
See Voice Dictation → for full details.
Quality Hub — General
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.quality.customChecks | array | [] | Custom project-level quality checks |
devManager.quality.skipDirs | string[] | [] | Extra directory names (not globs) merged into built-in exclusions for walking checks |
devManager.quality.skipFiles | string[] | [] | Relative paths from project root (forward slashes), optional *.vsix / **/*.vsix, or **/file.ext patterns — excludes files from many built-ins and Semgrep aggregation |
devManager.quality.timeout | number | 30 | Max runtime per check in minutes |
devManager.quality.maxBuffer | number | 50 | Max stdout buffer in MB |
devManager.quality.chatReport | enum | "onFail" | auto | onFail | manual | never — when to open AI chat with the quality report after a run |
devManager.quality.chatPrompt | string | "" | Optional text prepended when sending the report to Chat |
Quality Hub — Cloud Providers
Every cloud integration uses devManager.quality.<id>.enabled (most default to off; CodeQL defaults to on). Required keys differ per service — there is no single token field for all.
Authoritative per-provider list: Cloud Providers → (settings tables, prerequisites, and behavior).
IDs: sonarcloud, snyk, codecov, coveralls, codeclimate, codacy, deepsource, coderabbit, qodo, greptile, cubic, codeant, qlty, codeql, aikido.
Examples (see cloud docs for full keys):
"devManager.quality.sonarcloud.enabled": true,"devManager.quality.sonarcloud.token": "","devManager.quality.sonarcloud.projectKey": "","devManager.quality.sonarcloud.serverUrl": "https://sonarcloud.io",
"devManager.quality.snyk.token": "","devManager.quality.snyk.orgId": "",
"devManager.quality.coderabbit.enabled": true,"devManager.quality.coderabbit.apiKey": ""Quality Hub — Built-in Checks
Replace <check> with the check name. All checks share these common settings:
| Setting | Type | Default |
|---|---|---|
devManager.quality.builtin.<check>.enabled | boolean | true |
Check-specific thresholds:
"devManager.quality.builtin.lineCount.warnLines": 300,"devManager.quality.builtin.lineCount.failLines": 500,
"devManager.quality.builtin.functionLength.warnLines": 40,"devManager.quality.builtin.functionLength.failLines": 80,
"devManager.quality.builtin.complexity.warnScore": 10,"devManager.quality.builtin.complexity.failScore": 20,
"devManager.quality.builtin.fileSize.warnKb": 50,"devManager.quality.builtin.fileSize.failKb": 200,
"devManager.quality.builtin.importDepth.warnDepth": 4,"devManager.quality.builtin.importDepth.failDepth": 6,
"devManager.quality.builtin.dependencyCount.warnAt": 50,"devManager.quality.builtin.dependencyCount.failAt": 100,
"devManager.quality.builtin.parameterCount.warnAt": 4,"devManager.quality.builtin.parameterCount.failAt": 7,
"devManager.quality.builtin.jscpd.threshold": 5,"devManager.quality.builtin.jscpd.minLines": 5,
"devManager.quality.builtin.trivy.failOnSeverity": "HIGH","devManager.quality.builtin.trivy.warnOnSeverity": "MEDIUM","devManager.quality.builtin.trivy.path": "trivy",
"devManager.quality.builtin.golangciLint.warnAt": 5,"devManager.quality.builtin.golangciLint.failAt": 20,"devManager.quality.builtin.golangciLint.path": "golangci-lint",
"devManager.quality.builtin.bandit.path": "bandit","devManager.quality.builtin.bearer.path": "bearer",
"devManager.quality.builtin.returnTypes.warnAt": 10,"devManager.quality.builtin.returnTypes.failAt": 50,
"devManager.quality.builtin.noManualMigrations.enabled": true,"devManager.quality.builtin.noManualMigrations.severity": "error","devManager.quality.builtin.noManualMigrations.adapters": ["drizzle", "prisma", "atlas"],"devManager.quality.builtin.noManualMigrations.checkRemoved": true,"devManager.quality.builtin.noManualMigrations.gitLookback": 50,
"devManager.quality.builtin.prismaMigrateStatus.realtime": true,
"devManager.quality.builtin.squawk.dataRisk": "warn","devManager.quality.builtin.squawk.requireDownMigration": false,
"devManager.quality.builtin.migrationsCiGate.enabled": true,
"devManager.quality.semgrep.config": "auto"All available built-in check names:
lineCount · functionLength · complexity · fileSize · longLines · importDepth · directoryDepth · dependencyCount · todoCount · commentedCode · duplicateFiles · testRatio · mixedIndent · encoding · secretLeaks · debugLeaks · gitignoreCheck · magicNumbers · parameterCount · barrelFiles · couplingMetrics · crossLayerImports · componentInventory · heavyImports · anyCoverage · jsdocCoverage · lcovCoverage · actionsAudit · emptyTests · jscpd · knip · dependencyCruiser · pkgAudit · outdatedDeps · licenseCheck · hadolint · shellcheck · golangciLint · bearer · stryker · trivy · bandit · semgrep · act · envConsistency · lockfileSync · nodeVersionConsistency · readmeCheck · changelogCheck · codeownersCheck · tscCheck · asyncAwaitMisuse · errorHandling · returnTypes · reactHookRules · a11yCheck · yamllint · spectral · checkov · sqlfluff · markdownlint · attw · publint · lockfileLint · npmProvenance · syncpack · manypkg · scorecard · typeCoverage · commitlint · noFocusedTests · noManualMigrations · migrationsCiGate · stylelint · prettierCheck · sizeLimit · lighthouseCi · oasdiff · graphqlInspector · bufBreaking · dockle · grype · dive · hardenRunnerAudit · sbom · sentrySourcemaps · trojanSource · rlsCheck · pgtapPresence · sqruff · vale · alex · lychee · promptfoo · dotenvLinter
Quality profile —
devManager.quality.profile(strict|balanced|vibe, defaultstrict) controls which checks run by default.strict= Google/Meta bar (everything on, warn → fail).balanced= same enablement, warns stay warns.vibe= only STRONG cloud + CLI tooling on by default. Per-providerenabledsettings always win. SeedevManager.quality.warnAsFailfor the warn-promotion overlay.
devManager.realtime {#devmanagerrealtime}
Optional in-editor re-runs for providers that define realtime hooks (ESLint, Biome, on-save formatters, migration hygiene, etc.).
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.realtime.enabled | boolean | true | Master switch — when false, no realtime subscriptions run. |
devManager.realtime.onType.enabled | boolean | true | Re-run on keystrokes (where a provider subscribes to onType). |
devManager.realtime.onSave.enabled | boolean | true | Re-run on save. |
devManager.realtime.precommit.mode | enum | "warn" | off | warn | block — how to react when staged files have SnakeFlow error-level diagnostics. block is enforced when you run SnakeFlow: Pre-commit Gate (devManager.realtime.precommitGate) or wire that command into a git hook. |
devManager.realtime.precommit.migrationsMode | enum | "warn" | off | warn | block-strict — extra policy for staged migration paths (prisma/migrations/, drizzle/, etc.). block-strict treats any SnakeFlow diagnostic on those files (including warnings) as blocking for the pre-commit gate. When set to block-strict, SnakeFlow may warn once if core.hooksPath points away from .git/hooks (hooks might not run). |
No Manual Migrations, Prisma Migrate Status (watch), and similar checks can publish editor diagnostics when migration or schema files change, as long as the check and realtime are enabled. See No Manual Migrations →.
See also
- Team Tracker → — time tracking, ActivityWatch, internal vs external
- Command palette reference → — every SnakeFlow: command title
- CLI tools installation → — external binaries Quality Hub may call