Plexmaton is App Automaton's Rust AI coding assistant for the terminal. Choose a model, follow the work, and resume saved conversations.
- Keep the work in view. Streaming answers, tool activity and approvals share a responsive workspace with expandable details.
- Choose your models. Use OpenAI Responses or Chat Completions, both exercised daily. The Anthropic Messages and Gemini adapters are implemented and fixture-tested, not yet run against a live endpoint.
- Stay in control. Approve an action once, remember a Session or Project permission, and review or revoke it in the Drawer.
- Carry your context forward. Saved conversations and automatic compaction preserve source history. Reusable
SKILL.mdinstructions bring your workflows into the conversation. - Read comfortably. Pastel Markdown, syntax-highlighted code, and native math with hats and Chinese labels. Reasoning, tool groups and messages stay compact; copy follows selection.
Workspace render preview. Native math support.
macOS Apple Silicon is the development target. Install the pinned Rust toolchain and rg.
git clone https://github.com/appautomaton/plexmaton.git
cd plexmaton
mkdir -p .local/plexmaton
cp examples/providers.toml .local/plexmaton/config.tomlSelect your provider/model in that file, set its api_key_env variable, then launch:
PLEXMATON_HOME="$PWD/.local/plexmaton" cargo run -p plexmaton-cli --bin plexmaton/model chooses a configured model for the open conversation while idle; new/resumed conversations
use your configured default. Model selection.
Project guidance loads from PLEXMATON_HOME/AGENTS.md (default ~/.plexmaton/AGENTS.md), then
AGENTS.md from the checkout root to your working directory. Opening a conversation refreshes
this snapshot; deeper files are read through ordinary tools. Scope and limits.
UI, tools and journals are local, and model requests use your configured endpoint. On macOS an approved command runs behind an OS write fence: your workspace, your temporary directories and your toolchain caches stay writable, writes anywhere else are refused, and reads and network are not fenced. Off macOS there is no fence yet, so a command writes with your account's full authority. File tools stay within the workspace and refuse symlinks on every platform. What the fence covers
| Input | Action |
|---|---|
Ctrl-B / Agents ^B |
Toggle Agents |
Ctrl-P |
Open the Drawer: configuration and permissions |
Ctrl-J, Shift-Enter, Alt-Enter |
Newline in conversation input |
Alt-↑ |
Take the most recent waiting message into the empty primary composer |
Ctrl-C |
Clear a draft or interrupt its conversation |
Ctrl-D twice within one second |
Quit |
Esc |
Back out one layer |
1–3 |
Choose an approval option while focused |
Approval: Ctrl-O / command click |
Inspect; c / ⧉ copy, Esc / × close |
$ |
Find and complete a skill |
/ |
Commands: /new, /resume, /compact, /permissions, /effort, /model, /tree (/rewind) |
Tree: ↑↓, Enter, b, f |
Select, rewind/select branch, switch messages/branches, expand/collapse (+/−) |
Mouse movement and arrows share the focused menu choice. The Drawer’s bottom-center ︽ retracts it; Esc goes back one layer. Copy briefly shows ✓ Copied after local acceptance or Copy sent after terminal delivery. Rate limits offer Retry and Edit & retry.
Full key guide · Skills · Selection and copy · Optional status line
A model/history mismatch leaves available status statistics visible. The pastel example points
to /model; it does not convert incompatible history.
Conversations save on the first message; blank launches save nothing. /tree revisits saved history on a new branch without replaying effects; the original branch remains selectable. The tree connects message nodes vertically, omits intermediate tools, and shows hidden entry/branch counts on collapse; ● marks the current branch. Use --ephemeral to opt out of saving. Exit prints a resume command. Journal epochs 2026-09-04 and 2026-09-05 remain readable without rewriting history.
Delegate read-only work, exchange mail, stop/take over children, inspect history after process death. Process death cancels pending approvals; repeat under current policy. Linux unverified.
Use the quality gates for local checks and CI coverage. Model fixtures stay local; private state goes in ignored .local/.
For an offline native UI preview in Kitty, run cargo run --locked -p plexmaton-tui --example native_preview.
F6 advances fixture control states; this is not production collaboration. Scope and controls.
Website · GitHub · Hugging Face
pi-arcweld: a curated Pi coding workspace. webmaton: browser and web-research skills.