Oragent
An Agent Supervisor for AI coding agents — a state-aware cockpit so you see which agent needs you, auto-handle routine permissions, and stay in flow.
Languages
✨ Features
- Built-in Claude Code / Codex / Shell session support
- In-dashboard permission handling
- Vim-style modal operation
- Working / Idle / Waiting / Stopped / Auto / Shell state display
- High-performance line-level rendered preview (TerminalView) with Strip caching
- Interactive cursor overlay in snapshot preview
- Raw-stdin interactive input path with
Shift+Enter/Alt+Enternewline compatibility - Preview cache and single-flight refresh to reduce repeated preview work
- Typing-aware smart refresh: suppresses preview updates during rapid input
- Preview truncation hint when pane history exceeds the current 1000-line preview window
- WAITING auto-focus with FIFO queue processing
- Per-session Auto Pilot
- Home page, session panel toggle, and smoother session deletion flow
- Read-only diagnostics for cursor stability and live-session latency profiling
- macOS notifications
🚀 Installation
Quick Install (recommended)
curl -fsSL https://raw.githubusercontent.com/oragent-ai/oragent/main/install.sh | sh
Via pipx
pipx install oragent
Via pip
pip install oragent
Upgrade
pipx upgrade oragent
or:
pip install -U oragent
Prerequisites
- Python >= 3.11
- tmux (
brew install tmux/apt install tmux)
▶️ Usage
oragent
⌨️ Keybindings
Normal Mode
| Key | Action |
|---|---|
↑ / ↓ |
Navigate sessions |
n |
New session |
r |
Rename session |
i |
Enter Interactive mode |
a / d |
Approve / Deny permission request |
1-9 |
Select numbered permission option |
p |
Toggle Auto Pilot |
c |
Select mode (text copy) |
Ctrl+\ |
Toggle session panel |
Ctrl+x |
Delete session |
q |
Quit Oragent |
Interactive Mode
All keystrokes pass through directly to the selected agent session.
| Key | Action |
|---|---|
Ctrl-] |
Exit to Normal mode |
Ctrl+\ |
Toggle session panel |
Shift+Enter |
Newline (kitty protocol terminals) |
Alt+Enter |
Newline (legacy terminals) |
| Mouse click on session list | Switch session |
🪟 Preview Behavior
- Normal and interactive preview both keep a bounded 1000-line window.
- When older content is omitted from the preview window, Oragent shows a truncation banner below the preview.
- Waiting detection and Auto Pilot still use plain
capture-pane, independent of preview truncation.
Environment variables:
ORAGENT_PREVIEW_HISTORY_LINESCurrent implementation clamps this to at least1000.ORAGENT_INTERACTIVE_PREVIEW_HISTORY_LINESCurrent implementation also clamps this to at least1000.ORAGENT_USE_LEGACY_INTERACTIVE_VIEW=1Disables the interactive cursor overlay path and falls back to the legacy interactive preview behavior.ORAGENT_OUTPUT_DEBOUNCE_MSDrain output debounce interval in ms (default16, ≈60fps).ORAGENT_TYPING_SUPPRESS_MSDuring interactive mode, defer preview refreshes while the user is typing faster than this threshold (default0, disabled). The historical default80was calibrated to a pre-optimisation ~80 ms capture cost; since the one-shot capture path (~6 ms) there is nothing to coalesce. Set to80to restore the legacy behaviour if needed.
Migrating from CCT? All
CCT_*env vars are still recognized in v0.3.x with a deprecation warning, and will be removed in v0.4.0.
🧪 Diagnostics
python tests/e2e_cursor_scope.pyVerifies cursor position and mixed ASCII / Chinese input stability.python tests/e2e_latency_scope_existing_sessions.pyReuses current live tmux sessions in read-only mode to profile preview, list, and polling costs.python tests/e2e_interactive_latency.pyMeasures interactive mode latency: drain debounce, capture, parse, render, and end-to-end refresh cycle.
🖥️ Interface
+----------------------------------------------------------------+
| Oragent · Agent Supervisor |
+----------------------------------------------------------------+
| Sessions | Preview: frontend-refactor (claude) |
|--------------------|---------------------------------------------|
| * frontend-refactor| > Analyzing src/components/Header.tsx... |
| proj/frontend | |
| * api-fix | I'll update the Header component to |
| proj/backend | use the new theme variables. |
| ! test-fix |---------------------------------------------|
| proj/tests | ! Permission: execute `npm test` |
| o data-migration | [a:Allow] [d:Deny] |
| proj/migration | |
+--------------------+---------------------------------------------+
| NORMAL — i:Interactive n:New a/d:Allow/Deny p:Pilot |
+----------------------------------------------------------------+
Status icons: * Working ! Waiting o Idle x Stopped
📝 Notes
- The current interactive preview is still tmux snapshot based, not a full terminal-buffer renderer.
- v0.2.2 replaced RichLog with a line-level TerminalView (ScrollView + render_line), reducing preview render cost by ~61%. Combined with drain debounce reduction and typing-aware smart refresh, end-to-end interactive latency dropped from ~145ms to ~65ms.
- v0.2.5 fixed interactive cursor off-by-one offset caused by trailing newline in tmux capture-pane output. Session names now truncate with ellipsis instead of disappearing when the panel is narrow.
🛣️ Roadmap
| Version | Goal | Status |
|---|---|---|
| v0.2 (as CCT) | Claude Code / Codex / Shell sessions, Auto Pilot, bounded preview, TerminalView performance, cursor fix, diagnostics | ✅ released |
| v0.3 (Oragent) | Rename to Oragent, more tools (Aider/Open Claw), session groups, fuzzy search | 🚧 current |
| v0.4 | Web version, diff view, Docker isolation | 📋 planned |
📄 License
Oragent is free, closed-source software distributed under the
Oragent Free Use License v1.0 — free for personal and commercial
use; no redistribution, reverse engineering, or paid forks. See
LICENSE for the full text.
This is not an OSI-approved open-source license. The source code, build scripts, and internal documents are not part of the distribution.
Metadata
Release files for oragent 0.3.13
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
Total release size: 73.1 MB
Release files / oragent-0.3.13-cp313-cp313-manylinux_2_28_x86_64.whl
| Download URL | oragent-0.3.13-cp313-cp313-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.7 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
5d7ccd4cb4e415cd54cc86d2ac221f36178fb7e1b240d0cd7b0a304b95822ebc
|
|
BLAKE2b-256 checksum How to use checksums |
f2d4f628b35dae875185e9f14ff31872488c2ab4e4402135f8a492eb5e1f540d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp313-cp313-manylinux_2_28_aarch64.whl
| Download URL | oragent-0.3.13-cp313-cp313-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 10.3 MB |
| Tags | CPython 3.13 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
3f940994785072ee8ec01a9898fd9370b309ac464f27e012d5f555f5ef728157
|
|
BLAKE2b-256 checksum How to use checksums |
a9f205da820c1c8aea7dc2abe0efc53282bc2d9991a571b334208548b1766db2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp313-cp313-macosx_14_0_arm64.whl
| Download URL | oragent-0.3.13-cp313-cp313-macosx_14_0_arm64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | CPython 3.13 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
2f3b0a4e03f00dfb00aa4aecac1a88b1bf244113e23caa53a5d4105c4c78137f
|
|
BLAKE2b-256 checksum How to use checksums |
2c69dbe1f33386811f67f17bd48692d15d383063b3220ee322f8206a6fe5fb9a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp312-cp312-manylinux_2_28_x86_64.whl
| Download URL | oragent-0.3.13-cp312-cp312-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 10.8 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
3d5720f22769b01d747db4c8c3882dc289b39a5858f6c37f77876a572ff983b2
|
|
BLAKE2b-256 checksum How to use checksums |
b7305da065dd092e65f7556cb457f933a6924fc29132be7614133e346898bc19
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp312-cp312-manylinux_2_28_aarch64.whl
| Download URL | oragent-0.3.13-cp312-cp312-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 10.4 MB |
| Tags | CPython 3.12 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
ddfeb1d5fdb3b2bc064c6043d3615bb07ad52d6a78842daca67960a4973e9a3e
|
|
BLAKE2b-256 checksum How to use checksums |
905815cb9b9d792918fc02df81e5e2a12975eebb0ced6728bf79d4519ab5cce7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp312-cp312-macosx_14_0_arm64.whl
| Download URL | oragent-0.3.13-cp312-cp312-macosx_14_0_arm64.whl |
|---|---|
| Size | 3.1 MB |
| Tags | CPython 3.12 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
01ecd5e5cc65ab32c93e41dac18d820618fb83c8d07fc5092e36e9bd33a3fc45
|
|
BLAKE2b-256 checksum How to use checksums |
483f96a48514956c30bdd86116cbb5abe1d5250807b5efd87e76168cbe598a7e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp311-cp311-manylinux_2_28_x86_64.whl
| Download URL | oragent-0.3.13-cp311-cp311-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 11.0 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
a7fbe519ec000cd6778aaa6d5d41766090aba8e540e3916a1037be66d1f985b9
|
|
BLAKE2b-256 checksum How to use checksums |
66779a91b6f2fd258d4107edc731c315e81562828f61a8f19488c69646637aa9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp311-cp311-manylinux_2_28_aarch64.whl
| Download URL | oragent-0.3.13-cp311-cp311-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 10.7 MB |
| Tags | CPython 3.11 Linux glibc 2.28+ ARM64 |
|
SHA-256 checksum How to use checksums |
2ddc3bb70192c76154d69028106a33a0b8e3409f61f2a2859c9c627e5db2473d
|
|
BLAKE2b-256 checksum How to use checksums |
0f9395349e2c73dc4644fe51992d4cda6abe3c13efa3fc9dddd4342575e177bd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / oragent-0.3.13-cp311-cp311-macosx_14_0_arm64.whl
| Download URL | oragent-0.3.13-cp311-cp311-macosx_14_0_arm64.whl |
|---|---|
| Size | 3.2 MB |
| Tags | CPython 3.11 macOS 14.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
7bfd6464cbea80150d16d20937ce01285b505878a919610d0977526804d03eef
|
|
BLAKE2b-256 checksum How to use checksums |
2b429bcbeafd392970b3942c0685cde571306aae14e5ce8bd950e25e0c1b553c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency log