v0.9.3 · released 2026-04-02

A small, fast status bar
for your terminal.

statline renders a composable, themeable status bar for your shell prompt, tmux, neovim or any script that reads stdout. Zero runtime deps, single static binary, sub-millisecond redraw.

$ curl -fsSL statline.sh/install | sh

Why statline

A few things it does well, and a few things it deliberately doesn't.

Fast by default

Sub-millisecond redraw on a cold cache. Bounded render time even with expensive segments (git, kube, AWS) via per-segment timeouts and async refresh.

Composable segments

Build your bar from small, declarative segments: git, k8s, py, rust, node, aws, battery, time. Writing a new one is a 20-line function.

Truly cross-shell

First-class support for bash, zsh, fish, nushell and PowerShell. Same config, same behaviour. No shell-specific forks, no prompt rewrites.

Themeable

Theme files are TOML. Ship your own palette, pick from presets (tokyonight, gruvbox, solar, ascii) or render to plain text for CI logs.

Safe by design

No arbitrary shell-out unless you ask. Explicit allowlist for external commands. Timeouts on every probe. Won't hang your prompt, ever.

Batteries included

Ships preconfigured for tmux, neovim and common shells out of the box. One line in ~/.bashrc, done.

What it looks like

A typical bar with a dev-ish segment set. Everything you see is one config file.

Shell prompt

~/src/projects/statline  main ●2 ↑1  go 1.23.4  ⎈ prod-eu  14:02:51
$ _

Minimal statline.toml

# ~/.config/statline/statline.toml
theme = "tokyonight"
separator = "  "

[[segment]]
type     = "cwd"
truncate = 3

[[segment]]
type   = "git"
format = "{branch} {dirty} {ahead}"

[[segment]]
type    = "kube"
context = "short"
ttl     = "10s"

[[segment]]
type   = "time"
format = "15:04:05"

Install

Pre-built binaries for linux, macos, windows and freebsd (amd64, arm64, armv7).

PlatformCommand
Shell installercurl -fsSL statline.sh/install | sh
Homebrewbrew install statline
Debian / Ubuntuapt install statline (see repo setup)
Archpacman -S statline
Cargocargo install statline
Gogo install go.statline.sh/cmd/statline@latest
Windowsscoop install statline

Design notes

statline prefers boring over clever. The render loop is a single pass over a []Segment, each segment fills a fixed-width buffer, the result is flushed in one write. Expensive probes (git, kube, cloud auth) run on a background goroutine behind a TTL cache; if a probe misses its timeout the bar falls back to the last known value rather than stalling your prompt.

The config is intentionally small. There is no scripting language, no hooks, no plugin system loaded at startup — everything is a segment type compiled into the binary. If you want something custom, write a 20-line segment and open a PR.

Read more in the docs or jump straight to getting started.