Parolsh
Speak to your terminal. Natural language first.
Parolsh is a shell where natural language is the primary command language.
What you type goes to an AI agent through the
Agent Client Protocol (ACP), and Bash stays
one ! away.
wallet ❯ list the 10 most recently modified files ← the agent
wallet ❯ !git status ← bash
wallet ❯ !bash ← a full Bash session
wallet ❯ #cd ~/projects/billing ← Parolsh itself
It runs inside your usual terminal emulator, prints to the normal scrollback (no full-screen UI), and works with any ACP agent: Claude Code, Codex, Qwen Code, Gemini CLI, OpenCode and others.
The name comes from Esperanto parol- (to speak) + sh.
Parolsh talks to one ACP agent: answers stream as they arrive, permission
requests are asked in the terminal, and Ctrl+C cancels a turn. #agent <name>
switches agents. Not there yet: #resume, sending !command output to the
agent, and Markdown formatting.
Input
Every line is routed by its first character. Nothing guesses whether you typed English or a command.
| You type | What happens |
|---|---|
text | Sent to the agent |
/command | Sent to the agent unchanged (the agent's own slash commands) |
!command | Run with bash -ic, in the current directory |
!bash | Interactive Bash session; exit returns to Parolsh |
#command | Parolsh control command, see #help |
See Input routing.
Install
Add the ByJG package repository, then:
# Debian/Ubuntu
sudo apt install parolsh
# Fedora/RHEL
sudo dnf install parolsh
Packages are built for amd64 and arm64, and need glibc 2.28 or newer
(Debian 10+, Ubuntu 20.04+, RHEL 8+).
On macOS (or Linux) with Homebrew:
brew install byjg/tap/parolsh
Homebrew builds it from source, installing Rust only for the build.
Documentation
Build from source
Requires Rust 1.88 or newer.
cargo build --release
./target/release/parolsh
Run the checks the CI runs:
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo test
License
MIT