mirror of
https://github.com/Andre-Bzk/claude-statusline-kit.git
synced 2026-11-15 09:33:04 +01:00
The color logic lives in two files (context bar in cship.toml, the usage bars in the wrapper), so the behavior was not discoverable from either one alone. A single reference table records the thresholds and where to edit each, so future changes keep the two color sources in sync.
190 lines
8.2 KiB
Markdown
190 lines
8.2 KiB
Markdown
[English](#english) | [Deutsch](#deutsch)
|
||
|
||
---
|
||
|
||
## English
|
||
|
||
# Claude Code Statusline Kit
|
||
|
||
A portable, self-contained kit that installs a custom Claude Code statusline
|
||
(built on the [`cship`](https://cship.dev) Starship fork) onto any Windows PC
|
||
with a single command.
|
||
|
||
### What it installs
|
||
|
||
| Asset | Target location | Purpose |
|
||
| ----------------------------- | -------------------------- | ----------------------------------------- |
|
||
| `assets/cship.exe` | `~/.local/bin/` | Renders the statusline |
|
||
| `assets/cship.toml` | `~/.config/` | Module config (colors, icons, bars) |
|
||
| `assets/cship-statusline.ps1` | `~/.claude/` | Wrapper (progress bars, token formatting) |
|
||
| `statusLine` block | `~/.claude/settings.json` | Wires everything into Claude Code |
|
||
|
||
### Requirements
|
||
|
||
- **PowerShell 7** (`pwsh`). Install: `winget install --id Microsoft.PowerShell -e`
|
||
- An **emoji-capable terminal font** so `🤖 ⚡ 🧠 █░` render. **No Nerd Font
|
||
required** — the statusline deliberately uses only standard Unicode (emoji +
|
||
block-drawing chars), never Nerd-Font private-use glyphs. Windows Terminal
|
||
renders them via `Segoe UI Emoji` out of the box. As a safety net the
|
||
installer nevertheless installs a Nerd Font (Hack, ~17 MB) **per-user, no
|
||
admin rights** if none is present — see below.
|
||
|
||
### Progress bars & color thresholds
|
||
|
||
The statusline has three progress bars. Each fills from 0–100 % and switches
|
||
color at fixed thresholds:
|
||
|
||
| Bar | Measures | 🔵 blue | 🟡 yellow | 🔴 bold red |
|
||
| ------------ | --------------------------- | -------- | --------- | ----------- |
|
||
| 🧠 Context | context window filled | `< 20 %` | `≥ 20 %` | `≥ 40 %` |
|
||
| ⏳ 5h | 5-hour usage limit used | `< 40 %` | `≥ 40 %` | `≥ 70 %` |
|
||
| 📅 7d | 7-day usage limit used | `< 40 %` | `≥ 40 %` | `≥ 70 %` |
|
||
|
||
Thresholds are **percentages**, so they stay model-independent. On a 1M-token
|
||
context window the 🧠 bar therefore turns yellow at **200k** tokens and red at
|
||
**400k**. Colors: blue `#7dcfff`, yellow, bold red.
|
||
|
||
Where to change them:
|
||
|
||
- **🧠 Context** — `warn_threshold` / `critical_threshold` in
|
||
`[cship.context_bar]` (`assets/cship.toml`).
|
||
- **⏳ 5h / 📅 7d** — the color block in `assets/cship-statusline.ps1`; both
|
||
bars share it, so keep the two thresholds in sync.
|
||
|
||
### Install on a new PC
|
||
|
||
```powershell
|
||
git clone <your-repo-url> Claude_Statusline
|
||
cd Claude_Statusline
|
||
.\install.ps1
|
||
```
|
||
|
||
Then restart Claude Code (or start a new session).
|
||
|
||
The installer is **idempotent** — run it again anytime. It auto-detects the
|
||
`pwsh` path on the target machine and merges the `statusLine` block into an
|
||
existing `settings.json` **without** overwriting your other settings (a
|
||
`.bak` backup is written first).
|
||
|
||
### Nerd Font (automatic, no admin)
|
||
|
||
If no Nerd Font is detected, the installer downloads one from
|
||
[ryanoasis/nerd-fonts](https://github.com/ryanoasis/nerd-fonts) and installs it
|
||
into the **per-user** font store (`%LOCALAPPDATA%\Microsoft\Windows\Fonts` +
|
||
`HKCU`), so **no administrator rights** are needed. If a download fails (e.g. no
|
||
internet), the step is skipped and the statusline still works via the emoji
|
||
fallback. To actually *use* the font, set it as your terminal font and restart
|
||
the terminal — the statusline renders correctly either way.
|
||
|
||
### Options
|
||
|
||
- `.\install.ps1 -Force` — also overwrite an existing `~/.config/cship.toml`
|
||
(by default an existing config is kept, so local tweaks survive).
|
||
- `.\install.ps1 -SkipFont` — skip the Nerd-Font check/install entirely.
|
||
- `.\install.ps1 -FontName FiraCode` — install a different Nerd Font
|
||
(default `Hack`; e.g. `FiraCode`, `CascadiaCode`, `JetBrainsMono`).
|
||
|
||
### Updating the kit
|
||
|
||
Edit the files under `assets/`, commit, `git push`. On another PC:
|
||
|
||
```powershell
|
||
git pull
|
||
.\install.ps1 -Force
|
||
```
|
||
|
||
---
|
||
|
||
## Deutsch
|
||
|
||
# Claude Code Statusline Kit
|
||
|
||
Ein portables, in sich geschlossenes Kit, das eine individuelle Claude-Code-
|
||
Statusline (basierend auf dem Starship-Fork [`cship`](https://cship.dev)) mit
|
||
einem einzigen Befehl auf jeden Windows-PC installiert.
|
||
|
||
### Was installiert wird
|
||
|
||
| Asset | Zielort | Zweck |
|
||
| ----------------------------- | -------------------------- | ---------------------------------------- |
|
||
| `assets/cship.exe` | `~/.local/bin/` | Rendert die Statusline |
|
||
| `assets/cship.toml` | `~/.config/` | Modul-Konfiguration (Farben, Icons, Bars)|
|
||
| `assets/cship-statusline.ps1` | `~/.claude/` | Wrapper (Progress-Bars, Token-Format) |
|
||
| `statusLine`-Block | `~/.claude/settings.json` | Verdrahtet alles in Claude Code |
|
||
|
||
### Voraussetzungen
|
||
|
||
- **PowerShell 7** (`pwsh`). Installation: `winget install --id Microsoft.PowerShell -e`
|
||
- Ein **emoji-fähiger Terminal-Font**, damit `🤖 ⚡ 🧠 █░` dargestellt werden.
|
||
**Kein Nerd-Font nötig** — die Statusline nutzt bewusst nur Standard-Unicode
|
||
(Emoji + Block-Zeichen), keine Nerd-Font-Privatzeichen. Windows Terminal
|
||
rendert sie standardmäßig über `Segoe UI Emoji`. Als Sicherheitsnetz
|
||
installiert der Installer dennoch einen Nerd-Font (Hack, ~17 MB) **per-user,
|
||
ohne Admin-Rechte**, falls keiner vorhanden ist — siehe unten.
|
||
|
||
### Progress-Bars & Farbschwellen
|
||
|
||
Die Statusline hat drei Progress-Bars. Jeder füllt sich von 0–100 % und wechselt
|
||
an festen Schwellen die Farbe:
|
||
|
||
| Bar | Misst | 🔵 blau | 🟡 gelb | 🔴 fett rot |
|
||
| ------------ | ------------------------------ | -------- | -------- | ----------- |
|
||
| 🧠 Kontext | Kontextfenster gefüllt | `< 20 %` | `≥ 20 %` | `≥ 40 %` |
|
||
| ⏳ 5h | 5-Stunden-Limit ausgelastet | `< 40 %` | `≥ 40 %` | `≥ 70 %` |
|
||
| 📅 7d | 7-Tage-Limit ausgelastet | `< 40 %` | `≥ 40 %` | `≥ 70 %` |
|
||
|
||
Die Schwellen sind **Prozentwerte** und damit model-unabhängig. Bei einem
|
||
Kontextfenster von 1M Tokens wird der 🧠-Bar deshalb bei **200k** Tokens gelb
|
||
und bei **400k** rot. Farben: blau `#7dcfff`, gelb, fett rot.
|
||
|
||
Wo man sie ändert:
|
||
|
||
- **🧠 Kontext** — `warn_threshold` / `critical_threshold` in
|
||
`[cship.context_bar]` (`assets/cship.toml`).
|
||
- **⏳ 5h / 📅 7d** — der Farbblock in `assets/cship-statusline.ps1`; beide Bars
|
||
teilen ihn sich, also beide Schwellen synchron halten.
|
||
|
||
### Installation auf einem neuen PC
|
||
|
||
```powershell
|
||
git clone <deine-repo-url> Claude_Statusline
|
||
cd Claude_Statusline
|
||
.\install.ps1
|
||
```
|
||
|
||
Danach Claude Code neu starten (oder eine neue Session öffnen).
|
||
|
||
Der Installer ist **idempotent** — jederzeit erneut ausführbar. Er erkennt den
|
||
`pwsh`-Pfad auf dem Zielrechner automatisch und fügt den `statusLine`-Block in
|
||
eine vorhandene `settings.json` ein, **ohne** deine anderen Einstellungen zu
|
||
überschreiben (vorher wird ein `.bak`-Backup geschrieben).
|
||
|
||
### Nerd-Font (automatisch, ohne Admin)
|
||
|
||
Wird kein Nerd-Font erkannt, lädt der Installer einen von
|
||
[ryanoasis/nerd-fonts](https://github.com/ryanoasis/nerd-fonts) und installiert
|
||
ihn in den **benutzereigenen** Font-Speicher (`%LOCALAPPDATA%\Microsoft\Windows\Fonts`
|
||
+ `HKCU`) — **ohne Administrator-Rechte**. Schlägt der Download fehl (z. B. kein
|
||
Internet), wird der Schritt übersprungen und die Statusline funktioniert dank
|
||
Emoji-Fallback trotzdem. Um den Font tatsächlich zu *nutzen*, ihn als
|
||
Terminal-Font einstellen und das Terminal neu starten — die Statusline wird so
|
||
oder so korrekt dargestellt.
|
||
|
||
### Optionen
|
||
|
||
- `.\install.ps1 -Force` — überschreibt zusätzlich eine vorhandene
|
||
`~/.config/cship.toml` (standardmäßig wird eine bestehende Config behalten,
|
||
damit lokale Anpassungen erhalten bleiben).
|
||
- `.\install.ps1 -SkipFont` — überspringt die Nerd-Font-Prüfung/-Installation.
|
||
- `.\install.ps1 -FontName FiraCode` — installiert einen anderen Nerd-Font
|
||
(Standard `Hack`; z. B. `FiraCode`, `CascadiaCode`, `JetBrainsMono`).
|
||
|
||
### Kit aktualisieren
|
||
|
||
Dateien unter `assets/` bearbeiten, committen, `git push`. Auf einem anderen PC:
|
||
|
||
```powershell
|
||
git pull
|
||
.\install.ps1 -Force
|
||
```
|