
A self-hostable Git server for the command line
Soft Serve is a self-hostable Git server designed for the command line, offering a delightful way to manage Git repositories through SSH. It provides an intuitive TUI (Terminal User Interface) accessible over SSH, allowing users to browse repositories, view files and commits, and manage their Git workflow entirely from the terminal. The tool supports multiple protocols for cloning repositories including SSH, HTTP, and the Git protocol, with built-in Git LFS support for handling large files.
What sets Soft Serve apart is its ease of setup and comprehensive access control system. Users can create repositories on-demand with SSH or simple git push commands, manage collaborators using SSH public keys, and control repository visibility with public/private settings. The server supports both anonymous access and authenticated users with access tokens, making it flexible for different use cases from personal projects to team collaboration.
Soft Serve is perfect for developers who prefer command-line workflows, teams looking for a lightweight alternative to heavyweight Git hosting solutions, and organizations that want to self-host their Git infrastructure. With support for multiple databases (SQLite and PostgreSQL), Docker deployment, and systemd service integration, it scales from simple personal use to production environments while maintaining its focus on terminal-first user experience.
# via Homebrew
brew install charmbracelet/tap/soft-serve
# via Go Install
go install github.com/charmbracelet/soft-serve/cmd/soft@latest
# via APT (Debian/Ubuntu)
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install soft-serve