lemme
v1.0.0
Published
Natural language to shell commands, powered by Claude, OpenAI, or Groq
Downloads
73
Maintainers
Readme
🤖 lemme
Natural language to shell commands, powered by Claude, OpenAI, Groq, or Gemini.
The problem
You know what you want to do, but not the exact command:
# what was it again...
git push origin $(git rev-parse --abbrev-ref HEAD)
find . -name "*.log" -mtime +7 -delete
tar -czf archive.tar.gz ./src --exclude=node_modulesSo you context switch — open a browser, ask ChatGPT, copy, paste, tweak, run. Every. Single. Time.
The solution
lemme push my branch to origin
lemme delete log files older than 7 days
lemme compress the src folder excluding node moduleslemme translates what you mean into the exact shell command, shows it to you, and runs it on confirmation. No browser. No context switch. Stay in the terminal.
Install
npm install -g lemmeSetup
lemme configA step-by-step wizard ([1/5], [2/5], …) walks you through choosing your AI provider, entering your API key, and configuring your shell and preferences. Your shell and OS are auto-detected. Config is saved to ~/.config/lemme/config.json.
Usage
# any natural language query
lemme push my branch to origin
lemme undo my last commit but keep the changes
lemme find all files over 10mb in this directory
lemme kill the process running on port 3000
lemme compress all logs older than 7 days
lemme show me what changed in the last commitlemme shows the generated command and asks for confirmation before running anything. Press Enter or y to run, n to cancel.
Commands
# run setup wizard
lemme config
# view current config
lemme config --show
# reset and re-run setup
lemme config --reset
# view command history
lemme history
# print installed version
lemme --version
lemme -vProviders
| Provider | Default model |
| ------------------ | -------------------------- |
| Claude (Anthropic) | claude-sonnet-4-20250514 |
| OpenAI | gpt-4o |
| Groq | llama-3.3-70b-versatile |
| Gemini (Google) | gemini-2.0-flash |
The default model is set automatically based on your chosen provider during setup.
Config
Stored at ~/.config/lemme/config.json:
| Field | Description | Default |
| ---------- | ----------------------------------------------- | ---------------- |
| provider | AI provider to use | set during setup |
| apiKey | API key for your provider | set during setup |
| model | Model to use | provider default |
| shell | Your shell (zsh, bash, fish) | auto-detected |
| os | Your OS (macos, linux, windows) | auto-detected |
| autoRun | Skip confirmation and run immediately | false |
| history | Save commands to ~/.config/lemme/history.json | true |
How it works
1. you type → lemme push my branch to origin
2. lemme reads → ~/.config/lemme/config.json (shell, OS, provider)
3. lemme asks → your AI provider, with your shell and OS as context
4. AI returns → git push origin my-branch
5. lemme shows → $ git push origin my-branch
6. you confirm → Run it? [Y/n] (Enter = yes)
7. lemme runs → ✔ Done.If autoRun is enabled, steps 6–7 are skipped and the command runs immediately.
The system prompt instructs the model to return only the raw shell command — no explanation, no markdown, no backticks — and is scoped to your configured shell and OS so the output is always compatible with your environment. If the request can't be expressed as a shell command, it returns an error instead of guessing.
History
If history is enabled in your config, every successfully completed command is saved to ~/.config/lemme/history.json (up to 100 entries; oldest are dropped automatically):
[
{
"query": "push my branch to origin",
"command": "git push origin my-branch",
"timestamp": "2026-05-20T10:32:00.000Z"
}
]View it anytime with:
lemme historyTimestamps are displayed as relative time (just now, 5m ago, 3h ago, yesterday, 4d ago).
Requirements
- Node.js
>=18 - An API key from Anthropic, OpenAI, Groq, or Google AI Studio
License
MIT © Arian Najafi Yamchelo — arii.dev
