Why Kolora

Not a chat box
with a sandbox taped on.

Most agents suggest. Kolora has hands — and brakes. One native core owns the loop, the tools, and every action you allow. The interface is only a window.

01 Runtime

A spine, not a wrapper.

Provider streaming, the agent loop, approvals, session storage and tools live in one Rust core. React renders the interface; it does not run the agent.

02 Hands

Real work. Real consequences.

Reads, writes, edits, moves and deletes files. Runs shell commands. Drives embedded WebKit tabs. Captures the screen and sends native input where the OS grants permission.

03 Brakes

Speed with a handbrake.

Ask, auto or deny for file writes, shell commands and desktop input. Plan mode hands over read-only tools. Cancelling aborts requests and kills shell process groups.

Every write waits for your call.

04 Providers

Your model. Your keys.

Command Code, ChatGPT / Codex, Inception, or any OpenAI-compatible endpoint. API keys live in the OS keyring. Codex credentials stay in Codex's own store.

Also in the harness

The parts you stop noticing.

Workspace context

Reads AGENTS.md from the user config and every directory from the repo root to the working directory. The nearest file wins.

Agent skills

Browse skills.sh, install project-wide or globally, and let the agent read a SKILL.md only when the task matches.

Persistent sessions

Sessions are stored as JSON and resume where they left off. Codex chats keep their thread IDs across turns.

Provider portability

Switching providers keeps each provider's model and key, so changing models is not a reset.

Honest limits

What it does not do.

01

No automatic compaction.

Runs stop at an estimated 800k transcript characters. There is no per-turn step limit.

02

OS permissions still apply.

Screen capture and native desktop input depend on macOS or Linux permissions and the detected input backend.

03

Unsigned macOS builds.

macOS builds are unsigned unless you configure signing and notarization.

04

macOS and Linux only.

Windows desktop tools are not supported.

Next

Build it. Then keep it.