@owloops/claude-powerline 1.22.0 → 1.23.0

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.
package/README.md CHANGED
@@ -107,11 +107,24 @@ Lightweight and fast with no external dependencies to install.
107
107
 
108
108
  ## Installation
109
109
 
110
- ### Setup
111
-
112
110
  Requires Node.js 18+, Claude Code, and Git 2.0+. For best display, install a [Nerd Font](https://www.nerdfonts.com/) or use `--charset=text` for ASCII-only symbols.
113
111
 
114
- **1. Add to your Claude Code `settings.json`:**
112
+ ### Setup Wizard (Recommended)
113
+
114
+ The interactive wizard walks you through theme, style, font, segment, and budget selection.
115
+
116
+ ```bash
117
+ # run inside Claude Code (pick one install method)
118
+ /plugin marketplace add Owloops/claude-powerline # from GitHub
119
+ /plugin install @owloops/claude-powerline@claude-powerline # or from npm
120
+ /powerline
121
+ ```
122
+
123
+ The wizard writes `~/.claude/claude-powerline.json` and updates your `settings.json` automatically. Run `/powerline` again any time to reconfigure.
124
+
125
+ ### Manual Setup
126
+
127
+ Add to your Claude Code `settings.json`:
115
128
 
116
129
  ```json
117
130
  {
@@ -122,15 +135,42 @@ Requires Node.js 18+, Claude Code, and Git 2.0+. For best display, install a [Ne
122
135
  }
123
136
  ```
124
137
 
125
- **2. Start a Claude session** - the statusline appears at the bottom during conversations.
138
+ Start a Claude session and the statusline appears at the bottom.
126
139
 
127
140
  ![Claude Code with powerline](images/claude-interface-with-powerline.png)
128
141
 
129
142
  Using `npx` automatically downloads and runs the latest version without manual updates.
130
143
 
131
- ## Usage
144
+ ## Styles
145
+
146
+ <img src="images/claude-powerline-styles.png" alt="Claude Powerline Styles" width="600">
147
+
148
+ - **minimal** -- Segments separated by spaces, no decorations
149
+ - **powerline** -- Arrow-shaped separators between segments (best with Nerd Font)
150
+ - **capsule** -- Rounded pill-shaped segments (best with Nerd Font)
151
+ - **tui** -- Bordered panel with responsive multi-line layout. TUI mode is **opinionated**: it always displays all data regardless of segment configuration. Only theme, charset, and budget thresholds are respected.
152
+
153
+ <details>
154
+ <summary><h2>Configuration</h2></summary>
155
+
156
+ **Config locations** (in priority order):
157
+
158
+ - `./.claude-powerline.json` - Project-specific
159
+ - `~/.claude/claude-powerline.json` - User config
160
+ - `~/.config/claude-powerline/config.json` - XDG standard
161
+
162
+ **Override priority:** CLI flags > Environment variables > Config files > Defaults
163
+
164
+ Config files reload automatically, no restart needed.
165
+
166
+ **Get example config:**
167
+
168
+ ```bash
169
+ curl -o ~/.claude/claude-powerline.json https://raw.githubusercontent.com/Owloops/claude-powerline/main/.claude-powerline.json
170
+ ```
132
171
 
133
- Once added to Claude Code settings, the statusline runs automatically. For customization:
172
+ <details>
173
+ <summary><strong>CLI Options and Environment Variables</strong></summary>
134
174
 
135
175
  **CLI Options** (both `--arg value` and `--arg=value` syntax supported):
136
176
 
@@ -157,49 +197,7 @@ export CLAUDE_POWERLINE_CONFIG=/path/to/config.json
157
197
  export CLAUDE_POWERLINE_DEBUG=1 # Enable debug logging
158
198
  ```
159
199
 
160
- ## Styles
161
-
162
- <img src="images/claude-powerline-styles.png" alt="Claude Powerline Styles" width="600">
163
-
164
- ### TUI Panel Mode
165
-
166
- The `tui` style renders a bordered panel with all available data in a responsive layout. Unlike other styles, TUI mode is **opinionated**: it always displays all data regardless of segment enable/disable configuration. Only theme, charset, and budget thresholds are respected.
167
-
168
- ```json
169
- {
170
- "statusLine": {
171
- "type": "command",
172
- "command": "npx -y @owloops/claude-powerline@latest --style=tui"
173
- }
174
- }
175
- ```
176
-
177
- The panel adapts to terminal width across three breakpoints:
178
- - **Wide** (80+ cols): metrics on one line, workspace and footer spread across columns
179
- - **Medium** (55-79 cols): metrics split across two lines, stacked footer
180
- - **Narrow** (<55 cols): fully stacked layout
181
-
182
- > [!NOTE]
183
- > Claude Code's internal progress indicators (spinner, context bar) may briefly overlap the TUI panel during tool calls. This is a limitation of the hook architecture and resolves once the tool call completes.
184
-
185
- ## Configuration
186
-
187
- **Get example config:**
188
-
189
- ```bash
190
- # Download full-featured example config
191
- curl -o ~/.claude/claude-powerline.json https://raw.githubusercontent.com/Owloops/claude-powerline/main/.claude-powerline.json
192
- ```
193
-
194
- **Config locations** (in priority order):
195
-
196
- - `./.claude-powerline.json` - Project-specific
197
- - `~/.claude/claude-powerline.json` - User config
198
- - `~/.config/claude-powerline/config.json` - XDG standard
199
-
200
- **Override priority:** CLI flags → Environment variables → Config files → Defaults
201
-
202
- Config files reload automatically and no restart needed.
200
+ </details>
203
201
 
204
202
  ### Segment Configuration
205
203
 
@@ -252,52 +250,59 @@ Config files reload automatically and no restart needed.
252
250
 
253
251
  **Symbols:**
254
252
 
255
- - Unicode: `⎇` Branch `♯` SHA `⌂` Tag `⧇` Stash `✓` Clean `●` Dirty `⚠` Conflicts `↑3` Ahead `↓2` Behind `(+1 ~2 ?3)` Staged/Unstaged/Untracked
256
- - Text: `~` Branch `#` SHA `T` Tag `S` Stash `=` Clean `*` Dirty `!` Conflicts `^3` Ahead `v2` Behind `(+1 ~2 ?3)` Staged/Unstaged/Untracked
253
+ - Unicode: `⎇` Branch &#8226; `♯` SHA &#8226; `⌂` Tag &#8226; `⧇` Stash &#8226; `✓` Clean &#8226; `●` Dirty &#8226; `⚠` Conflicts &#8226; `↑3` Ahead &#8226; `↓2` Behind &#8226; `(+1 ~2 ?3)` Staged/Unstaged/Untracked
254
+ - Text: `~` Branch &#8226; `#` SHA &#8226; `T` Tag &#8226; `S` Stash &#8226; `=` Clean &#8226; `*` Dirty &#8226; `!` Conflicts &#8226; `^3` Ahead &#8226; `v2` Behind &#8226; `(+1 ~2 ?3)` Staged/Unstaged/Untracked
257
255
 
258
256
  </details>
259
257
 
260
258
  <details>
261
- <summary><strong>Metrics</strong> - Shows performance analytics from your Claude sessions</summary>
259
+ <summary><strong>Model</strong> - Shows current Claude model being used</summary>
262
260
 
263
261
  ```json
264
- "metrics": {
262
+ "model": {
263
+ "enabled": true
264
+ }
265
+ ```
266
+
267
+ **Symbols:** `✱` Model (unicode) &#8226; `M` Model (text)
268
+
269
+ </details>
270
+
271
+ <details>
272
+ <summary><strong>Session</strong> - Shows real-time usage for current Claude conversation</summary>
273
+
274
+ ```json
275
+ "session": {
265
276
  "enabled": true,
266
- "showResponseTime": true,
267
- "showLastResponseTime": false,
268
- "showDuration": true,
269
- "showMessageCount": true,
270
- "showLinesAdded": true,
271
- "showLinesRemoved": true
277
+ "type": "tokens",
278
+ "costSource": "calculated"
272
279
  }
273
280
  ```
274
281
 
275
282
  **Options:**
276
283
 
277
- - `showResponseTime`: Total API duration across all requests
278
- - `showLastResponseTime`: Individual response time for most recent query
279
- - `showDuration`: Total session duration
280
- - `showMessageCount`: Number of user messages sent
281
- - `showLinesAdded`: Lines of code added during session
282
- - `showLinesRemoved`: Lines of code removed during session
283
-
284
- **Symbols:**
284
+ - `type`: Display format - `cost` | `tokens` | `both` | `breakdown`
285
+ - `costSource`: Cost calculation method - `calculated` (ccusage-style) | `official` (hook data)
285
286
 
286
- - Unicode: `⧖` Total API time • `Δ` Last response • `⧗` Session duration • `⟐` Messages • `+` Lines added • `-` Lines removed
287
- - Text: `R` Total API time • `L` Last response • `T` Session duration • `#` Messages • `+` Lines added • `-` Lines removed
287
+ **Symbols:** `§` Session (unicode) &#8226; `S` Session (text)
288
288
 
289
289
  </details>
290
290
 
291
291
  <details>
292
- <summary><strong>Model</strong> - Shows current Claude model being used</summary>
292
+ <summary><strong>Today</strong> - Shows total daily usage with budget monitoring</summary>
293
293
 
294
294
  ```json
295
- "model": {
296
- "enabled": true
295
+ "today": {
296
+ "enabled": true,
297
+ "type": "cost"
297
298
  }
298
299
  ```
299
300
 
300
- **Symbols:** `✱` Model (unicode) • `M` Model (text)
301
+ **Options:**
302
+
303
+ - `type`: Display format - `cost` | `tokens` | `both` | `breakdown`
304
+
305
+ **Symbols:** `☉` Today (unicode) &#8226; `D` Today (text)
301
306
 
302
307
  </details>
303
308
 
@@ -324,7 +329,7 @@ Config files reload automatically and no restart needed.
324
329
 
325
330
  | Style | Filled | Empty | Example |
326
331
  |-------|--------|-------|---------|
327
- | `text` | | | `◔ 34,040 (79%)` |
332
+ | `text` | -- | -- | `◔ 34,040 (79%)` |
328
333
  | `ball` | ─ | ─ | `─────●──── 50%` |
329
334
  | `bar` | ▓ | ░ | `▓▓▓▓▓░░░░░ 50%` |
330
335
  | `blocks` | █ | ░ | `█████░░░░░ 50%` |
@@ -336,9 +341,9 @@ Config files reload automatically and no restart needed.
336
341
  | `line` | ━ | ┄ | `━━━━━┄┄┄┄┄ 50%` |
337
342
  | `squares` | ◼ | ◻ | `◼◼◼◼◼◻◻◻◻◻ 50%` |
338
343
 
339
- **Symbols:** `◔` Context (unicode) `C` Context (text)
344
+ **Symbols:** `◔` Context (unicode) &#8226; `C` Context (text)
340
345
 
341
- ##### Model Context Limits
346
+ #### Model Context Limits
342
347
 
343
348
  Configure context window limits for different model types. Defaults to 200K tokens for all models.
344
349
 
@@ -359,74 +364,6 @@ Configure context window limits for different model types. Defaults to 200K toke
359
364
 
360
365
  </details>
361
366
 
362
- <details>
363
- <summary><strong>Tmux</strong> - Shows tmux session name and window info when in tmux</summary>
364
-
365
- ```json
366
- "tmux": {
367
- "enabled": true
368
- }
369
- ```
370
-
371
- **Display:** `tmux:session-name`
372
-
373
- </details>
374
-
375
- <details>
376
- <summary><strong>Session ID</strong> - Shows the current Claude session identifier</summary>
377
-
378
- ```json
379
- "sessionId": {
380
- "enabled": false,
381
- "showIdLabel": true
382
- }
383
- ```
384
-
385
- **Options:**
386
-
387
- - `showIdLabel`: Show the `⌗` icon prefix before the session ID (default: `true`)
388
-
389
- **Display:** `⌗ a1b2c3d4-...`
390
-
391
- **Symbols:** `⌗` Session ID (unicode) • `#` Session ID (text)
392
-
393
- </details>
394
-
395
- <details>
396
- <summary><strong>Version</strong> - Shows Claude Code version</summary>
397
-
398
- ```json
399
- "version": {
400
- "enabled": true
401
- }
402
- ```
403
-
404
- **Display:** `v1.0.81`
405
-
406
- **Symbols:** `◈` Version (unicode) • `V` Version (text)
407
-
408
- </details>
409
-
410
- <details>
411
- <summary><strong>Session</strong> - Shows real-time usage for current Claude conversation</summary>
412
-
413
- ```json
414
- "session": {
415
- "enabled": true,
416
- "type": "tokens",
417
- "costSource": "calculated"
418
- }
419
- ```
420
-
421
- **Options:**
422
-
423
- - `type`: Display format - `cost` | `tokens` | `both` | `breakdown`
424
- - `costSource`: Cost calculation method - `calculated` (ccusage-style) | `official` (hook data)
425
-
426
- **Symbols:** `§` Session (unicode) • `S` Session (text)
427
-
428
- </details>
429
-
430
367
  <details>
431
368
  <summary><strong>Block</strong> - Shows usage within current 5-hour billing window (Claude's rate limit period)</summary>
432
369
 
@@ -465,7 +402,7 @@ Configure context window limits for different model types. Defaults to 200K toke
465
402
 
466
403
  **Weighted Tokens:** In transcript mode, Opus tokens count 5x toward rate limits compared to Sonnet/Haiku tokens
467
404
 
468
- **Symbols:** `◱` Block (unicode) `B` Block (text)
405
+ **Symbols:** `◱` Block (unicode) &#8226; `B` Block (text)
469
406
 
470
407
  </details>
471
408
 
@@ -485,25 +422,86 @@ Configure context window limits for different model types. Defaults to 200K toke
485
422
 
486
423
  Only visible when Claude Code provides native `rate_limits.seven_day` data (Claude.ai Pro/Max subscribers). Hidden when the data is not available.
487
424
 
488
- **Symbols:** `◑` Weekly (unicode) `W` Weekly (text)
425
+ **Symbols:** `◑` Weekly (unicode) &#8226; `W` Weekly (text)
489
426
 
490
427
  </details>
491
428
 
492
429
  <details>
493
- <summary><strong>Today</strong> - Shows total daily usage with budget monitoring</summary>
430
+ <summary><strong>Metrics</strong> - Shows performance analytics from your Claude sessions</summary>
494
431
 
495
432
  ```json
496
- "today": {
433
+ "metrics": {
497
434
  "enabled": true,
498
- "type": "cost"
435
+ "showResponseTime": true,
436
+ "showLastResponseTime": false,
437
+ "showDuration": true,
438
+ "showMessageCount": true,
439
+ "showLinesAdded": true,
440
+ "showLinesRemoved": true
499
441
  }
500
442
  ```
501
443
 
502
444
  **Options:**
503
445
 
504
- - `type`: Display format - `cost` | `tokens` | `both` | `breakdown`
446
+ - `showResponseTime`: Total API duration across all requests
447
+ - `showLastResponseTime`: Individual response time for most recent query
448
+ - `showDuration`: Total session duration
449
+ - `showMessageCount`: Number of user messages sent
450
+ - `showLinesAdded`: Lines of code added during session
451
+ - `showLinesRemoved`: Lines of code removed during session
452
+
453
+ **Symbols:**
454
+
455
+ - Unicode: `⧖` Total API time &#8226; `Δ` Last response &#8226; `⧗` Session duration &#8226; `⟐` Messages &#8226; `+` Lines added &#8226; `-` Lines removed
456
+ - Text: `R` Total API time &#8226; `L` Last response &#8226; `T` Session duration &#8226; `#` Messages &#8226; `+` Lines added &#8226; `-` Lines removed
457
+
458
+ </details>
459
+
460
+ <details>
461
+ <summary><strong>Version</strong> - Shows Claude Code version</summary>
462
+
463
+ ```json
464
+ "version": {
465
+ "enabled": true
466
+ }
467
+ ```
505
468
 
506
- **Symbols:** `☉` Today (unicode) • `D` Today (text)
469
+ **Display:** `v1.0.81`
470
+
471
+ **Symbols:** `◈` Version (unicode) &#8226; `V` Version (text)
472
+
473
+ </details>
474
+
475
+ <details>
476
+ <summary><strong>Tmux</strong> - Shows tmux session name and window info when in tmux</summary>
477
+
478
+ ```json
479
+ "tmux": {
480
+ "enabled": true
481
+ }
482
+ ```
483
+
484
+ **Display:** `tmux:session-name`
485
+
486
+ </details>
487
+
488
+ <details>
489
+ <summary><strong>Session ID</strong> - Shows the current Claude session identifier</summary>
490
+
491
+ ```json
492
+ "sessionId": {
493
+ "enabled": false,
494
+ "showIdLabel": true
495
+ }
496
+ ```
497
+
498
+ **Options:**
499
+
500
+ - `showIdLabel`: Show the `⌗` icon prefix before the session ID (default: `true`)
501
+
502
+ **Display:** `⌗ a1b2c3d4-...`
503
+
504
+ **Symbols:** `⌗` Session ID (unicode) &#8226; `#` Session ID (text)
507
505
 
508
506
  </details>
509
507
 
@@ -525,11 +523,14 @@ Only visible when Claude Code provides native `rate_limits.seven_day` data (Clau
525
523
 
526
524
  Hidden when the variable is unset or empty.
527
525
 
528
- **Symbols:** `⚙` Env (unicode) `$` Env (text)
526
+ **Symbols:** `⚙` Env (unicode) &#8226; `$` Env (text)
529
527
 
530
528
  </details>
531
529
 
532
- ### Budget Configuration
530
+ ### Advanced Configuration
531
+
532
+ <details>
533
+ <summary><strong>Budget Configuration</strong></summary>
533
534
 
534
535
  ```json
535
536
  "budget": {
@@ -545,12 +546,15 @@ Hidden when the variable is unset or empty.
545
546
  - `type`: Budget type - `cost` (USD) | `tokens` (for token-based limits)
546
547
  - `warningThreshold`: Warning threshold percentage (default: 80)
547
548
 
548
- **Indicators:** `25%` Normal `+75%` Moderate (50-79%) `!85%` Warning (80%+)
549
+ **Indicators:** `25%` Normal &#8226; `+75%` Moderate (50-79%) &#8226; `!85%` Warning (80%+)
549
550
 
550
551
  > [!TIP]
551
552
  > Claude's rate limits consider multiple factors beyond tokens (message count, length, attachments, model). See [Anthropic's usage documentation](https://support.anthropic.com/en/articles/11014257-about-claude-s-max-plan-usage) for details.
552
553
 
553
- ### Character Sets
554
+ </details>
555
+
556
+ <details>
557
+ <summary><strong>Character Sets</strong></summary>
554
558
 
555
559
  Choose between Unicode symbols (requires Nerd Font) or ASCII text mode for maximum compatibility.
556
560
 
@@ -564,27 +568,22 @@ Choose between Unicode symbols (requires Nerd Font) or ASCII text mode for maxim
564
568
 
565
569
  **Options:**
566
570
 
567
- - `unicode` (default) - Uses Nerd Font icons and symbols (⎇, ✱, ●, ↑, ↓, etc.)
568
- - `text` - ASCII-only characters (~, M, *, ^, v, etc.) for terminals without Nerd Font
569
-
570
- **Combinations with styles:**
571
+ - `unicode` (default) - Uses Nerd Font icons and symbols
572
+ - `text` - ASCII-only characters for terminals without Nerd Font
571
573
 
572
574
  The charset setting works independently from separator styles, giving you 8 possible combinations:
575
+
573
576
  - `minimal` + `unicode` / `text` - No separators
574
577
  - `powerline` + `unicode` / `text` - Arrow separators (requires Nerd Font for unicode)
575
578
  - `capsule` + `unicode` / `text` - Rounded caps (requires Nerd Font for unicode)
576
579
  - `tui` + `unicode` / `text` - Bordered panel with rounded or ASCII box characters
577
580
 
578
- **CLI Usage:**
579
-
580
- ```bash
581
- claude-powerline --charset=text --style=minimal
582
- claude-powerline --charset=unicode --style=powerline
583
- ```
581
+ </details>
584
582
 
585
- ### Auto-Wrap
583
+ <details>
584
+ <summary><strong>Layout: Auto-Wrap, Multi-line, and Padding</strong></summary>
586
585
 
587
- Automatically wrap segments to new lines based on terminal width.
586
+ **Auto-Wrap** (enabled by default):
588
587
 
589
588
  ```json
590
589
  {
@@ -594,11 +593,9 @@ Automatically wrap segments to new lines based on terminal width.
594
593
  }
595
594
  ```
596
595
 
597
- Segments flow naturally and wrap to new lines when they exceed the terminal width. The layout adjusts automatically when the terminal is resized. Enabled by default.
596
+ Segments flow naturally and wrap to new lines when they exceed the terminal width.
598
597
 
599
- ### Multi-line Layout
600
-
601
- Alternatively, manually organize segments across multiple lines.
598
+ **Multi-line Layout** for manual control:
602
599
 
603
600
  ```json
604
601
  {
@@ -623,12 +620,7 @@ Alternatively, manually organize segments across multiple lines.
623
620
  }
624
621
  ```
625
622
 
626
- > [!NOTE]
627
- > Claude Code system messages may truncate long status lines. Use `autoWrap` or manual multi-line layouts to prevent segment cutoff.
628
-
629
- ### Padding
630
-
631
- Control the spacing inside each segment.
623
+ **Padding** - number of spaces on each side of segment text:
632
624
 
633
625
  ```json
634
626
  {
@@ -638,9 +630,15 @@ Control the spacing inside each segment.
638
630
  }
639
631
  ```
640
632
 
641
- The value is the number of spaces on each side of the text. Set to `0` for a compact look, `1` (default) for standard spacing, or higher for more breathing room.
633
+ Set to `0` for compact, `1` (default) for standard spacing.
642
634
 
643
- ### Colors & Themes
635
+ > [!NOTE]
636
+ > Claude Code system messages may truncate long status lines. Use `autoWrap` or manual multi-line layouts to prevent segment cutoff.
637
+
638
+ </details>
639
+
640
+ <details>
641
+ <summary><strong>Colors and Custom Themes</strong></summary>
644
642
 
645
643
  Create custom themes and configure color compatibility:
646
644
 
@@ -660,7 +658,7 @@ Create custom themes and configure color compatibility:
660
658
  }
661
659
  ```
662
660
 
663
- **Color Options:** `bg` (hex, `transparent`, `none`) `fg` (hex)
661
+ **Color Options:** `bg` (hex, `transparent`, `none`) &#8226; `fg` (hex)
664
662
 
665
663
  **Compatibility Modes:** `auto` (default), `ansi`, `ansi256`, `truecolor`
666
664
 
@@ -677,16 +675,39 @@ Create custom themes and configure color compatibility:
677
675
 
678
676
  **Priority:** `FORCE_COLOR` overrides `NO_COLOR` (allowing color to be forced on even when NO_COLOR is set)
679
677
 
680
- ## Performance
678
+ </details>
679
+
680
+ <details>
681
+ <summary><strong>TUI Panel Mode</strong></summary>
682
+
683
+ ```json
684
+ {
685
+ "statusLine": {
686
+ "type": "command",
687
+ "command": "npx -y @owloops/claude-powerline@latest --style=tui"
688
+ }
689
+ }
690
+ ```
691
+
692
+ The panel adapts to terminal width across three breakpoints:
693
+
694
+ - **Wide** (80+ cols): metrics on one line, workspace and footer spread across columns
695
+ - **Medium** (55-79 cols): metrics split across two lines, stacked footer
696
+ - **Narrow** (<55 cols): fully stacked layout
697
+
698
+ > [!NOTE]
699
+ > Claude Code's internal progress indicators (spinner, context bar) may briefly overlap the TUI panel during tool calls. This is a limitation of the hook architecture and resolves once the tool call completes.
700
+
701
+ </details>
702
+
703
+ <details>
704
+ <summary><strong>Performance</strong></summary>
681
705
 
682
706
  Execution times for different configurations:
683
707
 
684
708
  - **~80ms** default config (`directory`, `git`, `model`, `session`, `today`, `context`)
685
709
  - **~240ms** full-featured (all segments enabled)
686
710
 
687
- <details>
688
- <summary><strong>Detailed Segment Timings</strong></summary>
689
-
690
711
  | Segment | Timing | Notes |
691
712
  | ----------- | ------ | ------------------------------------------ |
692
713
  | `directory` | ~40ms | No external commands |
@@ -702,15 +723,16 @@ Execution times for different configurations:
702
723
 
703
724
  **Benchmark:** `npm run benchmark:timing`
704
725
 
705
- </details>
706
-
707
- ### Optimization Tips
726
+ **Optimization Tips:**
708
727
 
709
728
  - **Global install:** `npm install -g` to avoid npx overhead
710
729
  - **Disable unused segments** for faster execution
711
730
  - **Cache cleanup:** Remove `~/.claude/powerline/` if needed
712
731
 
713
- ## Custom Segments
732
+ </details>
733
+
734
+ <details>
735
+ <summary><strong>Custom Segments (Shell Composition)</strong></summary>
714
736
 
715
737
  Extend the statusline using shell composition:
716
738
 
@@ -724,9 +746,13 @@ Extend the statusline using shell composition:
724
746
  }
725
747
  ```
726
748
 
727
- > [!NOTE]
749
+ > [!NOTE]
728
750
  > Use `tput` for colors: `setab <bg>` (background), `setaf <fg>` (foreground), `sgr0` (reset). Example: `echo "$(tput setab 4)$(tput setaf 15) text $(tput sgr0)"`. For complex logic, create a shell script with multiple commands, conditions, and variables.
729
751
 
752
+ </details>
753
+
754
+ </details>
755
+
730
756
  ## Contributing
731
757
 
732
758
  Contributions are welcome! Please feel free to submit issues or pull requests.