shellkit
A plain zsh / bash setup for Linux and macOS, with an async, themeable prompt that never makes you wait for the network.
- Linux
- macOS
- no framework
- public domain

Every fact on one line
Local facts show up right away. The merge request and its CI come from the network: the prompt redraws in place when they land, no Enter needed.
/home/dev/shop · SHOP-482_checkout · ⇡1 ✎ 2 +15 −4 · ↻!482 ✓✱ 1 agent · 5h 23% 7d 41%
$ git push
- ~35 mszsh startup
- < 50 msprompt, even on a huge repo
- 0frameworks: plain zsh
Shell out, crab in
Everything a busy shell needs, nothing it doesn't. Each block stays quiet until it has something to say.

Async prompt
git fetch, the MR / PR and its CI, unhealthy containers: fetched in the background, drawn when they arrive.
Git at a glance
Branch, worktree, ahead / behind, a diff stat, a rebase in progress, the branch's ticket and its review.

Themes & blocks
A format string like
'{dir} · {git}', color roles, icon variables, blocks as small zsh functions.
Plugins
Blocks and themes shared as git repositories, checked against a schema. Nothing runs until you say yes.
And a few more tricks
- shkit: one command to change settings, create project files, manage plugins and run
shkit doctor. Changes apply at once. - Long commands notify you: a desktop notification when one ends after 30 s.
- Shell comforts: jump to a visited directory by name, Esc Esc toggles
sudo, shared unlimited history, coloredman. - Self-updating: daily, from releases that passed CI only. Local changes are never touched.
- Bash fallback: the same options and aliases, with a deliberately minimal prompt.
- Secrets stay out: tokens and machine settings live in
~/.config/shkit/, never in the repository.
Quick start
Clone and install
Links
~/.zshrcand~/.zshenv, creates~/.config/shkit.$ git clone https://github.com/fmatsos/shellkit.git ~/shellkit $ ~/shellkit/zsh/install.sh $ exec zsh
Shape the prompt
No shell file to edit by hand.
$ shkit set format '{dir} · {git} · {mr}' # the info line $ shkit set color_accent '38;5;33' # a color role $ shkit project # this repository only… $ shkit set -p format '{dir} · {git}' # …here and below $ shkit show # what is set, where
Check everything
Versions, locale, font, tools and files.
$ shkit doctor
Needs zsh 5.8+ (bash 5.1+ for the fallback), git and jq; a Nerd Font for the icons. See every requirement.
Dig deeper
- Installationrequirements, Linux and macOS, bash fallback, updating
- Usagewhat the shells do for you day to day
- Configurationwhere each setting lives and which one wins
shkitreferencethe command that edits all of it- The promptbuilt-in blocks, format, colors, icons, behaviour
- Writing a themeA theme is a set of SHKIT_* assignments: layout, colors, icons
- Writing a blockA block is a zsh function, _prompt_seg_<name>, shown wherever a format has {name}.
- Pluginsinstalling, writing and publishing blocks and themes
- Developmentworking on shellkit itself
shellkit



