SEROTONIN

inject serotonin into your shell.

shadcn/ui for your terminal

curl -sL dotfiles.download/serotonin | sh
// init sequence
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.
// philosophy

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.

// diagnosis

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
// your files

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.
// upgrades

modern cli replacements

classic modern why
lsezaColors, git status, tree view
catbatSyntax highlighting
grepripgrep10x faster
findfdSimpler syntax
cdzoxideFrecency-based jumping
diffdeltaSyntax-aware git diffs
ctrl+rfzfFuzzy history search
// packs

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.
// commands

reference

serotonin init60-second terminal setup
serotonin add <pack>Copy pack into your config
serotonin remove <pack>Remove a pack
serotonin listAvailable & installed packs
serotonin doctorDiagnose shell health
serotonin benchmarkMeasure startup time
serotonin themesBrowse Starship themes
serotonin updateUpdate serotonin
serotonin exportShare your config
serotonin tourInteractive guided tour
View on GitHub See it in production → dotfiles.download