Show HN: Esh – English to Shell Developer tool esh translates plain English into shell commands using a large language model, printing only the command to stdout so it composes with shell pipelines. The tool defaults to a local Ollama server at http://localhost:11434 and supports hosted providers including OpenAI, Anthropic, Google Gemini, Groq, Mistral, DeepSeek, xAI, OpenRouter, Together AI, and any OpenAI-compatible service, with a local history cache that avoids repeat model calls for identical English text. esh requires Rust 1.85 or newer, ships prebuilt binaries for macOS Apple silicon with Debian listed as coming soon, and only executes commands when the user passes --exec, which prompts for confirmation first. esh translates plain English into shell commands using a large language model. Ask for what you want, get the command back. It works with a local Ollama https://ollama.com server and with hosted providers — OpenAI, Anthropic, Google Gemini, and any OpenAI-compatible service. bash $ esh "list all files in the current directory with their sizes" ls -la esh prints only the command to stdout no explanations, no markdown , so its output composes cleanly with your shell: bash $ $ esh "show the ten largest files under this directory" $ echo "$ esh "list all files in the current directory with their sizes" " By default esh only translates: it prints the command and leaves the decision to run it up to you. Pass --exec when you want esh to run it — it shows the command and asks for confirmation first. - Provider-agnostic. Use a local Ollama server, OpenAI, Anthropic, Google Gemini, or any OpenAI-compatible service — and switch with one command. - Local-first. The default provider is a local Ollama server, so nothing leaves your machine unless you choose a hosted provider. - Remembers. Repeated requests are served from a local history, so the model is not called twice for the same English text. - Composable. Only the command is printed, so it can be piped, substituted, or captured. Requires Rust https://www.rust-lang.org/tools/install 1.85 or newer the crate uses the 2024 edition . git clone