Configuration
The CLI reads personal settings from ~/.wseng and project settings from .wseng in the repository root.
Personal Configuration
~/.wseng stores settings that apply across your projects, including:
truefoundryToken: your personal token for LLM callstruefoundryBaseUrl: optional TrueFoundry gateway URLtruefoundryModelOverrides: optional mapping from CLI model names to gateway slugsemailAddress: your work email addresslocalPaths: locations of your local repositoriescommandConfigurations: command-specific defaultsextensionVersions: installed WS.Eng VSCode extension versionsobsSettings: OBS Studio settings for demo recording
The default TrueFoundry gateway URL is https://tfy.promptlens.trilogy.com/api/llm. TFY_API_KEY overrides the token in ~/.wseng. TFY_BASE_URL overrides truefoundryBaseUrl.
Project Configuration
The .wseng file in each repository stores project-specific settings, such as:
contextFolder: location for context files, defaulting to.contextspecs: documents to pullpullRequestTemplate: pull request template using Handlebars syntaxcommandConfigurations: command-specific defaultsstagingBranch: staging branch name
Run wseng init in a repository to create or update configuration files. The command asks for your TrueFoundry token by default and stores it in ~/.wseng as truefoundryToken.
cd /path/to/your/project
wseng init
No AWS profile is needed for local use. For GitHub operations, authenticate with gh auth login. Run wseng init --google to sign in with your Google account.
Command Defaults
Personal and project configuration can set default values for command inputs. Explicit command-line arguments take precedence over project configuration, which takes precedence over personal configuration and built-in defaults.
{
"commandConfigurations": {
"start-ticket": {
"defaultInputs": {
"currentBranchAsBase": true
}
}
}
}
Release-Notes Profiles
The release-notes command supports named profiles under commandConfigurations["release-notes"].profiles. A profile can set a prompt file, output schema, model, evidence source, and diff settings.
{
"commandConfigurations": {
"release-notes": {
"profiles": {
"kid-friendly": {
"promptFile": ".github/whats-new/kid-changelog.instructions.md",
"outputSchemaFile": ".github/whats-new/kid-changelog.schema.json",
"model": "gemini-pro",
"evidence": "diff",
"diff": {
"pathspecs": ["src/frontend/**", "src/api/**"],
"maxTotalBytes": 409600
}
}
}
}
}
}
promptFileis required. Its contents become the system prompt.outputSchemaFileis optional. The CLI validates generated output against this JSON Schema.modelselects a CLI model name.truefoundryModelOverridescan map that name to a gateway slug.evidenceacceptstickets,diff, orboth.diff.pathspecslimits which patches the model reads.diff.maxFileBytesanddiff.maxFileLinesset per-file limits.diff.maxTotalBytessets the total patch limit.
Profile paths resolve relative to the directory containing .wseng. Explicit command inputs take precedence over profile values, which take precedence over built-in defaults.
A profile with outputSchemaFile skips markdown output (--output-file) because its layout assumes the built-in {summary, bulletPoints} shape. Use --json-output-file for JSON output.
Release-Notes Examples
wseng release-notes --from-sha <a> --to-sha <b>
wseng release-notes --prompt-profile kid-friendly --from-sha <a> --to-sha <b> --json-output-file /tmp/notes.json
--from-sha is exclusive. --to-sha is inclusive and defaults to HEAD when only --from-sha is set. The checkout must contain the starting commit.
--evidence selects tickets, diff, or both without a profile. --json-output-file writes the schema-validated result as JSON. An empty commit range exits successfully without writing a file.
Common Configuration Issues
Invalid JSON syntax
JSON does not allow comments or trailing commas. Use a JSON validator to check the file.
Incorrect input names or value types
Check the command help for exact input names and types:
wseng start-ticket --help
Use JSON booleans for boolean values, numbers without quotes, and quoted strings.
Configuration Files in Git
Commit project .wseng files when the team should share their settings. Do not commit ~/.wseng, which contains personal settings and credentials.
