One command. Powerful dev environment. Any platform.
Potions transforms your fresh macOS, WSL, Termux, or Fedora installation into a fully-configured development environment in minutes.
- Cross-Platform: macOS, WSL (Windows), Termux (Android), Debian/Linux, Fedora
- Pre-configured Tools: Zsh, Git, NeoVim, Zellij, and more
- Professional CLI: Manage your installation with
potionscommands - Plugin System: Extend functionality with custom plugins
- User Customization: Preserved settings that survive upgrades
curl -fsSL https://raw.githubusercontent.com/Rynaro/potions/main/drink.sh | bashAfter installation, restart your terminal or type zsh to begin using your new environment!
- Zsh: Modern shell with autosuggestions and syntax highlighting
- Git: Pre-configured with useful aliases
- NeoVim: Powerful editor with modern plugins
- Zellij: Terminal multiplexer with intuitive keybindings
- Development Tools: curl, wget, OpenVPN, and more
Potions includes a professional CLI for managing your installation:
potions upgrade # Upgrade to latest version
potions update # Check for updates
potions version # Show current version
potions status # Show installation status
potions info # Show system information
potions doctor # Run health check
potions help # Show help messageAll configurations are stored in ~/.potions:
These files are overwritten on upgrade:
.zshrc- Main Zsh configurationnvim/init.vim- NeoVim configurationzellij/config.kdl- Zellij configuration
Add your customizations here—they survive upgrades:
| File | Purpose |
|---|---|
config/aliases.zsh |
Custom aliases and functions |
config/secure.zsh |
Private configurations (gitignored) |
config/local.zsh |
Machine-specific settings |
config/{macos|linux|wsl|termux}.zsh |
Platform-specific customizations |
nvim/user.vim |
Your Neovim extensions |
zellij/user.kdl |
Your Zellij extensions |
.zsh_aliases- Legacy aliases (useconfig/aliases.zshinstead)sources/*.sh- Legacy platform configs (useconfig/*.zshinstead)
Run ./migrate.sh to migrate from legacy to new structure.
macOS users: The prefix is
Ctrl+a(hold Control, press A) — notCmd+A.Cmd+Atriggers "Select All" in your terminal and never reaches Zellij. See the Terminal Setup Guide for macOS-specific setup.
| Key | Action | macOS Notes |
|---|---|---|
Ctrl+a c |
New tab | or Alt+t |
Ctrl+a x |
Close pane | or Alt+w |
Ctrl+a | |
Split right | or Alt+d |
Ctrl+a - |
Split down | — |
Ctrl+a h/j/k/l |
Navigate panes | or Alt+h/j/k/l |
Ctrl+a n |
Next tab | or Alt+n |
Ctrl+a p |
Previous tab | or Alt+p |
Ctrl+a z |
Toggle fullscreen | or Alt+Enter |
Ctrl+Tab |
Next tab | Not forwarded by Terminal.app — use Alt+n |
| Key | Action |
|---|---|
Ctrl+n |
Toggle NERDTree file explorer |
Space ff |
Find files (Telescope) |
Space fg |
Live grep |
Space fb |
Find buffers |
Space 1-9 |
Go to buffer N |
Space q |
Quit |
Space w |
Save |
Ctrl+s |
Quick save |
📖 Full reference: .potions/KEYMAPS.md
# Install plugins
echo "Rynaro/mini-rails" > plugins.txt
./plugins.sh install
# Create your own plugin
./plugins.sh create my_awesome_pluginTest the installation interface without modifying your system:
./install.sh --test
./drink.sh --testpotions upgradecurl -fsSL https://raw.githubusercontent.com/Rynaro/potions/main/upgrade.sh | bashThe upgrade script:
- ✅ Creates automatic backups in
~/.potions/backups/(keeps last 5) - ✅ Preserves user customizations in
config/*.zshand user files - ✅ Updates configuration files with latest improvements
After upgrading, restart your terminal or run exec zsh to apply changes.
Some terminals require configuration for certain key combinations. See the Terminal Setup Guide for:
- iTerm2 configuration
- Alacritty settings
- Terminal.app workarounds
| Issue | Solution |
|---|---|
Tmux mode (Ctrl+a) does not activate on macOS |
You may be pressing Cmd+A (⌘A) instead of Ctrl+a. Use cat -v to verify. |
Ctrl+Tab not working |
Use Alt+n or Ctrl+a n; or configure terminal (see Terminal Setup Guide) |
Cmd+D/T/W does nothing in Zellij |
These are intercepted by macOS. Use Alt+d/t/w or configure Cmd→Alt forwarding |
| Word navigation broken | Check terminal key mappings, try Alt+f/Alt+b |
| Ctrl+S freezes terminal | Potions should disable this; if not, run stty -ixon |
To remove Potions while preserving your customizations:
curl -fsSL https://raw.githubusercontent.com/Rynaro/potions/main/uninstall.sh | bashContributions welcome! Help improve Potions by submitting bug reports, improving documentation, adding platform support, or creating plugins.
MIT License
