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 terminal, but make it cozy.
You want a beautiful terminal. You don't want to spend a weekend configuring one.
cosyTerm gives you the whole thing in one command.
The idea
Most developers know their terminal could look better. Fewer want to spend hours reading dotfile repos, debugging shell configs, and cross-referencing theme ports across six different tools.
cosyTerm is for you if:
- You've seen those gorgeous terminal screenshots and thought "I want that but I don't want to do all… that"
- You'd rather run one command than hand-wire configs for a weekend
- You want everything to match — prompt, editor, multiplexer, file listings — without hunting down theme ports yourself
- You care about how your tools look and feel, but terminal customisation isn't your hobby
Two commands. Done.
pip install cosyterm
cosyterm
What you get
A curated, cohesive terminal — every piece themed with Catppuccin Mocha.
| Tool | What it does | |
|---|---|---|
| 🔤 | Nerd Font | Your choice of 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 |
| 🤖 | Claude Code | AI assistance inside NeoVim |
How it works
cosyterm
An interactive installer walks you through 8 steps. Every step asks before doing anything. Skip what you don't want. Nothing is installed silently.
╔═══════════════════════════════════════════════════════════════╗
║ cosyTerm — your terminal, but make it cozy ║
╚═══════════════════════════════════════════════════════════════╝
Step 1/8 ▶ Pick a font
Step 2/8 ▶ Ghostty terminal
Step 3/8 ▶ Shell (Zsh default)
Step 4/8 ▶ Starship prompt
Step 5/8 ▶ eza (better ls)
Step 6/8 ▶ tmux + Catppuccin
Step 7/8 ▶ NeoVim + LazyVim
Step 8/8 ▶ Claude Code plugin
When it's done, close your terminal, open Ghostty, and everything just works.
Something feel off?
cosyterm doctor
━━━ cosyTerm doctor ━━━
✓ Ghostty /opt/homebrew/bin/ghostty
✓ Starship /opt/homebrew/bin/starship
✓ Starship config ~/.config/starship.toml
✓ eza /opt/homebrew/bin/eza
✓ tmux /opt/homebrew/bin/tmux
✓ Catppuccin tmux ~/.config/tmux/plugins/catppuccin/tmux
✓ NeoVim /opt/homebrew/bin/nvim
✓ LazyVim config ~/.config/nvim
✓ No config/binary mismatches found
Checks for missing binaries, orphaned configs, PATH issues, and font problems.
Safety
This isn't a script that silently overwrites your dotfiles and hopes for the best.
- Backups — every config is copied to
~/.terminal-setup-backups/<timestamp>/before being touched - Confirmations — every install and config write asks
[y/N]first - Verification — after each install, the binary is confirmed on PATH before writing any config that references it
- Mismatch detection — a final check catches configs pointing to tools that aren't installed
- PATH migration — if you switch to Fish, your Zsh/Bash PATH exports are scanned and translated
- Full log — everything is recorded in
~/terminal-setup.log
Recovering
Everything is reversible. Your backups are timestamped:
ls ~/.terminal-setup-backups/
cp ~/.terminal-setup-backups/20250415_143022/.zshrc ~/.zshrc
Python API
import cosyterm
cosyterm.setup() # run the interactive installer
cosyterm.doctor() # check for issues
Requirements
macOS or Linux · Python 3.8+ · bash · git · Homebrew (macOS) or apt/dnf/pacman (Linux)
Design philosophy
cosyTerm is a curated product, not a framework.
The tool selection is intentional and limited. We don't offer 15 theme options, 8 prompt engines, or 4 terminal emulators. We picked one cohesive set of tools that work well together, themed them consistently, and made the whole thing installable in one command.
This is opinionated by design. The constraint is the feature.
If you want granular control over every aspect of your terminal, there are excellent tools for that — chezmoi, GNU Stow, bare git repos. cosyTerm is for everyone else: developers who want a beautiful terminal and don't want to think about it.
What we will add
- New tools that improve the curated experience (e.g., better git UIs, fuzzy finders)
- Platform support (more Linux distros, WSL)
- Additional Nerd Font options
- Quality-of-life improvements to the installer flow
What we won't add
- Multiple competing themes or colour schemes
- Alternative tools that do the same thing as an existing pick
- Options that require the user to understand terminal internals
- Anything that makes the "just run it" experience more complicated
Contributing
Open source contributions are welcome. Whether it's bug fixes, installer improvements, new platform support, or better defaults — we'd love the help.
Before adding a new tool or feature, open an issue to discuss it. We want to keep the curated feel, so not everything will be a fit, but the conversation is always welcome.
See CONTRIBUTING.md for guidelines.
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
Release history Release notifications | RSS feed
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.1.0.tar.gz.
File metadata
- Download URL: cosyterm-0.1.0.tar.gz
- Upload date:
- Size: 26.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Darwin/25.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aef6fbaa40b0848ce450f544d6d3b57bae646b0966834e091b6e7143d32bc996
|
|
| MD5 |
06046625b53d4883de4809d4f82aeeb0
|
|
| BLAKE2b-256 |
b539da46f1ab8036496c5066a5f8dfdaf5231ba9726600cdf1254aeba5d8072a
|
File details
Details for the file cosyterm-0.1.0-py3-none-any.whl.
File metadata
- Download URL: cosyterm-0.1.0-py3-none-any.whl
- Upload date:
- Size: 25.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.2.1 CPython/3.12.10 Darwin/25.4.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f43f273eba064ac7b2472268e4ee6d708862abda67f5fd01105b34874bdcb64
|
|
| MD5 |
fb1c75242801036ae9c48b0f54ab22d4
|
|
| BLAKE2b-256 |
4b98172cc9e87e7873a1e30ca5a5d3c522b303cc3018ba3efe256dbf3f32e308
|