Skip to main content

Configuration

Project settings live in .skillgendev/config.json. skillgendev init creates it; you can edit it by hand. Missing keys take their defaults. The settings are defined in src/skillgen/config.py (Settings).

{
"schema": 1,
"app_name": "My App",
"app_url": "http://localhost:3000",
"environment": "dev",
"probe": false,
"name_prefix": "",
"include": [],
"exclude": [],
"analyzer": "claude-code",
"concurrency": 2,
"slice": { "depth": 3, "max_files": 40, "max_tokens": 60000 },
"hintpacks": [],
"skills_dir": "skills"
}

Settings​

KeyDefaultMeaning
app_namefolder nameDisplay name of the app; also the default skill-name prefix (slugified). init without --app-name uses the repository folder's name
app_url""Base URL of a running dev or staging copy; empty for code-only generation. Must be an absolute http or https URL; a trailing slash is removed
environmentdevdev, staging or production: what app_url points at. The probe refuses production
probefalseWritten by init --url, but no longer decides anything: the command alone does. A plain generate is always code only; --xy or --url opens a browser
name_prefix""Prefix for skill names; defaults to the slug of app_name, then the repository folder name
include[]Route globs to keep, such as "campaigns/*" (empty keeps all)
exclude[]Route globs to drop
analyzerclaude-codeWho performs the analysis: claude-code (headless claude -p), file (Claude Code writes analysis.json in your session), replay (recorded analyses)
concurrency2Routes analysed at the same time in batch mode (at least 1)
slice.depth3Import hops followed from the route's entry file
slice.max_files40Most files in a page slice
slice.max_tokens60000Most estimated tokens of code in a slice
hintpacks[]Extra hint-pack folders, relative to the repository, loaded after the shipped ones
skills_dirskillsWhere public skill folders are written, relative to the repository

An invalid value fails with a ConfigError (exit code 2) that names it.

Command-line overrides​

Flags on a command take precedence over config.json for that run:

SettingFlag
app_urlgenerate --url (implies --xy, and saves the address to config.json for next time)
name_prefixgenerate --name, routes --name, init --name
include, excluderoutes / generate --include, --exclude
analyzergenerate --analyzer, init --analyzer
concurrencygenerate --concurrency

Your own hint packs​

Point hintpacks at a folder in your repository to teach skillgendev your router without changing skillgendev:

{ "hintpacks": ["tools/skillgendev-hintpacks"] }

See Hint packs.

Environment variables​

VariableEffect
SKILLGEN_CHROMIUMPath to a Chromium or Chrome binary to use instead of Playwright's own; useful when Playwright's Chromium does not match its version

The variable's prefix comes from the tool name constant, like every other name skillgendev derives.