An autonomous engineering agent that treats your terminal as the product.
KHAELOR reads, searches, edits, runs, and verifies code in your repository — streaming every action into a calm, fast, keyboard-native interface. No web UI. No Electron. Just your terminal, done properly.
curl -fsSL https://www.khaelor.sh/install.sh | sh
KHAELOR
~/dev/my-project · main
claude-sonnet-4-5 · thinking adaptive
────────────────────────────────────────────────────
What do you want to build?
❯ add retry logic to the session store
▸ Read src/session/store.ts · 212 lines
▸ Search "retry" · 6 matches
I found the failure point in SessionStore.append — writes
are not retried on transient EAGAIN. Fixing that first.
▸ Edit src/session/store.ts · +31 −12
▸ Run npm test · passed · 4.2s
✓ src/session/store.ts +31 −12 d expand diff
❯ _
main +1 −0 │ claude-sonnet-4-5 │ context 24% │ $0.31
The terminal is the product
Print-once scrollback, a bounded flicker-free live region, sub-16 ms input echo. Native selection and copy always work — nothing repaints behind your back.
First-class streaming
Everything is event-driven — model text, tool calls, process output — coalesced into smooth 16 ms frames. No spinners pretending to be progress.
Seven powerful tools
read · write · edit (9-strategy replacer) · grep · glob · bash · process — a real background process manager, not blocking shells.
Background processes
Start a dev server, keep editing, read its output later, run tests alongside. Long commands migrate to the background instead of hanging the agent.
Capability-based permissions
Allow / ask / deny by capability — never opaque tool names. Approve once with Enter, persist a precise grant with A, deny with Esc.
Persistent sessions
Every session is an append-only event log. Resume is replay: your transcript, cost, file state, and even pending permission prompts survive restarts.
Honest numbers
Token usage, cost, and context pressure come from real API metadata — never estimates, never invented progress bars. If pricing is unknown, it says n/a.
Context engine
Token-pressure-aware compaction with structured checkpoints. Inspect exactly what the model sees with /context; compact on demand with /compact.
Steer while it works
Type while the agent runs — messages queue and inject safely at tool boundaries. Esc interrupts instantly without corrupting the session.
One line (checks Node ≥ 22, installs the CLI globally, verifies it):
curl -fsSL https://www.khaelor.sh/install.sh | sh
Or install the tarball directly with npm:
npm install -g https://www.khaelor.sh/khaelor.tgz
Then set your Anthropic API key and start it inside any project:
export ANTHROPIC_API_KEY=sk-ant-...
khaelor
Full walkthrough: Getting started.
| Getting started | Install, API key setup, your first session. |
| The TUI | Composer, file mentions, shell mode, interruption, steering. |
| Commands & keyboard | Every slash command, the Ctrl+K palette, the complete key reference. |
| Tools | What the agent can do: the seven tools, truncation, background processes. |
| Permissions | Capabilities, allow/ask/deny, the permission panel, persisted grants. |
| Configuration | Config files, precedence, model selection, thinking and output budget. |
| Sessions | Persistence, resume, the event log, cost tracking. |
| FAQ | Troubleshooting: keys, terminals, NO_COLOR, logs. |