soffit
Customizable statusline manager for Claude Code. Desktop editor with drag-and-drop, live preview, and a plugin system for custom widgets.

Features
- 9 built-in widgets: context bar, cost, git, version, duration, vim mode, agent, quota, session
- Desktop editor: drag-and-drop widget ordering, live preview, per-widget component configuration
- Plugin system: create custom widgets as shell scripts or compiled binaries
- Auto-detection: plugins declare components via JSON output for full editor integration
- Terminal-width aware: automatic wrapping and responsive bar widths
Install
Pre-built binary (recommended)
|
From source
System dependencies (Linux, build from source only)
Supported platforms
- Linux (x86_64)
- macOS (Intel and Apple Silicon)
Setup
Add to ~/.claude/settings.json:
Usage
Configuration
Config lives at ~/.config/soffit/config.toml (falls back to ~/.config/claude-statusline/config.toml):
= ["vim", "agent", "version", "context_bar", "quota", "duration", "cost"]
= ["git", "insights"]
= []
= 300.0
= 100
[]
= false
= ["session", "today", "week"]
Custom Plugins
Drop scripts in ~/.config/soffit/plugins/:
#!/bin/bash
# ~/.config/soffit/plugins/weather.sh
INPUT=
COMPACT=
TEMP="22°C"
COND="sunny"
if [; then
else
fi
Make it executable: chmod +x ~/.config/soffit/plugins/weather.sh
Plugin input format
Plugins receive JSON on stdin:
Plugin output format
Return JSON to declare components (auto-detected in the editor):
Or return plain text:
rendered text here
Plugin metadata (optional)
Create a .toml sidecar for richer editor integration:
# ~/.config/soffit/plugins/weather.toml
= "Current weather conditions"
= ["temp", "condition"]
= true
Community Plugins
Install plugins shared on GitHub without cloning manually:
# Install all plugins from a repo
# Install a specific plugin from a repo
# Remove an installed plugin
# Overwrite an existing plugin
Installed plugins land in ~/.config/soffit/plugins/ and are immediately available.
Creating a plugin repository
Lay out your repo as a flat directory of {name}.sh + {name}.toml pairs:
my-soffit-plugins/
weather.sh
weather.toml
stocks.sh
stocks.toml
soffit looks for this layout at the repo root first, then inside a plugins/ subdirectory. Multiple plugins per repo is the norm — a single repo can host an entire collection.
The .toml sidecar is optional but recommended: it supplies the description and component list shown in soffit edit.
Editor
soffit edit opens a desktop GUI:
- Lines tab: drag-and-drop widgets across 3 statusline rows
- Widgets tab: configure built-in widgets (reorder components, toggle compact mode)
- Plugin management: create, edit, preview, rename, delete plugins
- Live preview: see your statusline update in real-time

License
MIT