Your whole terminal stack, themed in one command.
Ghostty, your shell, Starship, eza, tmux, NeoVim — all Catppuccin Mocha, fully reversible.
pip install cosyterm
cosytermLaunches an interactive wizard. Pick which tools to install, choose your font and shell, then review every shell command that will run before a single thing happens. One final Enter executes the whole plan. About two minutes. Existing configs are moved to a timestamped backup first, so cosyterm restore --latest reverses the whole run.
Prefer the old step-by-step prompts (or running in a non-TTY environment like CI)? cosyterm --classic.
| Tool | What it does |
|---|---|
| Nerd Font | 10 patched fonts — JetBrains Mono, Commit Mono, Cascadia Code, and more |
| Ghostty | GPU-accelerated terminal emulator by Mitchell Hashimoto |
| Fish or Zsh | Fish (recommended) or Zsh (POSIX-compatible) |
| Starship | Cross-shell prompt — git, language versions, right-aligned and clean |
| eza | ls with icons, colors, git status, and tree views |
| tmux | Terminal multiplexer with pastel status bar at top |
| NeoVim + LazyVim | IDE-grade editor, pre-configured, zero setup |
Pick any of the 10 bundled Nerd Fonts at install time, or switch later.
Switch to a different bundled font
cosyterm install fontRe-runs just the font step. Select a new one from the menu; cosyterm installs it and rewrites the font-family line in ~/.config/ghostty/config automatically. Restart Ghostty to pick it up.
Use a font you installed yourself
Edit ~/.config/ghostty/config and change the font-family line to your font's family name (the same string Ghostty expects — e.g. font-family = MyFont Nerd Font Mono). Restart Ghostty.
Scripted / non-interactive
COSYTERM_FONT_CHOICE=0xProto COSYTERM_YES=1 cosyterm install fontValid keys: JetBrainsMono, CommitMono, CascadiaCode, Hack, FiraCode, 0xProto, Monofur, OpenDyslexic, Agave, Hasklig, or skip.
- Safety model — every command that runs, every URL fetched, every
sudo— plus backups and blast-radius guarantees. - Recovery —
cosyterm doctor,cosyterm restore, and the--dry-runpreview. - Automation — scripted installs (
COSYTERM_YES=1,COSYTERM_NVIM_CHOICE), re-running a single step, and the Python API. - Design philosophy — why cosyTerm is opinionated and what it won't add.
Try it. If it's not for you, cosyterm restore --latest puts everything back.
macOS or Linux · Python 3.8+ · bash · git · Homebrew (macOS) or apt/dnf/pacman (Linux)
Open source contributions are welcome. Before adding a new tool or feature, open an issue to discuss it — see CONTRIBUTING.md.
- Setup guide by Guillaume Moigneu at Upsun
- Theme: Catppuccin by the Catppuccin community
- Prompt: Starship
- Terminal: Ghostty by Mitchell Hashimoto
- Editor: NeoVim + LazyVim

