Your terminal, but make it cozy. One command to install a curated, Catppuccin-themed dev setup — Ghostty, Starship, eza, tmux, NeoVim, and more.
Project description
cosyTerm
Your whole terminal stack, themed in one command.
Ghostty, your shell, Starship, eza, tmux, NeoVim — all Catppuccin Mocha, fully reversible.
Install
pip install cosyterm
cosyterm
Launches 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.
What you get
| 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 |
Changing your font
Pick any of the 10 bundled Nerd Fonts at install time, or switch later.
Switch to a different bundled font
cosyterm install font
Re-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 font
Valid keys: JetBrainsMono, CommitMono, CascadiaCode, Hack, FiraCode, 0xProto, Monofur, OpenDyslexic, Agave, Hasklig, or skip.
Docs
- 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.
Requirements
macOS or Linux · Python 3.8+ · bash · git · Homebrew (macOS) or apt/dnf/pacman (Linux)
Contributing
Open source contributions are welcome. Before adding a new tool or feature, open an issue to discuss it — see CONTRIBUTING.md.
Credits
- Setup guide by Guillaume Moigneu at Upsun
- Theme: Catppuccin by the Catppuccin community
- Prompt: Starship
- Terminal: Ghostty by Mitchell Hashimoto
- Editor: NeoVim + LazyVim
License
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cosyterm-0.4.0.tar.gz.
File metadata
- Download URL: cosyterm-0.4.0.tar.gz
- Upload date:
- Size: 44.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.12.10 Darwin/25.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e70aa261db1db3f494a246d6652276f943d67e5678dd1d35ce6839c91e9ef550
|
|
| MD5 |
e7794d1ac37877e5c14b5e7afbeda5e5
|
|
| BLAKE2b-256 |
0d5e308df4de89ac8446f7f3183b3defb0a14c3fee45b02929c0e1636639d8ba
|
File details
Details for the file cosyterm-0.4.0-py3-none-any.whl.
File metadata
- Download URL: cosyterm-0.4.0-py3-none-any.whl
- Upload date:
- Size: 46.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.1 CPython/3.12.10 Darwin/25.2.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2434f4e2e681c722d146e1bf544073354929ba83d11a149b8f17b935ba7edd67
|
|
| MD5 |
78948283df4b50011ee752b3015ffb0a
|
|
| BLAKE2b-256 |
d89fb280b9e57967d93be0999f6e24d32a757c8fa8920ee42c29c43acd0c1f0f
|