Scripts & Tooling
Scripts
6 scripts in scripts/, split between status bar renderers and utilities.
Status Bar Scripts
These run on a 5-second interval via status.conf. They must NEVER use set -e — a crash breaks the status bar for every window.
| Script | Purpose | Design Notes |
|---|---|---|
|
Git branch, ahead/behind count, dirty/clean state, stash count |
Caches via single |
|
Project context — detects atelier directory structure, shows project name with category icon |
3-second cache in |
|
CPU usage, memory usage, load average — rotates metrics on each call |
Linux-only (reads |
Utility Scripts
| Script | Purpose | Design Notes |
|---|---|---|
|
Table-aware keybinding conflict detection. Parses |
Uses |
|
Keybinding reference displayed via |
Must stay in sync with actual bindings in |
|
Interactive theme switching — fzf preview, cycling, direct selection. Modifies |
Uses |
Claude Code Project Tooling
Project-scoped configurations in .claude/ within the repo. Tracked in git except settings.local.json.
Configurations
| Config | Purpose |
|---|---|
|
Auto-loads when editing |
|
Deep 6-point validation: keybinding conflicts, theme variable consistency across all themes, documentation sync vs actual bindings, script health (shebangs, |
|
|
|
|
Recommended settings.local.json
Not tracked in git (globally gitignored by design — machine-local overrides). Create after cloning:
{
"permissions": {
"allow": [
"Bash(tmux source-file:*)",
"Bash(tmux list-keys:*)",
"Bash(tmux show-options:*)",
"Bash(tmux display-message:*)",
"Bash(bash scripts/*)",
"Bash(bash:*)"
]
}
}
Save to .claude/settings.local.json to enable tmux introspection and project script execution without prompts.