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 — see Dev Servers → |
devManager.project.composePath | string | "" | Docker Compose file path (empty = auto-detect) |
devManager.project.containerActions | array | auto | Container action menu |
devManager.project.servers[] entry fields
| Field | Required | Default | Description |
|---|---|---|---|
id | yes | — | Unique id (terminal name prefix) |
label | yes | — | Display name in the server menu |
command | yes | — | Shell command to run in a named terminal |
path | no | "" | Working directory relative to project root |
port | no | 0 | TCP port for status (0 = terminal-only) |
startWithAll | no | true | When false, excluded from Ctrl+Alt+S bulk start; still startable from the status bar server 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.git.statusBar.debugLog | boolean | false | Verbose Git status bar refresh logs (Output channel) |
devManager.prToChat.prompt | string | "" | Custom prompt when sending PR to Chat |
devManager.issueToChat.prompt | string | "" | Custom prompt when sending Issue to Chat |
devManager.github.sprints.enabled | boolean | false | Enable GitHub Milestones as sprints (grouping, commands). See GitHub Sprints →. |
devManager.github.sprints.namingHint | string | "" | Default placeholder when creating a sprint (e.g. Sprint {YYYY}-W{WW}). |
SnakeFlow Cloud
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.cloud.apiUrl | string | https://snakeflow-api.pro-connect.workers.dev | REST API base URL (HTTPS). Change only for self-hosted Workers. |
devManager.cloud.dashboardUrl | string | https://snakeflow-cloud.pages.dev | Web dashboard URL (status-bar project icon). |
devManager.cloud.repoOverride | string | "" | Force sync repo as owner/repo when git remote is not GitHub (empty = auto-detect). |
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.activeAppSource | string | "native" | Active-app source: native (default) or off. See Team Tracker — Activity sources. |
devManager.team.idleWindowMinutes | number | 5 | Declared idle window in Settings (1–15). Changing it restarts Team Tracker. The collector hard-caps effective idle detection at 2 minutes (min 1). With workspace memberships, input is the minimum server idle_window_minutes per workspace. With zero memberships, default is 2 minutes. See Team Tracker →. |
devManager.team.dayGoalMinutes | number | 360 | Target minutes for the status bar tooltip progress bar (default 6h). Visualization only. See Team Tracker — Day goal. |
devManager.team.requireTracking | boolean | false | When true, shows a warning if tracking is off and the developer has not started a session. |
devManager.team.idleSleepWindow | string | "" | Local-time HH:MM-HH:MM interval in which the collector forces IDLE regardless of other signals. Empty = disabled. See Team Tracker — Sleep window. |
Per-workspace app allowlist (regexes against 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 activity rules, the sleep window, 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.terminal.shellPath | string | "" | Shell for managed terminals (servers, Docker, scripts). Empty = auto: login shell on macOS/Linux so PATH matches Cursor; IDE default on Windows |
devManager.terminal.shellArgs | string[] | ["-l"] | Args for the managed-terminal shell on macOS/Linux (login shell sources ~/.profile). Ignored on Windows |
devManager.ci.workflowsPath | string | ".github/workflows" | Path to GitHub Actions workflows |
AI (Gemini + Dictation)
| 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.
Logging
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.log.verbose.team | boolean | false | Log every Team Tracker IDLE/ACTIVE/SKIP tick to the SnakeFlow output channel. |
devManager.log.verbose.quality | boolean | true | Log each Quality Hub provider start/finish line during full runs. |
Agent Quality Loop
File-based IPC for AI agents to trigger Quality Hub re-runs. By default the
trigger file and trigger-quality launcher scripts live in a machine-global
directory — ~/.snakeflow/ipc/<encoded-project>/trigger-run.json (the project
path with every non-alphanumeric character replaced by -; honours
$SNAKEFLOW_CONFIG_DIR) — so nothing is written into your project and the project
.gitignore is left untouched. The legacy in-project location is always watched
too, so older agents keep working.
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.quality.agentLoop.enabled | boolean | true | Watch the trigger-run.json IPC file and run Quality Hub re-scans for agents. Disable to stop the watcher. |
devManager.quality.agentLoop.location | string | "global" | Where IPC files live: global (~/.snakeflow/ipc/…, out of the repo) or project (under dir, added to .gitignore). |
devManager.quality.agentLoop.dir | string | ".snakeflow" | Workspace-relative directory for IPC files. Used only when location is project. |
AI Usage
Status-bar indicators for Claude Code and Cursor subscription limits.
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.aiUsage.enabled | boolean | true | Master switch for AI usage indicators in the status bar. |
devManager.aiUsage.claude.enabled | boolean | true | Show Claude Code limit indicator (reads OAuth token from ~/.claude/.credentials.json). |
devManager.aiUsage.cursor.enabled | boolean | true | Show Cursor limit indicator (only visible inside Cursor). |
devManager.aiUsage.claude.refreshIntervalSec | number | 600 | Seconds between Anthropic usage polls (minimum 60). |
devManager.aiUsage.cursor.refreshIntervalSec | number | 300 | Seconds between Cursor usage refreshes (minimum 60). |
devManager.aiUsage.cursor.sessionToken | string | "" | Manual Cursor session token fallback when auto-extraction via sqlite3 is unavailable. Stored in user settings. |
devManager.aiUsage.segments | number | 10 | Number of segments in the status-bar progress bar (4–20). |
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 |
devManager.quality.degradedStrict | boolean | false | When true with profile=strict, missing CLI/token skips become warn instead of fail — softer strict mode while tools are still being installed. |
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 · gitleaks · debugLeaks · gitignoreCheck · magicNumbers · parameterCount · barrelFiles · couplingMetrics · 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
See Gitleaks → — when installed and enabled, auto-gates regex Secret Leaks.
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 CLI tooling on by default. Per-providerenabledsettings always win. SeedevManager.quality.warnAsFailfor the warn-promotion overlay.
Realtime Quality
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 | false | 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.statusBar.enabled | boolean | true | Show aggregate realtime counts (Lint / Types / Secrets / …) in the status bar. |
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 →.
Per-check scope: Hub / Realtime
Every quality provider has two independent toggles. You can mix them freely — for example, keep a check visible in Quality Hub but disable its live squiggles.
| Toggle | Setting key pattern | Default | Effect |
|---|---|---|---|
| Hub (Quality Hub run) | devManager.quality.builtin.<id>.enabled | true | Includes or excludes the check from Ctrl+Alt+F batch runs |
| Realtime (live diagnostics) | devManager.quality.builtin.<id>.realtime | true | Enables on-type / on-save squiggles in the editor |
Note: SnakeFlow no longer ships a built-in pre-commit git gate. Use your own hook manager (e.g. Husky, lefthook) to run Quality Hub checks or CLIs before commit. See Custom checks → for team-defined commands.
Workflows
AI-powered workflow automation (custom multi-step runs from the sidebar).
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.workflows.aiProvider | string | "claude" | AI backend for workflow steps (claude or gemini) |
devManager.workflows.anthropicApiKey | string | "" | Anthropic API key for AI workflow steps |
devManager.workflows.claudeModel | string | "sonnet" | Claude model used in AI steps (fetched live from API) |
devManager.workflows.claudePath | string | "" | Path to claude CLI binary (empty = auto-detect) |
devManager.workflows.timeoutMinutes | number | 60 | Max minutes per workflow run (0 = unlimited) |
devManager.workflows.maxCostUsd | number | 5 | Max AI spend in USD per run before abort |
devManager.workflows.watchdogSeconds | number | 90 | Seconds of silence before a step is considered hung |
devManager.workflows.useApiKey | boolean | false | Authenticate workflow HTTP requests with project API key |
devManager.workflows.custom | array | [] | Custom workflow definitions |
Wake Lock
Prevents the machine from sleeping during editor activity and optionally during Quality Hub runs. This is independent of Team Tracker → minute counting — see Wake Lock feature guide →.
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.wakeLock.enabled | boolean | true | Master switch. When false, both the status-bar activity tracker and Quality Hub auto-acquire are no-ops. |
devManager.wakeLock.autoActivate | boolean | true | While enabled, automatically acquire a wake lock for the duration of each Quality Hub full run (acquire('Quality Hub')), independent of the status-bar toggle. |
devManager.wakeLock.keepDisplayAwake | boolean | true | Keep the display on, not just prevent system sleep (ES_DISPLAY_REQUIRED on Windows; display blanking may still apply on some Linux setups). |
devManager.wakeLock.idleThresholdSeconds | number | 120 | With the status-bar toggle ON, seconds without any activity signal before the activity lock is released (long-running tasks alone do not pin the lock). |
devManager.wakeLock.readyTimeoutMs | number | 0 | Milliseconds to wait for the OS helper to report ready (0 = platform default). |
devManager.wakeLock.startRetries | number | 2 | Retries if the helper fails to start. |
devManager.wakeLock.maxHoldHours | number | 4 | If refCount stays above zero continuously for this many hours, log a warning and optionally show a notification (0 disables). Does not force-release. |
devManager.wakeLock.persistLog | boolean | false | Append Wake Lock output lines to <workspace>/.vscode/snakeflow-wakelock.log or <workspace>/.cursor/snakeflow-wakelock.log (1 MB rotation). Requires an open workspace folder. |
Commands: SnakeFlow: Wake Lock — Toggle / SnakeFlow: Wake Lock — Diagnose (see Command palette →).
Agent Context
AI coding agent context management and chat prompt defaults.
| Setting | Type | Default | Description |
|---|---|---|---|
devManager.agentContext.structureSync.enabled | boolean | true | Auto-generate project-structure snapshot for AI context |
devManager.agentContext.structureSync.autoSync | boolean | false | Re-sync snapshot when structure rules change (debounced). Off by default to avoid uncommitted AGENTS.md edits blocking git pull. |
devManager.prToChat.prompt | string | "" | Prompt prepended when sending PR diff to AI chat |
devManager.issueToChat.prompt | string | "" | Prompt prepended when sending GitHub issue to AI chat |
See also
- Wake Lock → — activity signals, Quality Hub stacking, diagnostics
- Team Tracker → — dual-factor activity, sleep window, ActivityWatch, internal vs external
- Command palette reference → — every SnakeFlow: command title
- CLI tools installation → — external binaries Quality Hub may call