Skip to content

About

A managed Zsh development environment for macOS, Ubuntu, and WSL.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

Selfishell

Selfishell terminal-themed banner

Selfishell is a managed Zsh development environment for macOS, Ubuntu, and Ubuntu on WSL. The installed CLI is a native executable; installation does not require Go. The supported baseline is macOS 13 or newer, Ubuntu 24.04 LTS, and Ubuntu on WSL 2. See the verification coverage for environments actually exercised in CI. The prompt and Neovim require a Nerd Font in your terminal.

Quick Start

Install the CLI and development environment:

curl -fsSL https://raw.githubusercontent.com/jiminu/selfishell/main/install.sh | bash -s -- --setup

Answer the installation questions, including Ghostty on macOS or Windows Terminal integration on WSL. Then start Zsh and verify the environment:

exec zsh
selfishell status

Without --setup, the bootstrap installs only the CLI. If it reports that ~/.local/bin is not in PATH, run the export PATH=… command it prints before continuing. See the installation guide for exact-version and non-interactive installation, configuration-only setup, uninstallation, Ghostty, other terminals, and platform notes.

What You Get

Selfishell shell prompt showing the current directory, Git branch, and command output

  • A consistent Zsh environment across supported macOS and Ubuntu systems.
  • A Starship prompt, useful aliases, completions, and managed shell defaults.
  • Neovim, mise-managed runtimes, CLI tools, and build tooling.
  • Checksum-verified release updates and a retained release for offline rollback.
  • User-owned shell files: personal aliases, exports, functions, and project tooling stay outside Selfishell-managed blocks.

Selfishell Neovim workspace showing the file explorer, buffer tabs, shell-script syntax highlighting, and compact statusline

Development Environment

See Environment for managed tools, prompt behavior, and the Neovim workflow.

Everyday Commands

Command Use it to
selfishell status Check the system, tools, Zsh plugins, and managed configuration; list problems with next steps.
selfishell version --available Check the latest published release.
selfishell update Update the CLI, tools, and configuration.
selfishell rollback Return to the previous retained release offline.
selfishell uninstall --restore --dry-run Preview restoring backed-up configuration.

Add --verbose to status to include every healthy item. selfishell doctor remains an alias of status.

sfs is the optional short alias for selfishell; an existing sfs from another program is left in place. See Updates and rollback for update modes and recovery behavior.

Safety

Selfishell installs its own files without root into XDG-compatible user paths, backs up existing managed paths, keeps user shell files user-owned, verifies release checksums, and never installs updates automatically during shell startup.

Documentation

User guides

Project and maintainer guides

About

A managed Zsh development environment for macOS, Ubuntu, and WSL.

Topics

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages