aiblueprint-cli 1.4.59 → 1.4.61

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.md +16 -36
  2. package/agents-config/agents/action.md +1 -1
  3. package/agents-config/agents/explore-codebase.md +53 -53
  4. package/agents-config/agents/explore-docs.md +50 -69
  5. package/agents-config/agents/websearch.md +36 -40
  6. package/agents-config/claude-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
  7. package/agents-config/claude-config/scripts/CLAUDE.md +10 -4
  8. package/agents-config/claude-config/scripts/bun.lockb +0 -0
  9. package/agents-config/claude-config/scripts/package.json +22 -30
  10. package/agents-config/claude-config/scripts/statusline/CLAUDE.md +37 -155
  11. package/agents-config/claude-config/scripts/statusline/README.md +18 -94
  12. package/agents-config/claude-config/scripts/statusline/defaults.json +13 -10
  13. package/agents-config/claude-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -4
  14. package/agents-config/claude-config/scripts/statusline/fixtures/test-input.json +4 -4
  15. package/agents-config/claude-config/scripts/statusline/src/commands/interactive-config.ts +403 -0
  16. package/agents-config/claude-config/scripts/statusline/src/index.ts +33 -82
  17. package/agents-config/claude-config/scripts/statusline/src/lib/config-types.ts +7 -1
  18. package/agents-config/claude-config/scripts/statusline/src/lib/formatters.ts +40 -0
  19. package/agents-config/claude-config/scripts/statusline/src/lib/presets.ts +13 -13
  20. package/agents-config/claude-config/scripts/statusline/src/lib/render-pure.ts +24 -5
  21. package/agents-config/claude-config/scripts/statusline/statusline.config.free.json +79 -0
  22. package/agents-config/claude-config/scripts/statusline/statusline.config.json +77 -77
  23. package/agents-config/codex-config/config.toml +9 -0
  24. package/agents-config/codex-config/hooks/command-deny-list.ts +203 -0
  25. package/agents-config/commands/prompts/create-vitejs-app.md +272 -0
  26. package/agents-config/commands/prompts/nextjs-add-prisma-db.md +136 -0
  27. package/agents-config/commands/prompts/nextjs-setup-better-auth.md +173 -0
  28. package/agents-config/commands/prompts/nextjs-setup-project.md +200 -0
  29. package/agents-config/commands/prompts/prompt.md +55 -0
  30. package/agents-config/commands/prompts/saas-challenge-idea.md +135 -0
  31. package/agents-config/commands/prompts/saas-create-architecture.md +242 -0
  32. package/agents-config/commands/prompts/saas-create-headline.md +132 -0
  33. package/agents-config/commands/prompts/saas-create-landing-copywritting.md +267 -0
  34. package/agents-config/commands/prompts/saas-create-legals-docs.md +176 -0
  35. package/agents-config/commands/prompts/saas-create-logos.md +240 -0
  36. package/agents-config/commands/prompts/saas-create-prd.md +195 -0
  37. package/agents-config/commands/prompts/saas-create-tasks.md +240 -0
  38. package/agents-config/commands/prompts/saas-define-pricing.md +293 -0
  39. package/agents-config/commands/prompts/saas-find-domain-name.md +190 -0
  40. package/agents-config/commands/prompts/saas-implement-landing-page.md +257 -0
  41. package/agents-config/commands/prompts/setup-tmux.md +160 -0
  42. package/agents-config/commands/prompts/tools.md +148 -0
  43. package/agents-config/scripts/.claude/skills/fix-on-my-computer/SKILL.md +81 -0
  44. package/agents-config/scripts/CLAUDE.md +37 -0
  45. package/agents-config/scripts/biome.json +37 -0
  46. package/agents-config/scripts/bun.lockb +0 -0
  47. package/agents-config/scripts/package.json +24 -0
  48. package/agents-config/scripts/statusline/CLAUDE.md +87 -0
  49. package/agents-config/scripts/statusline/README.md +117 -0
  50. package/agents-config/scripts/statusline/__tests__/context.test.ts +229 -0
  51. package/agents-config/scripts/statusline/__tests__/formatters.test.ts +108 -0
  52. package/agents-config/scripts/statusline/__tests__/statusline.test.ts +309 -0
  53. package/agents-config/scripts/statusline/defaults.json +82 -0
  54. package/agents-config/scripts/statusline/fixtures/mock-transcript.jsonl +4 -0
  55. package/agents-config/scripts/statusline/fixtures/test-input.json +35 -0
  56. package/agents-config/scripts/statusline/src/commands/interactive-config.ts +403 -0
  57. package/agents-config/scripts/statusline/src/index.ts +141 -0
  58. package/agents-config/scripts/statusline/src/lib/config-types.ts +110 -0
  59. package/agents-config/scripts/statusline/src/lib/config.ts +21 -0
  60. package/agents-config/scripts/statusline/src/lib/context.ts +103 -0
  61. package/agents-config/scripts/statusline/src/lib/formatters.ts +426 -0
  62. package/agents-config/scripts/statusline/src/lib/git.ts +100 -0
  63. package/agents-config/scripts/statusline/src/lib/menu-factories.ts +224 -0
  64. package/agents-config/scripts/statusline/src/lib/presets.ts +177 -0
  65. package/agents-config/scripts/statusline/src/lib/render-pure.ts +516 -0
  66. package/agents-config/scripts/statusline/src/lib/types.ts +36 -0
  67. package/agents-config/scripts/statusline/src/lib/utils.ts +15 -0
  68. package/agents-config/scripts/statusline/statusline.config.free.json +79 -0
  69. package/agents-config/scripts/statusline/statusline.config.json +79 -0
  70. package/agents-config/scripts/statusline/test-with-fixtures.ts +37 -0
  71. package/agents-config/scripts/statusline/test.ts +20 -0
  72. package/agents-config/scripts/statusline/tsconfig.json +27 -0
  73. package/agents-config/scripts/tsconfig.json +27 -0
  74. package/agents-config/skills/{subagent-creator → agents-managers}/SKILL.md +47 -47
  75. package/agents-config/skills/{subagent-creator/references/subagents.md → agents-managers/references/agents.md} +45 -45
  76. package/agents-config/skills/{subagent-creator → agents-managers}/references/context-management.md +20 -20
  77. package/agents-config/skills/{subagent-creator → agents-managers}/references/debugging-agents.md +27 -27
  78. package/agents-config/skills/{subagent-creator → agents-managers}/references/error-handling-and-recovery.md +19 -19
  79. package/agents-config/skills/{subagent-creator → agents-managers}/references/evaluation-and-testing.md +29 -29
  80. package/agents-config/skills/{subagent-creator → agents-managers}/references/orchestration-patterns.md +5 -5
  81. package/agents-config/skills/{subagent-creator/references/writing-subagent-prompts.md → agents-managers/references/writing-agent-prompts.md} +23 -23
  82. package/agents-config/skills/codex-environment/SKILL.md +2 -0
  83. package/agents-config/skills/commit/SKILL.md +2 -0
  84. package/agents-config/skills/create-pr/SKILL.md +2 -0
  85. package/agents-config/skills/environments-manager/SKILL.md +271 -0
  86. package/agents-config/skills/environments-manager/examples/claude/.worktreeinclude +3 -0
  87. package/agents-config/skills/environments-manager/examples/claude/commands/dev.md +5 -0
  88. package/agents-config/skills/environments-manager/examples/claude/commands/lint.md +5 -0
  89. package/agents-config/skills/environments-manager/examples/claude/commands/test.md +5 -0
  90. package/agents-config/skills/environments-manager/examples/claude/commands/typecheck.md +5 -0
  91. package/agents-config/skills/environments-manager/examples/claude/settings.json +24 -0
  92. package/agents-config/skills/environments-manager/examples/codex/environments/environment.toml +29 -0
  93. package/agents-config/skills/environments-manager/examples/cursor/worktrees.json +3 -0
  94. package/agents-config/skills/environments-manager/examples/scripts/claude-worktree-create.sh +96 -0
  95. package/agents-config/skills/environments-manager/examples/scripts/claude-worktree-remove.sh +66 -0
  96. package/agents-config/skills/environments-manager/examples/scripts/dev.sh +15 -0
  97. package/agents-config/skills/environments-manager/examples/scripts/worktree-down.sh +22 -0
  98. package/agents-config/skills/environments-manager/examples/scripts/worktree-up.sh +50 -0
  99. package/agents-config/skills/environments-manager/references/claude.md +156 -0
  100. package/agents-config/skills/environments-manager/references/codex.md +97 -0
  101. package/agents-config/skills/environments-manager/references/cursor.md +88 -0
  102. package/agents-config/skills/fix-pr-comments/SKILL.md +2 -0
  103. package/agents-config/skills/grill-me/SKILL.md +10 -0
  104. package/agents-config/skills/merge/SKILL.md +2 -0
  105. package/agents-config/skills/rules-manager/SKILL.md +191 -0
  106. package/agents-config/skills/rules-manager/references/agents-vs-claude.md +66 -0
  107. package/agents-config/skills/rules-manager/references/examples.md +117 -0
  108. package/agents-config/skills/skill-manager/SKILL.md +101 -0
  109. package/agents-config/skills/skill-manager/references/claude-code.md +81 -0
  110. package/agents-config/skills/skill-manager/references/codex.md +288 -0
  111. package/agents-config/skills/skill-manager/references/cursor.md +125 -0
  112. package/agents-config/skills/skill-manager/references/description-recommandation.md +97 -0
  113. package/agents-config/skills/skill-manager/scripts/inspect-description.ts +743 -0
  114. package/agents-config/skills/ultrathink/SKILL.md +2 -0
  115. package/dist/cli.js +581 -299
  116. package/package.json +1 -1
  117. package/agents-config/claude-config/scripts/statusline/data/.gitignore +0 -8
  118. package/agents-config/claude-config/scripts/statusline/data/.gitkeep +0 -0
  119. package/agents-config/claude-config/scripts/statusline/docs/ARCHITECTURE.md +0 -166
  120. package/agents-config/claude-config/scripts/statusline/src/tests/spend-v2.test.ts +0 -306
  121. package/agents-config/skills/apex/SKILL.md +0 -261
  122. package/agents-config/skills/apex/scripts/setup-templates.sh +0 -100
  123. package/agents-config/skills/apex/scripts/update-progress.sh +0 -80
  124. package/agents-config/skills/apex/steps/step-00-init.md +0 -267
  125. package/agents-config/skills/apex/steps/step-00b-branch.md +0 -126
  126. package/agents-config/skills/apex/steps/step-00b-economy.md +0 -244
  127. package/agents-config/skills/apex/steps/step-00b-interactive.md +0 -153
  128. package/agents-config/skills/apex/steps/step-01-analyze.md +0 -361
  129. package/agents-config/skills/apex/steps/step-02-plan.md +0 -264
  130. package/agents-config/skills/apex/steps/step-03-execute.md +0 -239
  131. package/agents-config/skills/apex/steps/step-04-validate.md +0 -251
  132. package/agents-config/skills/apex/templates/00-context.md +0 -43
  133. package/agents-config/skills/apex/templates/01-analyze.md +0 -10
  134. package/agents-config/skills/apex/templates/02-plan.md +0 -10
  135. package/agents-config/skills/apex/templates/03-execute.md +0 -10
  136. package/agents-config/skills/apex/templates/04-validate.md +0 -10
  137. package/agents-config/skills/apex/templates/README.md +0 -176
  138. package/agents-config/skills/apex/templates/step-complete.md +0 -7
  139. package/agents-config/skills/claude-memory/SKILL.md +0 -293
  140. package/agents-config/skills/claude-memory/references/comprehensive-example.md +0 -175
  141. package/agents-config/skills/claude-memory/references/optimize-guide.md +0 -300
  142. package/agents-config/skills/claude-memory/references/project-patterns.md +0 -334
  143. package/agents-config/skills/claude-memory/references/prompting-techniques.md +0 -411
  144. package/agents-config/skills/claude-memory/references/rules-directory-guide.md +0 -298
  145. package/agents-config/skills/claude-memory/references/section-templates.md +0 -347
  146. package/agents-config/skills/fix-errors/SKILL.md +0 -61
  147. package/agents-config/skills/fix-grammar/SKILL.md +0 -59
  148. package/agents-config/skills/ralph-loop/SKILL.md +0 -117
  149. package/agents-config/skills/ralph-loop/scripts/setup.sh +0 -278
  150. package/agents-config/skills/ralph-loop/steps/step-00-init.md +0 -215
  151. package/agents-config/skills/ralph-loop/steps/step-01-interactive-prd.md +0 -366
  152. package/agents-config/skills/ralph-loop/steps/step-02-create-stories.md +0 -273
  153. package/agents-config/skills/ralph-loop/steps/step-03-finish.md +0 -245
  154. package/agents-config/skills/skill-creator/LICENSE.txt +0 -202
  155. package/agents-config/skills/skill-creator/SKILL.md +0 -421
  156. package/agents-config/skills/skill-creator/package.json +0 -5
  157. package/agents-config/skills/skill-creator/references/output-patterns.md +0 -82
  158. package/agents-config/skills/skill-creator/references/progressive-disclosure-patterns.md +0 -374
  159. package/agents-config/skills/skill-creator/references/prompting-integration.md +0 -363
  160. package/agents-config/skills/skill-creator/references/real-world-examples.md +0 -513
  161. package/agents-config/skills/skill-creator/references/script-patterns.md +0 -385
  162. package/agents-config/skills/skill-creator/references/workflows.md +0 -28
  163. package/agents-config/skills/skill-creator/references/xml-tag-guide.md +0 -606
  164. package/agents-config/skills/skill-creator/scripts/init-skill.ts +0 -214
  165. package/agents-config/skills/skill-creator/scripts/package-skill.ts +0 -146
  166. package/agents-config/skills/skill-creator/scripts/validate.ts +0 -138
  167. package/agents-config/skills/workflow-apex-free/SKILL.md +0 -261
  168. package/agents-config/skills/workflow-apex-free/scripts/setup-templates.sh +0 -100
  169. package/agents-config/skills/workflow-apex-free/scripts/update-progress.sh +0 -80
  170. package/agents-config/skills/workflow-apex-free/steps/step-00-init.md +0 -267
  171. package/agents-config/skills/workflow-apex-free/steps/step-00b-branch.md +0 -126
  172. package/agents-config/skills/workflow-apex-free/steps/step-00b-economy.md +0 -244
  173. package/agents-config/skills/workflow-apex-free/steps/step-00b-interactive.md +0 -153
  174. package/agents-config/skills/workflow-apex-free/steps/step-01-analyze.md +0 -361
  175. package/agents-config/skills/workflow-apex-free/steps/step-02-plan.md +0 -264
  176. package/agents-config/skills/workflow-apex-free/steps/step-03-execute.md +0 -239
  177. package/agents-config/skills/workflow-apex-free/steps/step-04-validate.md +0 -251
  178. package/agents-config/skills/workflow-apex-free/templates/00-context.md +0 -43
  179. package/agents-config/skills/workflow-apex-free/templates/01-analyze.md +0 -10
  180. package/agents-config/skills/workflow-apex-free/templates/02-plan.md +0 -10
  181. package/agents-config/skills/workflow-apex-free/templates/03-execute.md +0 -10
  182. package/agents-config/skills/workflow-apex-free/templates/04-validate.md +0 -10
  183. package/agents-config/skills/workflow-apex-free/templates/README.md +0 -176
  184. package/agents-config/skills/workflow-apex-free/templates/step-complete.md +0 -7
@@ -2,18 +2,17 @@
2
2
 
3
3
  ## Overview
4
4
 
5
- Clean, type-safe statusline implementation for Claude Code using Bun + TypeScript. Displays real-time session information, git status, context usage, and Claude API rate limits.
5
+ Lightweight, type-safe statusline implementation for Claude Code using Bun and TypeScript. Displays session context, git status, model information, duration, and context usage without premium spend or usage-limit tracking.
6
6
 
7
7
  ## Project Setup & Configuration
8
8
 
9
9
  ### Dependencies
10
10
 
11
- - **Bun**: Runtime (uses `$` for shell commands)
12
- - **@biomejs/biome**: Linting & formatting
11
+ - **Bun**: Runtime
12
+ - **picocolors**: Terminal colors
13
+ - **@biomejs/biome**: Linting and formatting
13
14
  - **TypeScript**: Type safety
14
15
 
15
- No external npm packages required - pure Bun APIs.
16
-
17
16
  ### Configuration in Claude Code
18
17
 
19
18
  Add to `~/.claude/settings.json`:
@@ -22,184 +21,67 @@ Add to `~/.claude/settings.json`:
22
21
  {
23
22
  "statusLine": {
24
23
  "type": "command",
25
- "command": "bun ~/.claude/scripts/statusline/src/index.ts",
24
+ "command": "bun /Users/melvynx/.claude/scripts/statusline/src/index.ts",
26
25
  "padding": 0
27
26
  }
28
27
  }
29
28
  ```
30
29
 
31
- ### Authentication
32
-
33
- OAuth token stored in macOS Keychain:
34
-
35
- - **Service**: `Claude Code-credentials`
36
- - **Format**: JSON with `claudeAiOauth.accessToken`
37
- - **Token type**: `sk-ant-oat01-...` (OAuth token, not API key)
38
- - **Access**: `security find-generic-password -s "Claude Code-credentials" -w`
39
-
40
30
  ## Architecture
41
31
 
42
- ### Modular Design
43
-
44
- The project follows a clean architecture with separated concerns:
45
-
46
32
  ```
47
33
  src/
48
- ├── index.ts # Main entry - orchestrates all components
34
+ ├── index.ts # Main entry point
49
35
  └── lib/
50
- ├── types.ts # TypeScript interfaces (HookInput)
51
- ├── git.ts # Git operations (branch, changes)
52
- ├── context.ts # Transcript parsing & context calculation
53
- ├── usage-limits.ts # Claude OAuth API integration
54
- └── formatters.ts # Display utilities & colors
55
- ```
56
-
57
- ### Data Flow
58
-
59
- ```
60
- Claude Code Hook → stdin JSON → index.ts
61
-
62
- ┌───────────────┴───────────────┐
63
- ↓ ↓
64
- [Get Git Status] [Get Context Data]
65
- ↓ ↓
66
- [Format Branch] [Get Usage Limits]
67
- ↓ ↓
68
- └───────────────┬───────────────┘
69
-
70
- [Build Output Lines]
71
-
72
- stdout (2 lines)
73
- ```
74
-
75
- ## Component Specifications
76
-
77
- ### Context Calculation (`lib/context.ts`)
78
-
79
- - **Purpose**: Calculate token usage from Claude Code transcript files
80
- - **Algorithm**: Parses `.jsonl` transcript, finds most recent main-chain entry
81
- - **Tokens counted**: `input_tokens + cache_read_input_tokens + cache_creation_input_tokens`
82
- - **Excludes**: Sidechain entries (agent calls), API error messages
83
- - **Output**: `{ tokens: number, percentage: number }` (0-100% of 200k context)
84
-
85
- ### Usage Limits (`lib/usage-limits.ts`)
86
-
87
- - **Purpose**: Fetch Claude API rate limits from OAuth endpoint
88
- - **Auth**: Retrieves OAuth token from macOS Keychain (`Claude Code-credentials`)
89
- - **API**: `https://api.anthropic.com/api/oauth/usage`
90
- - **Data**: Five-hour window utilization + reset time
91
- - **Error handling**: Fails silently, returns null on errors
92
-
93
- ### Git Status (`lib/git.ts`)
94
-
95
- - **Purpose**: Show current branch and uncommitted changes
96
- - **Detection**: Checks both staged and unstaged changes
97
- - **Output**: Branch name + line additions/deletions
98
- - **Display**: `main* (+123 -45)` with color coding
99
-
100
- ### Formatters (`lib/formatters.ts`)
101
-
102
- - **Colors**: ANSI color codes for terminal output
103
- - **Token display**: `62.5K`, `1.2M` format
104
- - **Time formatting**: `3h21m`, `45m` for countdowns
105
- - **Reset time**: Calculates difference between API reset time and now
106
-
107
- ## Output Specification
108
-
109
- ### Line 1: Session Info
110
-
111
- ```
112
- main* (+123 -45) | ~/.claude | Sonnet 4.5
36
+ ├── types.ts # TypeScript interfaces
37
+ ├── git.ts # Git operations
38
+ ├── context.ts # Payload/transcript context calculation
39
+ ├── render-pure.ts # Pure rendering logic
40
+ └── formatters.ts # Display utilities and colors
113
41
  ```
114
42
 
115
- ### Line 2: Metrics
43
+ ## Data Flow
116
44
 
117
45
  ```
118
- $0.17 (6m) | 62.5K tokens | 31% | 15% (3h27m)
46
+ Claude Code hook -> stdin JSON -> index.ts
47
+ -> get git status
48
+ -> get context data
49
+ -> render statusline
50
+ -> stdout
119
51
  ```
120
52
 
121
- **Components:**
53
+ ## Component Notes
122
54
 
123
- - `$0.17` - Session cost (USD)
124
- - `(6m)` - Session duration
125
- - `62.5K tokens` - Context tokens used (from transcript)
126
- - `31%` - Context percentage (tokens / 200k)
127
- - `15%` - Five-hour usage (from Claude API)
128
- - `(3h27m)` - Time until rate limit resets
55
+ - `lib/context.ts` calculates context tokens from the hook payload when available, falling back to transcript parsing.
56
+ - `lib/git.ts` detects branch and staged/unstaged changes.
57
+ - `lib/render-pure.ts` renders output from prepared data and config.
58
+ - `src/commands/interactive-config.ts` must stay in sync with `statusline.config.json`.
129
59
 
130
60
  ## Development
131
61
 
132
- ### Testing
133
-
134
62
  ```bash
135
- # Run test with fixture
136
63
  bun run test
137
-
138
- # Use custom fixture
139
- bun run test fixtures/custom.json
140
-
141
- # Manual test
142
- echo '{ ... }' | bun run start
64
+ bun run statusline:test-fixtures
65
+ bun run statusline:config
143
66
  ```
144
67
 
145
- ### Code Conventions
146
-
147
- - **ALWAYS** use camelCase for variables and functions
148
- - Use TypeScript strict mode
149
- - Follow Biome formatting rules
150
-
151
- ### Error Handling & Performance
152
-
153
- **Error Handling** - All components fail silently:
154
-
155
- - Missing transcript → 0 tokens, 0%
156
- - API failure → No usage limits shown
157
- - Git errors → "no-git" branch
158
- - Keychain access denied → No usage limits
159
-
160
- This ensures statusline never crashes Claude Code.
68
+ Manual test:
161
69
 
162
- **Performance Benchmarks:**
163
-
164
- - Context calculation: ~10-50ms (depends on transcript size)
165
- - API call: ~100-300ms (cached by Claude API)
166
- - Git operations: ~20-50ms
167
- - Total: < 500ms typical
168
-
169
- ## Maintenance Guide
170
-
171
- ### Adding New Metrics
172
-
173
- 1. Add interface to `lib/types.ts`
174
- 2. Create fetcher in `lib/*.ts`
175
- 3. Import in `index.ts`
176
- 4. Add to `buildSecondLine()`
177
-
178
- ### Modifying Display
70
+ ```bash
71
+ echo '{ ... }' | bun run statusline:start
72
+ ```
179
73
 
180
- - Colors: Edit `lib/formatters.ts` colors constant
181
- - Layout: Modify `buildFirstLine()` / `buildSecondLine()`
182
- - Formatting: Add functions to `lib/formatters.ts`
74
+ ## Error Handling
183
75
 
184
- ## Known Limitations
76
+ The statusline should fail softly:
185
77
 
186
- - macOS only (uses Keychain)
187
- - Requires `git` CLI for git status
188
- - Requires Claude Code OAuth (not API key)
189
- - Transcript must be accessible (permissions)
78
+ - Missing transcript -> 0 tokens, 0%
79
+ - Git errors -> no-git fallback
80
+ - Missing config -> default config
81
+ - Invalid stdin -> concise error output
190
82
 
191
83
  ## Critical Requirements
192
84
 
193
- ### Configuration Updates
194
-
195
- - **CRITICAL**: When updating `statusline.config.json` or `statusline.config.ts`, you **MUST** update the interactive demo in `src/commands/interactive-config.ts`
196
- - **ALWAYS** run `bun run config` after config changes to verify the interactive demo works correctly
197
- - **REQUIRED**: Keep config file structure in sync with interactive prompts
198
-
199
- ### Runtime & Dependencies
200
-
201
- - **ALWAYS** use Bun for all commands and runtime operations
202
- - Use `bun run <script>` instead of `npm run` or `pnpm run`
203
- - Use `bun install` for dependency management
204
- - **AUTHORIZED LIBRARIES**: `@biomejs/biome` for linting/formatting, third-party libraries like `tiers` are permitted if needed
205
- - **NEVER** add external npm packages without verification - prefer Bun APIs first
85
+ - Keep `statusline.config.json`, `defaults.json`, and `src/commands/interactive-config.ts` aligned.
86
+ - Use Bun for runtime and tests.
87
+ - Keep this free version lightweight: no spend database, no usage-limit API, no OAuth credential dependency.
@@ -1,16 +1,14 @@
1
1
  # Claude Code Statusline
2
2
 
3
- Clean, modular statusline for Claude Code with TypeScript + Bun.
3
+ Lightweight statusline for Claude Code with TypeScript + Bun.
4
4
 
5
5
  ## Features
6
6
 
7
- - 🌿 Git branch with changes (+added -deleted)
8
- - 💰 Session cost and duration
9
- - 🧩 Context tokens used
10
- - 📊 Context percentage (0-100%)
11
- - ⏱️ Five-hour usage limit with reset time
12
- - 📅 Weekly usage limit with configurable threshold
13
- - 📈 Daily usage percentage tracking and statistics
7
+ - Git branch with staged/unstaged indicators
8
+ - Current working directory
9
+ - Model name and thinking status
10
+ - Session duration
11
+ - Context tokens and percentage
14
12
 
15
13
  ## Structure
16
14
 
@@ -20,8 +18,7 @@ src/
20
18
  └── lib/
21
19
  ├── types.ts # TypeScript interfaces
22
20
  ├── git.ts # Git status
23
- ├── context.ts # Context calculation from transcript
24
- ├── usage-limits.ts # Claude API usage limits
21
+ ├── context.ts # Context calculation from payload/transcript
25
22
  └── formatters.ts # Formatting utilities
26
23
  ```
27
24
 
@@ -32,19 +29,10 @@ src/
32
29
  bun install
33
30
 
34
31
  # Run the statusline (needs stdin JSON)
35
- echo '{ ... }' | bun run start
32
+ echo '{ ... }' | bun run statusline:start
36
33
 
37
- # View today's spending
38
- bun run spend:today
39
-
40
- # View this month's spending
41
- bun run spend:month
42
-
43
- # View usage statistics
44
- bun run stats
45
-
46
- # Interactive config demo
47
- bun run demo
34
+ # Interactive config
35
+ bun run statusline:config
48
36
 
49
37
  # Format code
50
38
  bun run format
@@ -53,53 +41,12 @@ bun run format
53
41
  bun run lint
54
42
  ```
55
43
 
56
- ## Tracking Features
57
-
58
- ### Spend Tracking
59
-
60
- The statusline automatically saves session data to `data/spend.json`. You can view your spending with:
61
-
62
- ```bash
63
- # Today's sessions and cost
64
- bun run spend:today
65
-
66
- # This month's sessions grouped by date
67
- bun run spend:month
68
- ```
69
-
70
- Each session tracks:
71
- - Cost (USD)
72
- - Duration
73
- - Lines added/removed
74
- - Working directory
75
-
76
- ### Usage Statistics
77
-
78
- Daily usage percentages are automatically tracked in `data/daily-usage.json`. Each 5-hour rate limit period is tracked separately using the `resets_at` timestamp as a unique key.
79
-
80
- ```bash
81
- bun run stats
82
- ```
83
-
84
- This shows:
85
- - Average daily usage percentage across all tracked days
86
- - Total days and total 5-hour periods tracked
87
- - Recent 7-day usage history with visual bars
88
- - Per-day statistics: average, max, min across all 5-hour periods
89
- - Data is kept for 90 days
90
-
91
- **How it works:**
92
- - Each `resets_at` value represents a unique 5-hour rate limit period
93
- - Multiple 5-hour periods can occur in a single day
94
- - If the API is called multiple times during the same 5-hour period, only the latest value is kept
95
- - Daily statistics show the average, maximum, and minimum usage across all periods in that day
96
-
97
- ## Interactive Demo
44
+ ## Interactive Config
98
45
 
99
46
  Explore all configuration options with a live preview:
100
47
 
101
48
  ```bash
102
- bun run demo
49
+ bun run statusline:config
103
50
  ```
104
51
 
105
52
  This opens an interactive menu where you can:
@@ -107,7 +54,7 @@ This opens an interactive menu where you can:
107
54
  - See instant preview of how the statusline changes
108
55
  - Navigate through all available settings
109
56
  - Reset to defaults with `R`
110
- - Explore session, limits, weekly usage, and git display options
57
+ - Explore session, context, path, and git display options
111
58
 
112
59
  **Controls:**
113
60
  - `↑↓` or `j/k` - Navigate options
@@ -117,39 +64,16 @@ This opens an interactive menu where you can:
117
64
 
118
65
  ## Configuration
119
66
 
120
- The statusline can be customized via `statusline.config.ts`. Key configuration options:
121
-
122
- ### Weekly Usage Display
123
-
124
- ```typescript
125
- weeklyUsage: {
126
- enabled: boolean | "90%", // true: always show, false: never, "90%": show when 5-hour usage >= 90%
127
- showTimeLeft: boolean,
128
- percentage: {
129
- enabled: boolean,
130
- progressBar: {
131
- enabled: boolean,
132
- length: 5 | 10 | 15,
133
- style: "filled" | "rectangle" | "braille",
134
- color: "progressive" | "green" | "yellow" | "red"
135
- }
136
- }
137
- }
138
- ```
139
-
140
- **Default:** `enabled: "90%"` - Weekly limits appear when your 5-hour usage reaches 90%
141
-
142
- Display format: `W: ⣿⣿⣧⣀⣀⣀⣀⣀⣀⣀ 45% (6d12h)`
67
+ The statusline can be customized via `statusline.config.json`.
143
68
 
144
69
  ### Other Configuration Options
145
70
 
146
- - **Session display**: Cost, tokens, context percentage
147
- - **Limits display**: Five-hour usage limits
71
+ - **Session display**: Duration, tokens, context percentage
148
72
  - **Git display**: Branch, changes, staged/unstaged files
149
73
  - **Path display**: Full, truncated, or basename modes
150
74
  - **Progress bars**: Multiple styles and color schemes
151
75
 
152
- See `statusline.config.ts` for all available options and defaults.
76
+ See `statusline.config.json` for all available options and defaults.
153
77
 
154
78
  ## Usage in Claude Code
155
79
 
@@ -159,7 +83,7 @@ Update your `~/.claude/settings.json`:
159
83
  {
160
84
  "statusLine": {
161
85
  "type": "command",
162
- "command": "bun ~/.claude/scripts/statusline/src/index.ts",
86
+ "command": "bun /Users/melvynx/.claude/scripts/statusline/src/index.ts",
163
87
  "padding": 0
164
88
  }
165
89
  }
@@ -189,5 +113,5 @@ echo '{
189
113
  "total_lines_added": 100,
190
114
  "total_lines_removed": 50
191
115
  }
192
- }' | bun run start
116
+ }' | bun run statusline:start
193
117
  ```
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "features": {
3
- "usageLimits": true,
4
- "spendTracking": true
3
+ "usageLimits": false,
4
+ "spendTracking": false
5
5
  },
6
6
  "oneLine": true,
7
7
  "showSonnetModel": false,
@@ -17,7 +17,7 @@
17
17
  "separator": "•",
18
18
  "session": {
19
19
  "infoSeparator": null,
20
- "cost": { "enabled": true, "format": "decimal1" },
20
+ "cost": { "enabled": false, "format": "decimal1" },
21
21
  "duration": { "enabled": true },
22
22
  "tokens": { "enabled": true, "showMax": false, "showDecimals": false },
23
23
  "percentage": {
@@ -40,9 +40,9 @@
40
40
  "overheadTokens": 0
41
41
  },
42
42
  "limits": {
43
- "enabled": true,
44
- "showTimeLeft": true,
45
- "showPacingDelta": true,
43
+ "enabled": false,
44
+ "showTimeLeft": false,
45
+ "showPacingDelta": false,
46
46
  "cost": { "enabled": false, "format": "decimal1" },
47
47
  "percentage": {
48
48
  "enabled": true,
@@ -57,9 +57,9 @@
57
57
  }
58
58
  },
59
59
  "weeklyUsage": {
60
- "enabled": "90%",
61
- "showTimeLeft": true,
62
- "showPacingDelta": true,
60
+ "enabled": false,
61
+ "showTimeLeft": false,
62
+ "showPacingDelta": false,
63
63
  "cost": { "enabled": false, "format": "decimal1" },
64
64
  "percentage": {
65
65
  "enabled": true,
@@ -74,6 +74,9 @@
74
74
  }
75
75
  },
76
76
  "dailySpend": {
77
- "cost": { "enabled": true, "format": "decimal1" }
77
+ "cost": { "enabled": false, "format": "decimal1" }
78
+ },
79
+ "thinking": {
80
+ "showDisabledWarning": true
78
81
  }
79
82
  }
@@ -1,4 +1,4 @@
1
- {"parentUuid":null,"isSidechain":false,"userType":"external","cwd":"/tmp/test-project","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:00:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01","type":"message","role":"user","content":[{"type":"text","text":"Hello"}],"usage":{"input_tokens":1000,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":100}},"uuid":"uuid-1"}
2
- {"parentUuid":"uuid-1","isSidechain":false,"userType":"external","cwd":"/tmp/test-project","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:05:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_02","type":"message","role":"assistant","content":[{"type":"text","text":"Hi there!"}],"usage":{"input_tokens":50000,"cache_creation_input_tokens":30000,"cache_read_input_tokens":0,"output_tokens":200}},"uuid":"uuid-2"}
3
- {"parentUuid":"uuid-2","isSidechain":false,"userType":"external","cwd":"/tmp/test-project","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:10:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_03","type":"message","role":"user","content":[{"type":"text","text":"Can you help me?"}],"usage":{"input_tokens":20000,"cache_creation_input_tokens":0,"cache_read_input_tokens":40000,"output_tokens":150}},"uuid":"uuid-3"}
4
- {"parentUuid":"uuid-3","isSidechain":false,"userType":"external","cwd":"/tmp/test-project","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:15:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_04","type":"message","role":"assistant","content":[{"type":"text","text":"Of course! What do you need?"}],"usage":{"input_tokens":30000,"cache_creation_input_tokens":0,"cache_read_input_tokens":45000,"output_tokens":300}},"uuid":"uuid-4"}
1
+ {"parentUuid":null,"isSidechain":false,"userType":"external","cwd":"/Users/melvynx/.claude/scripts/statusline","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:00:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_01","type":"message","role":"user","content":[{"type":"text","text":"Hello"}],"usage":{"input_tokens":1000,"cache_creation_input_tokens":0,"cache_read_input_tokens":0,"output_tokens":100}},"uuid":"uuid-1"}
2
+ {"parentUuid":"uuid-1","isSidechain":false,"userType":"external","cwd":"/Users/melvynx/.claude/scripts/statusline","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:05:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_02","type":"message","role":"assistant","content":[{"type":"text","text":"Hi there!"}],"usage":{"input_tokens":50000,"cache_creation_input_tokens":30000,"cache_read_input_tokens":0,"output_tokens":200}},"uuid":"uuid-2"}
3
+ {"parentUuid":"uuid-2","isSidechain":false,"userType":"external","cwd":"/Users/melvynx/.claude/scripts/statusline","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:10:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_03","type":"message","role":"user","content":[{"type":"text","text":"Can you help me?"}],"usage":{"input_tokens":20000,"cache_creation_input_tokens":0,"cache_read_input_tokens":40000,"output_tokens":150}},"uuid":"uuid-3"}
4
+ {"parentUuid":"uuid-3","isSidechain":false,"userType":"external","cwd":"/Users/melvynx/.claude/scripts/statusline","sessionId":"demo-session","version":"2.0.31","gitBranch":"main","timestamp":"2025-11-11T10:15:00.000Z","message":{"model":"claude-sonnet-4-5-20250929","id":"msg_04","type":"message","role":"assistant","content":[{"type":"text","text":"Of course! What do you need?"}],"usage":{"input_tokens":30000,"cache_creation_input_tokens":0,"cache_read_input_tokens":45000,"output_tokens":300}},"uuid":"uuid-4"}
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "session_id": "06a7b019-03f8-4083-a9db-410d95cb01e6",
3
- "transcript_path": "/tmp/test-fixtures/mock-transcript.jsonl",
4
- "cwd": "/tmp/test-project",
3
+ "transcript_path": "/Users/melvynx/.claude/scripts/statusline/fixtures/mock-transcript.jsonl",
4
+ "cwd": "/Users/melvynx/.claude",
5
5
  "model": {
6
6
  "id": "claude-sonnet-4-5-20250929",
7
7
  "display_name": "Sonnet 4.5"
8
8
  },
9
9
  "workspace": {
10
- "current_dir": "/tmp/test-project",
11
- "project_dir": "/tmp/test-project"
10
+ "current_dir": "/Users/melvynx/.claude",
11
+ "project_dir": "/Users/melvynx/.claude"
12
12
  },
13
13
  "version": "2.0.68",
14
14
  "output_style": {