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
Metadata
Release files for cosyterm 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cosyterm-0.5.0.tar.gz | 44.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cosyterm-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 90.4 kB
Release files / cosyterm-0.5.0.tar.gz
| Download URL | cosyterm-0.5.0.tar.gz |
|---|---|
| Size | 44.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9a1301ab775bbdb39ff6edd21d38c7a5256b7d4235189be84a4a8aab1d6efb56
|
|
BLAKE2b-256 checksum How to use checksums |
4d989c61a1c1618212770ef145aca003057e2990be5f1628698b69eb433110f3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / cosyterm-0.5.0-py3-none-any.whl
| Download URL | cosyterm-0.5.0-py3-none-any.whl |
|---|---|
| Size | 45.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
33754c0bb67b38fa3162c558b56906bd8599975ab1287a8a18165d65e76f5eea
|
|
BLAKE2b-256 checksum How to use checksums |
b89c83f50a915c2baf32872209572fa455b2f1f7f38edf6ddae51b107bcb0396
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|