SEROTONIN
inject serotonin into your shell.
shadcn/ui for your terminal
℞
curl -sL dotfiles.download/serotonin | sh
serotonin
$ serotonin init → Detects your OS and shell → Installs: starship, eza, bat, delta, fzf, zoxide, sheldon → Generates: ~/.zshrc + ~/.zshrc.d/ (7 modules) → Sets up: autosuggestions, syntax highlighting, completions → Result: 87ms startup. Beautiful prompt. Modern tools. ✦ Done. Open a new tab.
like shadcn/ui, but for your terminal
own your code
Files are copied into your dotfiles, not linked or sourced from a framework. Edit freely. No hidden magic.
zero lock-in
Delete serotonin — your config keeps working. No runtime dependency. Just plain zsh files.
composable
15 packs. Pick what you need, skip the rest. Each pack is a self-contained module you own.
why not oh-my-zsh?
| Oh-My-Zsh | Serotonin | |
|---|---|---|
| Startup | ~800ms | 87ms |
| Plugins | 300+ (most unused) | 15 packs (pick what you need) |
| Architecture | Framework (runtime dep) | Plain zsh files (no dep) |
| Plugin loading | All at startup | Lazy via zsh-defer |
| Completions | compinit every shell | Cached, rebuilds daily |
| Lock-in | Remove = shell breaks | Remove = everything works |
you own everything
~/.zshrc.d
$ tree ~/.zshrc.d/ ~/.zshrc.d/ ├── 00-options.zsh # zsh options ├── 10-history.zsh # 50K lines, dedup ├── 20-prompt.zsh # starship init ├── 30-completions.zsh # cached compinit ├── 40-plugins.zsh # sheldon + zsh-defer ├── 50-aliases.zsh # eza, bat, etc. ├── 60-keybindings.zsh # emacs-mode bindings ├── 70-packs.zsh # pack loader └── packs/ ├── docker.zsh # your Docker aliases └── kubernetes.zsh # your K8s aliases Every file is readable, editable, yours. No magic.
modern cli replacements
| classic | modern | why | |
|---|---|---|---|
ls | → | eza | Colors, git status, tree view |
cat | → | bat | Syntax highlighting |
grep | → | ripgrep | 10x faster |
find | → | fd | Simpler syntax |
cd | → | zoxide | Frecency-based jumping |
diff | → | delta | Syntax-aware git diffs |
ctrl+r | → | fzf | Fuzzy history search |
15 packs available
Each pack copies aliases, functions, and completions into your config. Install what you need.
DEVOPS
kuberneteskubectl, k9s, helm, stern
dockercompose, lazydocker, dive
terraformterraform, tflint, terragrunt
awsaws-cli, vault, SSO helpers
LANGUAGES
golanggo, golangci-lint, delve
nodenpm, pnpm, yarn, bun
pythonvenv, pip, uv, ruff
rustcargo, clippy, bacon
TOOLS & AI
git-extraslazygit, gh, delta
dev-workspace~/Dev structure
claude-codeclaude CLI, fix cmd
IDE & TERMINAL
vscodecode, extensions
nvimneovim, tree-sitter, LSP
iterm2tab colors, SSH
tmuxsession management
$ serotonin add docker kubernetes golang ✦ 3 packs installed. Open a new tab.
reference
serotonin init60-second terminal setupserotonin add <pack>Copy pack into your configserotonin remove <pack>Remove a packserotonin listAvailable & installed packsserotonin doctorDiagnose shell healthserotonin benchmarkMeasure startup timeserotonin themesBrowse Starship themesserotonin updateUpdate serotoninserotonin exportShare your configserotonin tourInteractive guided tour