Skip to main content

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.

PyPI CI License Platform

You want a beautiful terminal. You don't want to spend a weekend configuring one.
cosyTerm gives you the whole thing in one command.

cosyTerm screenshot


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

License

MIT

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

cosyterm-0.1.0.tar.gz (26.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cosyterm-0.1.0-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

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

Hashes for cosyterm-0.1.0.tar.gz
Algorithm Hash digest
SHA256 aef6fbaa40b0848ce450f544d6d3b57bae646b0966834e091b6e7143d32bc996
MD5 06046625b53d4883de4809d4f82aeeb0
BLAKE2b-256 b539da46f1ab8036496c5066a5f8dfdaf5231ba9726600cdf1254aeba5d8072a

See more details on using hashes here.

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

Hashes for cosyterm-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4f43f273eba064ac7b2472268e4ee6d708862abda67f5fd01105b34874bdcb64
MD5 fb1c75242801036ae9c48b0f54ab22d4
BLAKE2b-256 4b98172cc9e87e7873a1e30ca5a5d3c522b303cc3018ba3efe256dbf3f32e308

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page