Selfishell is a managed Zsh development environment for macOS, Ubuntu, and Ubuntu on WSL.
Install the CLI:
curl -fsSL https://raw.githubusercontent.com/jiminu/selfishell/main/install.sh | bashThen install the default developer environment and verify it:
selfishell install
exec zsh
selfishell doctor
selfishell statusThe 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, and platform notes.
- A consistent Zsh environment across supported macOS and Ubuntu systems.
- A Starship prompt, useful aliases, completions, and managed shell defaults.
minimalanddeveloperprofiles, with Neovim and development tooling in the developer profile.- 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.
developer is the default profile; choose minimal explicitly for a lighter
shell setup.
| Profile | Includes |
|---|---|
minimal |
Core Zsh, Git, Vim, Starship, Zinit, and shell configuration |
developer |
Everything in minimal, plus Neovim, mise-managed runtimes, CLI/editor tools, and build tooling |
See Profiles for the complete package list and profile behavior.
| Command | Use it to |
|---|---|
selfishell status |
Show the active profile, managed resources, and CLI/rollback version. |
selfishell doctor |
Diagnose the current installation. |
selfishell version --available |
Check the latest published release. |
selfishell update |
Update the CLI, profile tools, and configuration. |
selfishell rollback |
Return to the previous retained release offline. |
selfishell uninstall --restore --dry-run |
Preview restoring backed-up configuration. |
sfs is the optional short alias for selfishell. See
Updates and rollback for update modes and recovery behavior.
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.
- Installation — setup, uninstallation, Ghostty, and platform notes.
- Profiles — package choices and Neovim workflow.
- Python development — Python tooling and project setup.
- Updates and rollback — release updates and recovery.
- Troubleshooting — common installation and shell problems.
- Security model — trust boundaries and security guarantees.
- Company deployment — organization-specific installation.
- Shell performance — startup measurement and profiling.
- Contributing — source checkout and verification.
- Release process — tag-driven publishing and verification.
- Vulnerability reporting — report a security issue privately.

