Skip to main content

Config Files

Repo-local — .work-summary.json

Place this in the root of any git repository to set project-specific defaults. Commit it to share settings with teammates.

work-summary config set branch main # creates or updates .work-summary.json
work-summary config set timeWindow 48h

Full example with annotations

{
"branch": "main",
"timeWindow": "24h",
"repoPath": ".",

"excludePaths": [
"**/package-lock.json",
"**/*.snap",
"coverage/",
"e2e/"
],

"focusAreas": [
"src/",
"api/"
],

"llm": {
"summaryLength": "medium"
},

"output": {
"format": "both",
"dir": "~/.work-summary/reports"
},

"integrations": {
"linear": {
"teamId": "team-abc123"
},
"docsRepo": {
"path": "/Users/you/Projects/my-docs",
"outputDir": "doc-tasks",
"autoCommit": false
}
}
}

Key reference

KeyTypeDescription
branchstringBranch for git log.
timeWindowstringCommit window: 30m, 24h, 2d, 1w, or a git date string.
repoPathstringDefault repo path when --repo is not passed.
excludePathsstring[]Glob patterns or substrings. Matching files are stripped from diffs and commit changed-file lists.
focusAreasstring[]Patterns or substrings. Commits that touch none of these paths are skipped entirely.
llm.summaryLengthshort|medium|longControls Gemini output length.
output.formatmarkdown|html|bothDefault report format.
output.dirstringReport output directory. ~ is expanded.
integrations.linear.teamIdstringLinear team ID required for docs --create-issues.
integrations.docsRepo.pathstringPath to a local documentation repository.
integrations.docsRepo.outputDirstringSubdirectory inside the docs repo. Defaults to doc-tasks.
integrations.docsRepo.autoCommitbooleanIf true, docs push creates a git commit automatically.

Global — ~/.work-summary/config.json

Use this for non-secret preferences you want across all repos. Written by work-summary config set --global.

{
"llm": {
"summaryLength": "medium"
},
"output": {
"dir": "~/.work-summary/reports",
"format": "markdown"
}
}

Global env — ~/.work-summary/.env

Written by work-summary config init. Contains API keys and the model name.

GEMINI_API_KEY=AIza...
GEMINI_MODEL=gemini-3.1-flash-lite
LINEAR_API_KEY=lin_api_...
MINTLIFY_API_KEY=mint_...
MINTLIFY_PROJECT_ID=my-project

This file is loaded automatically on every command. Shell-exported variables take precedence over values in this file.


excludePaths vs focusAreas

OptionEffect
excludePathsStrips matching files from the diff content shown to Gemini and the changed-files list. The commit itself is still included.
focusAreasDrops entire commits where no changed file matches any pattern. Useful for monorepos where you only care about a specific subdirectory.

Both options support glob patterns (*, **, ?) and plain substrings.