Update the README to match the installer's new behavior: it detects the available PowerShell host (prefers pwsh 7, falls back to Windows PowerShell 5.1) instead of writing a broken pwsh path when PS7 is absent, and runs a self-test to confirm the statusline renders. Removes the now-inaccurate claim that PowerShell 7 must be installed first. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C4QKwZ7bC7oCMVtnuJdDKm
English
Claude Code Statusline Kit
A portable, self-contained kit that installs a custom Claude Code statusline
(built on the cship 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 viaSegoe UI Emojiout 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_thresholdin[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
git clone https://github.com/Andre-Bzk/claude-statusline-kit claude-statusline-kit
cd claude-statusline-kit
powershell -ExecutionPolicy Bypass -File .\install.ps1
Then restart Claude Code (or start a new session).
Why
powershelland notpwsh? The installer runs under the built-in Windows PowerShell 5.1 (powershell.exe), which ships with every Windows — so bootstrapping works even before PowerShell 7 is installed. (pwshwould fail with "pwsh is not recognized" on a fresh PC.) To wire the statusline runtime intosettings.jsonthe installer detects the available host: it preferspwsh(PowerShell 7, sharper glyphs) and falls back to Windows PowerShell 5.1 when PS7 isn't present — so the statusline works out of the box either way. Installing PowerShell 7 (see Requirements) is recommended but optional. A built-in self-test then confirms the statusline actually renders.Why
-ExecutionPolicy Bypass? On a fresh Windows PC the per-user execution policy isRestricted, so a bare.\install.ps1fails with "... cannot be loaded because running scripts is disabled on this system." Passing-ExecutionPolicy Bypass -Fileruns the installer for this one invocation only — it changes no persistent machine or user setting. Extra options work the same way, e.g.powershell -ExecutionPolicy Bypass -File .\install.ps1 -Force.Prefer to unblock scripts once and for all? Run
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned(no admin needed), then.\install.ps1works directly.
The installer is idempotent — run it again anytime. It auto-detects the
PowerShell host on the target machine (pwsh 7, else Windows PowerShell 5.1) 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 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 (defaultHack; e.g.FiraCode,CascadiaCode,JetBrainsMono).
Updating the kit
Edit the files under assets/, commit, git push. On another PC:
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) 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 überSegoe 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_thresholdin[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
git clone https://github.com/Andre-Bzk/claude-statusline-kit claude-statusline-kit
cd claude-statusline-kit
powershell -ExecutionPolicy Bypass -File .\install.ps1
Danach Claude Code neu starten (oder eine neue Session öffnen).
Warum
powershellund nichtpwsh? Der Installer läuft unter dem mitgelieferten Windows PowerShell 5.1 (powershell.exe), das auf jedem Windows vorhanden ist — so klappt das Bootstrapping schon, bevor PowerShell 7 installiert ist. (pwshwürde auf einem frischen PC mit „pwsh wurde nicht erkannt" fehlschlagen.) Um den Statusline-Runtime in diesettings.jsoneinzutragen, erkennt der Installer den vorhandenen Host: Er bevorzugtpwsh(PowerShell 7, schärfere Glyphen) und fällt auf Windows PowerShell 5.1 zurück, falls PS7 fehlt — die Statusline funktioniert also so oder so out of the box. PowerShell 7 zu installieren (siehe Voraussetzungen) ist empfohlen, aber optional. Ein integrierter Selbsttest bestätigt anschließend, dass die Statusline tatsächlich gerendert wird.Warum
-ExecutionPolicy Bypass? Auf einem frischen Windows-PC steht die Execution Policy für den Benutzer aufRestricted, deshalb bricht ein bloßes.\install.ps1mit „... cannot be loaded because running scripts is disabled on this system." ab.-ExecutionPolicy Bypass -Fileführt den Installer nur für diesen einen Aufruf aus — es ändert keine dauerhafte System- oder Benutzereinstellung. Zusätzliche Optionen funktionieren genauso, z. B.powershell -ExecutionPolicy Bypass -File .\install.ps1 -Force.Skripte lieber dauerhaft freischalten? Einmalig
Set-ExecutionPolicy -Scope CurrentUser RemoteSignedausführen (keine Admin-Rechte nötig), danach klappt.\install.ps1direkt.
Der Installer ist idempotent — jederzeit erneut ausführbar. Er erkennt den
PowerShell-Host auf dem Zielrechner automatisch (pwsh 7, sonst Windows
PowerShell 5.1) 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 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 (StandardHack; z. B.FiraCode,CascadiaCode,JetBrainsMono).
Kit aktualisieren
Dateien unter assets/ bearbeiten, committen, git push. Auf einem anderen PC:
git pull
.\install.ps1 -Force
