Product

How Kojo works.

A session is the shared context; a run is bounded; a computer is an execution resource. This page describes the product today.

Preview means built and tested, not yet proven end to end in production; it may change. Not yet means not available yet. The status table lists every capability this site claims.

On this page: sessions · roles · runs · computer · pull requests · agents · monitors · status · limits

A session is the shared context

A session is one conversation, the repositories you picked for it, and one computer. People and the session's agent work in it together, and so can your own agents through the API.

Who is here

Shared terminals

Approvals

In Ask mode the agent asks before steps such as running a command or editing a file, and waits. Someone other than the person who started the task can answer. If nobody answers in time, the step is denied, never quietly allowed.

Roles Preview

RoleCan
viewerread the conversation and the activity
reviewer…and approve or deny the agent's requests
editor…and send, queue and interrupt; use the terminals and open any preview
owner…and manage the session and its members
automationread and send messages; how API keys and apps join, never higher

API keys and apps join as automation and can never be made owners. Removing a member takes effect on their next request. Preview

Also in a session

A run is bounded

A run is one stretch of agent work, up to two hours. While it works, the agent pushes its branch every few minutes; at the end, the conversation is saved and the next run resumes it. Sleep and wake keep memory and running processes on the same computer. If the computer is gone, the next run starts a new one from the pushed branch and the saved conversation; running processes do not come back.

Model routes

Each run uses a chain of model routes that your company or you set: your Claude subscription, a Claude API key, or an open model through Claude Code. If a route hits a usage limit or fails before any work, the run moves to the next one, in the same conversation.

Runs on models through Kojo, when you bring no key of your own, are charged to your credit. Preview

Autonomy

Each session runs in Ask, Auto-edit or Full auto. Whatever the autonomy, a merge waits for a person's approval of that merge.

A computer is an execution resource

cpu         4 vCPU
memory      8 GB
checkout    /workspace/<repository>-<branch>, one folder per repository
image       a pinned Claude Code, Node, Python, Chromium, git and build tools
sleeps      after 15 idle minutes, memory and processes kept
wakes on    a message, a preview, a terminal
lifetime    until the session is archived

Pull requests and repositories

A session holds the repositories you pick; a model never picks them. The agent works on its own branch in each and pushes as it goes. “Open a pull request” publishes the work as a draft, described by each request and the agent's answer, with the screenshots it committed; “Update the pull request” rewrites it. Kojo opens pull requests with its own GitHub access, not a token from the computer, and merges only on a person's approval of that merge.

Many repositories, one change Preview

A session can hold several repositories. Its work publishes as linked draft pull requests, one per repository, opened in order; if one fails, retrying finishes the rest without opening duplicates. Preview

GitHub access in the computer Preview

With the GitHub App, the computer gets a token for the session's repositories only, new for each run and revoked when it ends. With a personal token you connected, the computer uses that token. Preview

An agent is a member Preview

The API has the same surface as the app. Scoped API keys join a session as automation members: they read and send messages, and a key that works as its person may use the computer when that person is an editor. A catalog lists each operation with its JSON Schema and the scope it needs, and MCP tools let an agent read sessions and activity. An agent can start work for other agents up to 3 levels deep and 5 at once, by default. Preview

Signed in, the API page of the app lists every operation your workspace can call, and nothing else, with the OpenAPI document to download.

$ curl -X POST "$KOJO_API/coding/sessions" \
    -H "Authorization: Bearer $KOJO_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "repositories": [{"full_name": "acme/web", "mode": "pr"}],
      "first_turn": "Make the checkout test pass on Safari."
    }'

Illustrative request. $KOJO_API and $KOJO_KEY are placeholders; the API page in the app has the current operations and schemas.

A local client that lets your own Claude Code join a cloud session is built but not distributed yet. Not yet

Workflows and monitors Preview

A monitor watches GitHub events, such as a new issue, filters them, asks a typed question about each, and proposes work under a policy you set, with a dry run against real issues before anything is turned on. Monitors are turned on per workspace. Preview

A monitor starting a run and opening a draft pull request on its own has not been exercised end to end. Not yet

What works today

Every capability this site claims, with its status from our build ledger. A capability is Available only when its tests exercise the real behaviour.

WhatStatus
See who is here and where, with live cursors; invite someone to pairAvailable
Shared terminals that survive reloads, one keyboard at a timeAvailable
Approvals from another person; the branch pushed; the conversation resumedAvailable
One computer per session that sleeps and wakes with memory and processesAvailable
A prepared computer image with a pinned Claude Code and a browserAvailable
Your Claude subscription, a Claude API key or open models, with fallbackAvailable
Repositories picked by a person, never by a modelAvailable
Draft pull requests from a session; a merge only on a person's approvalAvailable
Each preview on its own originAvailable
Secrets and saved logins stored encrypted, never shown backAvailable
Secrets shared only with the people you chooseAvailable
Secrets re-checked at the start of every runAvailable
What a run stores is masked for every secret the computer holdsAvailable
Your browser never reads session data from the database; the API checks every readAvailable
An API reference in the app, listing only what your workspace can callAvailable
Every charge is a ledger entry; usage on your own model key is never chargedAvailable
Each secret-handling test checked to fail with its guard removedAvailable
Session roles: viewer, reviewer, editor, owner and automationPreview
Screenshots, PDFs and files attached to a messagePreview
Fork a session onto its own branchesPreview
API keys that join sessions as automation membersPreview
An operation catalog with JSON Schemas and scopesPreview
MCP tools to read sessions and activityPreview
Agents starting work for other agents, within limitsPreview
One task across several repositories, as linked draft pull requestsPreview
A GitHub token per run for the session's repositories onlyPreview
Viewers open only the declared preview port; links last 15 minutesPreview
Your own Claude key and GitHub access in the terminals you openPreview
Secrets masked in terminal output, and who may type where they are heldPreview
The agent's web browser, signed in with logins you savedPreview
Models through Kojo when you bring no key of your ownPreview
No key of ours is put in a computerPreview
Monitors that turn GitHub events into proposals, with a dry run firstPreview
Monitors that start a run and open a draft pull request on their ownNot yet
A local client so your own Claude Code joins a cloud sessionNot yet

Built for a specific workflow. Expanding deliberately.

Not a fit today: local-only workflows, self-hosting requirements, teams that need Codex or Cursor as the primary harness, or one person who only wants a desktop worktree manager.

Start a session