Why learn shell commands when you can just larp ts? Takuji and larptok approved.
larpshell translates natural language into shell commands using AI, then executes them in your terminal (not without asking for confirmation of course). You can also edit the commands before running, or ask for an explanation of what they do. Both prompt templates for command generation and explanation are customizable.
Important
Review every generated command before you run it. larpshell asks first, but the command still executes on your machine.
- one-shot mode:
larpshell show disk usage - REPL mode:
larpshell - stdin mode:
echo "show disk usage" | larpshell - command explanation:
larpshell explain df -h - editable prompts for generation, explanation, and agent mode
- optional agent mode with built-in tools and MCP servers
From crates.io (recommended):
cargo install larpshellFrom source:
curl -sSL https://raw.githubusercontent.com/uwuclxdy/larpshell/mommy/install.sh | shFrom AUR (bin; latest release, no Rust needed): yay -S larpshell
From AUR (git; latest commit): yay -S larpshell-git
Run:
larpshell apilarpshell stores config in ~/.config/larpshell/config.toml.
| Provider | Notes |
|---|---|
| Gemini | Free API key at aistudio.google.com/apikey |
| OpenRouter | Free models available with openrouter/auto (default, free models list) |
| Ollama | API key optional |
| OpenAI-compatible | any compatible API (custom base URL support) |
$ larpshell show disk usage
> df -h
Run this?
[Y/Enter] to execute, [E] to explain, [Arrow Up] to edit, [N] to cancel
$ larpshell
larpshell> show disk usage
> df -h
Run this?
[Y/Enter] to execute, [E] to explain, [Arrow Up] to edit, [N] to cancel
echo "show disk usage" | larpshellIf piped input starts with /, larpshell treats it as a slash command.
$ larpshell explain df -h
> df -h
✅ Displays free disk space of mounted filesystems in a human readable format.
Run this?
[Y/Enter] to execute, [Arrow Up] to edit, [N] to cancel
Press Arrow Up at the confirmation prompt to resend the generated command into the input editor.
Agent mode lets the model gather context before it returns a final command.
Built-in tools:
read_filelist_filessearch_filesrun_command
Every tool call asks for confirmation before it runs.
Modes:
larpshell agent offdisables agent modelarpshell agent safeenables restricted toolslarpshell agent onenables unrestricted agent tools
Safe mode keeps run_command on a read-only allowlist and blocks dangerous flags, shell metacharacters, and mutating git subcommands.
Example:
$ larpshell what's the largest file in this repo
tool Allow listing files in .?
result (14 lines)
tool Allow running du -ah --max-depth=2?
result (28 lines)
> du -ah . | sort -rh | head -n 1
Run this?
[Y/Enter] to execute, [E] to explain, [Arrow Up] to edit, [N] to cancel
larpshell loads MCP servers from ~/.config/larpshell/mcp.json.
{
"mcpServers": {
"git": {
"command": "mcp-server-git",
"args": ["--repository", "."]
}
}
}Interactive mode supports:
/api/agent [off|safe|on]/explain <command>/history [on|off]/prompt [system|explain|agent|agent-safe] [show|edit|reset]/help/quit/uninstall
In the REPL, ! <command> runs a shell command directly.
larpshell stores prompt templates in ~/.config/larpshell/:
sys-prompt.mdexplain-prompt.mdagent-prompt.mdagent-safe-prompt.md
Use the CLI or slash commands to show, edit, or reset them.
Prompt history is on by default. Toggle it with larpshell history on|off or /history on|off.
On the first interactive run without a subcommand, larpshell tries to install shell integration automatically.
Current support:
- bash function in
~/.bashrc - fish function in
~/.config/fish/functions/larpshell.fish - bash, zsh, and fish completions
If setup changes your shell files, restart your shell or source the updated config.
The test suite builds the binary and runs it against mock provider servers. It does not need real provider credentials.

