An open-source, terminal-based AI coding agent. It reads your code, calls tools, and helps you build.
pip install postalcli
postal login.Install it:
pip install postalcli
Log in. This authorizes with OpenRouter in your browser; use
postal login --paste to enter an API key directly.
postal login
Run it:
postal # interactive mode postal "your prompt" # single-shot mode postal --cwd /path # run against a different directory postal logout # remove your saved API key
Every mutating tool call passes through the approval flow first. The mode decides how much Postal asks about, from strictest to most permissive.
| Mode | Behavior |
|---|---|
read-only |
Rejects anything that is not known safe. |
ask |
Confirms every mutating tool call. This is the default. |
auto-edit |
Edits freely, confirms shell commands. |
on fail |
Runs freely and only asks after a failure. |
auto |
Runs everything except dangerous commands. |
yolo |
Approves everything, including dangerous commands. |
Set it with approval in .postal/config.toml, or
switch mid-session with /approval <mode>.
Core:
read: read file contents with line numberswrite: create or overwrite filesedit: surgical text replacementgrep: regex search across filesglob: find files by patternshell: execute shell commandslist_directories: list directory contentsplan: todo list for task trackingsearch: web search via DuckDuckGofetch: fetch URL contentmemory: store and retrieve persistent key-value dataSub-agents:
codebase_investigator: explore code structurecode_reviewer: review code for bugs and qualitysoftware_architect: write and maintain clean codetest_writer: write tests for edge casesdebugger: find and fix bugsPostal can also connect to external MCP servers for custom tools and data.
/help: show help/exit or /quit: exit the agent/clear: clear conversation history/config: show current configuration/model <name>: change the model/approval <mode>: change approval mode/stats: show session statistics/tools: list available tools/mcp: show MCP server status/save: save the current session/checkpoint [name]: create a checkpoint/checkpoints: list available checkpoints/restore <checkpoint_id>: restore a checkpoint/sessions: list saved sessions/resume <session_id>: resume a saved sessionPostal is licensed under the GNU General Public License v3.0.