Repository navigation
Configuration
Settings live in ~/.config/fast-lane/config.json (or under $XDG_CONFIG_HOME); -config <path> uses another file. Everything here can be changed in the app: auto rules on the Rules tab, everything else on the Settings tab, and watched repos on the Repos tab. Changes made in the app are saved right away and apply from the next poll or session. Edits to the file by hand apply when Fast Lane restarts. Don't edit the file while Fast Lane is running, since it saves its own copy over yours.
A config with every setting, showing the defaults where there are any:
{
"poll_interval": "2m",
"workspace_dir": "~/.local/share/fast-lane/workspaces",
"code_dirs": ["~/Code", "~/code", "~/src", "~/Projects", "~/Developer", "~/dev", "~/repos"],
"max_concurrent": 2,
"max_auto_runs": 5,
"inbox": { "enabled": true, "auto_run": true },
"claude": {
"path": "claude",
"model": "claude-opus-5-5",
"effort": "medium",
"permission_mode": "manual",
"allowed_tools": [
"Read", "Grep", "Glob",
"Bash(git status:*)", "Bash(git diff:*)", "Bash(git log:*)", "Bash(git show:*)",
"Bash(gh pr view:*)", "Bash(gh pr diff:*)", "Bash(gh pr checks:*)",
"Bash(gh issue view:*)", "Bash(gh run view:*)", "Bash(gh run list:*)",
"Bash(gh api --method GET:*)", "Bash(gh api -X GET:*)"
],
"max_budget_usd": 5,
"extra_args": []
},
"prompts": {
"issue": "Triage issue #{{.Number}} in {{.Repo}}: {{.Title}}\n\n{{.Body}}"
},
"auto_rules": {
"pull_request:checks_failed": { "authors": ["you"], "allow": ["edit", "update_pr"] }
},
"repos": [
{
"full_name": "you/your-repo",
"local_path": "~/Code/your-repo",
"events": ["pull_request", "issue", "dependabot_alert", "code_scanning_alert"],
"auto_run": true
}
]
}| Setting | Default | Does |
|---|---|---|
poll_interval |
2m |
How often watched repos and the inbox are checked. At least 30s. |
max_concurrent |
2 |
How many Claude sessions run at once. |
max_auto_runs |
5 |
How many times auto-run may act on one item. Sessions you start don't count. |
| Setting | Default | Does |
|---|---|---|
workspace_dir |
~/.local/share/fast-lane/workspaces |
Where repos without a local checkout are cloned, and session worktrees live (under .worktrees/). |
code_dirs |
the usual places | Searched for local checkouts. [] means always clone. |
| Setting | Default | Does |
|---|---|---|
claude.path |
claude |
The claude executable, by name or full path. |
claude.model |
Claude Code's default | Passed to --model, such as claude-opus-5-5. A rule's model replaces it. |
claude.effort |
Claude Code's default | Passed to --effort: low, medium, high, xhigh or max. A rule's effort replaces it. |
claude.permission_mode |
manual |
Passed to --permission-mode (manual, acceptEdits, auto, …). Prompts the mode doesn't settle come to you as dialogs. |
claude.allowed_tools |
read-only tools | Claude Code permission rules pre-approved in every session. A rule's allow adds to these. |
claude.max_budget_usd |
no cap | Caps what one session may spend, passed to --max-budget-usd. |
claude.extra_args |
none | Appended to every claude command. |
| Setting | Default | Does |
|---|---|---|
inbox.enabled |
true |
Read review requests, mentions and assignments from your notifications. |
inbox.auto_run |
true |
Run Claude on them without asking. See Inbox. |
inbox.full_auto |
false |
Run them in full auto. |
-
promptsreplaces built-in instructions by key, such asissueorpull_request:checks_failed. See Prompts. -
auto_rulesdecides what runs on its own. See Auto rules.
Each watched repo has:
| Setting | Does |
|---|---|
full_name |
owner/name |
events |
The kinds to watch: pull_request, issue, dependabot_alert, code_scanning_alert. |
auto_run |
Whether its triggers run Claude without asking. Off for new repos. |
full_auto |
Run every trigger in full auto. Implies auto_run. |
local_path |
A checkout to make worktrees from, overriding the one found in code_dirs. |
auto_rules |
Rules for this repo only. When set, they replace the global rules for it. |
A config that doesn't load, such as a rule filter that can't apply to its kind or an unknown action, stops Fast Lane at startup with a message saying what and where.
Fast Lane keeps its state in ~/.local/state/fast-lane/ (or under $XDG_STATE_HOME): state.json holds what it has seen and dismissed, each item's last snapshot and the changes that fired, inbox items, and session history. logs/ holds each session's raw stream-json log, useful when something goes wrong.