Show HN: Vibe zsh, turn natural language into shell commands Developer Skymoore released Vibe Zsh, an open-source tool that converts natural language descriptions into shell commands using AI. The plugin integrates with Oh-My-Zsh and supports multiple AI providers including OpenAI, Anthropic, and local models via Ollama, offering features like OS-aware generation and command previews. Transform natural language into shell commands using AI. Works natively with OpenAI, Anthropic, Groq, OpenRouter, Ollama, LM Studio, and more. Type your intent in natural language list all docker containers Press Ctrl+G Get the command with explanations docker ps -a docker: Docker command-line tool ps: List containers -a: Show all containers not just running - 🧠 Natural language to commands - Just describe what you want - 🖥️ OS-aware generation - Commands that work on YOUR system macOS/Linux/Windows - ⚡ Lightning fast - Cached responses are 100-400x faster - 🎬 Streaming output - Typewriter effect with progress indicators - 🔌 Multi-provider - Native support for OpenAI, Anthropic, Groq, OpenRouter, Ollama, LM Studio, and more - 🛡️ Safe by default - Preview commands before execution - 📚 Learn while you work - Inline explanations for every command - 📜 Query history - Interactive menu to browse and re-run previous queries - 🎯 Single binary - One compiled binary, no runtime dependencies to install brew tap skymoore/tap brew install --cask vibe-zsh The Homebrew installation automatically: - Installs vibe to ~/.oh-my-zsh/custom/plugins/vibe - Adds vibe to your plugins list in ~/.zshrc - Creates a global vibe-zsh command for CLI usage After installation, reload your shell: source ~/.zshrc Note: Requires Oh-My-Zsh. If not installed, the installer will provide instructions. For oh-my-zsh integration: curl -fsSL https://raw.githubusercontent.com/skymoore/vibe-zsh/main/install.sh | bash Or using wget: wget -qO- https://raw.githubusercontent.com/skymoore/vibe-zsh/main/install.sh | bash This script downloads the latest release and installs it to ~/.oh-my-zsh/custom/plugins/vibe . You'll need to manually add vibe to your plugins list in ~/.zshrc . - Clone the repository: git clone https://github.com/skymoore/vibe-zsh.git ~/.oh-my-zsh/custom/plugins/vibe - Build the binary: cd ~/.oh-my-zsh/custom/plugins/vibe make build - Add to your .zshrc : plugins= ... vibe - Reload your shell: source ~/.zshrc Add these to your ~/.zshrc all optional . vibe-zsh uses gollm https://github.com/teilomillet/gollm to talk to each provider natively. There are two kinds of provider: Hosted providers openai , anthropic , groq , openrouter , deepseek , google-openai , mistral , cohere have a fixed endpoint built in. You only need to choose the provider, set VIBE API KEY , and pick a VIBE MODEL — you do not set VIBE API URL . Local providers ollama , lmstudio , vllm run on your machine. Set VIBE API URL to point at the local server; no API key is required. Select a provider with VIBE PROVIDER . If you don't set it, vibe infers the provider from VIBE API URL e.g. an openrouter.ai or :11434 URL , which is mainly there to keep older configs working. Setting VIBE PROVIDER explicitly is the recommended approach. The default VIBE MODEL is llama3:8b chosen for the default Ollama setup . Always set VIBE MODEL when you use a hosted provider, or requests will ask for a model that doesn't exist there. export VIBE PROVIDER="openai" export VIBE API KEY="sk-..." export VIBE MODEL="gpt-4o" No VIBE API URL needed — the openai provider always targets api.openai.com. export VIBE PROVIDER="anthropic" export VIBE API KEY="sk-ant-..." export VIBE MODEL="claude-3-5-sonnet-20241022" export VIBE PROVIDER="groq" export VIBE API KEY="gsk ..." export VIBE MODEL="llama-3.1-70b-versatile" export VIBE PROVIDER="openrouter" export VIBE API KEY="sk-or-..." export VIBE MODEL="anthropic/claude-3.5-sonnet" export VIBE PROVIDER="ollama" export VIBE API URL="http://localhost:11434/v1" export VIBE MODEL="llama3:8b" Ollama must be running; no API key required. export VIBE PROVIDER="lmstudio" export VIBE API URL="http://localhost:1234/v1" export VIBE MODEL="local-model" LM Studio must be running and reachable when vibe starts. Note on validation:gollm checks your configuration when vibe starts. Hosted providers validate the API key format up front for example, Anthropic keys must start with sk-ant- , and local providers must already be running and reachable. If a provider is misconfigured, vibe reports an actionable error on the first query rather than silently failing. Custom OpenAI-compatible gateways:the openai provider always points at api.openai.com , so it can't be redirected to a self-hosted gateway via VIBE API URL . To use an OpenAI-compatible endpoint that isn't OpenAI itself, set VIBE PROVIDER to lmstudio or vllm and point VIBE API URL at your gateway. - Type a natural language description in your terminal - Press Ctrl+G - Review the generated command with explanations - Press Enter to execute, or edit first History Menu: Access your query history in two ways: Keybinding : Press Ctrl+X then H Command : Type vh and press Enter Both methods open an interactive menu where you can: - Browse previous queries with arrow keys - Search with / filter mode - Press Enter to insert the generated command into your buffer - Press G to regenerate a new command from the original query - Press V to edit the original query in your buffer - Press A or Home to jump to the first entry - Press E or End to jump to the last entry - Press Esc or Q to cancel The selected command appears on your command line, ready to execute Quick Regenerate: Press Ctrl+X then G to instantly regenerate a new command from your most recent query without opening the menu. Note : Don't run vibe-zsh history or ./vibe history directly - use vh or the keybinding instead. You can also use vibe directly from the command line: Homebrew installation vibe-zsh "list all docker containers" Manual installation Oh-My-Zsh plugin ~/.oh-my-zsh/custom/plugins/vibe/vibe "list all docker containers" CLI Flags: vibe-zsh --help Show all available flags vibe-zsh --debug "query" Enable debug logging vibe-zsh --temperature 0.1 "query" Override temperature vibe-zsh --interactive "query" Confirm before execution History Commands: vh Interactive menu recommended vibe-zsh history list List history in plain text vibe-zsh history clear Clear all history Note: Use 'vh' or Ctrl+X H for interactive menu Don't use 'vibe-zsh history' directly it just outputs to stdout Query History: Open history menu with keybinding Ctrl+X H Or use the command vh List history in plain text vibe-zsh history list Clear all history vibe-zsh history clear File Operations: show me all hidden files including their sizes → ls -lah Docker: show logs of nginx container and follow them → docker logs -f nginx Git: show me commits from last week → git log --since="1 week ago" Find & Search: find all python files modified today → find . -name " .py" -mtime 0 Tab Completion: vibe