Documentation

How to use Okestri.

Set up a project, give an agent a job, and decide how much it is allowed to do without you. Everything here describes what the app does today.

First

Project, agent, GitHub

Then

A goal in Chat

After

A branch and a draft PR

Set up a project

Four things, once.

A project is one desk: its own chat, tasks, agents, apps, and files. Everything below is scoped to it, so a second project starts clean.

1

Answer the setup questions

Industry, team size, your role, and what you want taken off your plate. All optional, all skippable, and used to shape what the app puts in front of you.
2

Name the project

The description matters more than it looks — agents read it to understand what they are working on. One or two honest sentences beat a slogan.
3

Add an agent

Under Co-workers, hire from a role template (PR reviewer, triage, docs gardener, on-call, morning desk brief, research) or start blank. An agent is a model plus instructions, capabilities, budgets, and guardrails — editable later.
4

Connect GitHub

Under Apps, paste a fine-grained personal access token. This is the step people get wrong, so it has its own note below.

A GitHub token needs Contents: Read and write, Pull requests: Read and write, and Metadata: Read-only — and the specific repository must be selected under Repository access. Read-only tokens can list your repos and clone nothing. If the repo belongs to an organisation, a fine-grained token stays pending until an org owner approves it. Press Test connection after saving; it checks write access, not just read.

First governed outcome

Ship one real decision under control.

After setup, the desk offers a calm first win — usually a review or brief that still waits for your approval. That is the point: not a demo sprint, a governed outcome with spend and audit in the loop.

Open Chat with a suggested prompt

The desk banner can prefill Chat. Send it, watch the session, and decide when it holds for approval.

Celebrate quietly

When the first outcome lands, Okestri notes it once — StatusStamp language, not confetti. Then the desk shows outcome memory going forward.

Give it work

Describe the outcome, not the keystrokes.

Open Chat and say what you want. The agent reads the repository and project context first, then works. You do not need to tell it which files to open.

Be specific about done

“Add rate limiting to the webhook endpoint and cover it with a test” gives the agent something to check itself against. “Improve the webhooks” does not.

Mention things with @

Type @ to pull a task or a plan into the conversation instead of pasting it.

Follow-ups keep context

A reply continues the conversation — the agent remembers the previous turns in the project, so “now do the second one” works.

Answer its questions

When something is genuinely ambiguous the agent stops and asks rather than guessing. Unanswered questions hold the run, so it is worth replying.

How much it does alone

One setting decides how often you are interrupted.

Shell commands are governed per agent, under Teams & Agents → the agent → Shell commands. If you are approving the same thing over and over, this is the setting to change.

Ask every time

Every command stops, allowlisted ones included.

Trust the allowed list

Listed commands run unattended. Anything else asks.

Run without asking

Everything runs except denied patterns. Nothing stops.

For unattended overnight work, choose Run without asking and put your limits in the denied list instead. Denied patterns are matched against every segment of a compound command, so cd app && npm test is judged on both halves.

  • Some commands are always refused, whatever the mode: rm -rf /, mkfs, dd, shutdown, fork bombs, reading id_rsa or /etc/shadow, and piped installers.
  • Merging a pull request always asks. Nothing merges to your default branch unattended.
  • Marking an app trusted covers that app’s own tools — it does not govern shell commands.
  • An approval nobody answers is reminded once, then declined when it expires. Nothing executes by default.

Desk, health, and digests

Scan the desk the way you scan a morning brief.

The desk shows co-worker presence, queue / needs you / working lanes, desk health, overnight routine runs, spend confidence, and outcome memory. A weekly control report summarises approvals, spend, and pauses.

Morning desk digest

Under Settings → Notifications, turn on the daily desk digest for an email of overnight outcomes and decisions waiting.

Weekly control report

The same preferences panel has a weekly control report — or open Control report from the desk teaser.

Spend confidence

Budgets live under project costs. The desk shows month vs cap and an estimated next-run cost once you have billed history.

Tasks and branches

Work that outlives a conversation.

Chat is for asking. Tasks are for tracking. A task carries an identifier, status, assignee, dates, sub-tasks, and its own history.

Create a branch

Open a task and press Create branch. The name comes from the task identifier and title — ACM-12 “Add rate limiting” becomes acm-12-add-rate-limiting — and stays linked to the task.

Assign an agent

Assigning an agent starts the work. Assigning a person just records ownership.

Mention people

Type @ in a comment to notify a teammate, even if they are not the assignee.

Merging closes it

When the linked pull request is merged, the task moves to done on its own.

Your default branch is a boundary. Work lands on a working branch and arrives as a draft pull request for a person to read — Okestri is not designed to write straight to production.

Work while you sleep

A shift that runs on a schedule.

A routine is a standing instruction on a cron schedule — a morning metrics brief, a nightly dependency check, a weekly review sweep. The desk surfaces overnight run counts so you see the value of work that happened while you slept.

Pre-authorise the tools

Tick what the shift may use unattended. Anything not ticked stops and waits in the Inbox, so a 02:00 run would sit until morning.

Rehearse it first

A dry run does the reading for real and narrates what a live run would change, without changing anything. It does not count as a shift.

Give it a logbook

Each routine keeps a doc it writes to at the end of every run. That is its memory between shifts, and your record of what happened.

You get told either way

Routines notify you when they finish or fail. Pair that with the morning desk digest if you want the hand-over in email before you open the app.

Watching a run

You can see what it is doing while it does it.

Repository work happens in a workspace with your repo cloned into it, separate from your machine. Commands are killed at a timeout and their output is capped.

Live command output

Shell output streams into the chat as it happens, so a long install or test run shows progress instead of a spinner. Credentials are stripped before it reaches your browser.

Cost and control

Set spend caps per agent and per month under Costs. Model usage is billed by your provider against your own API key. You can stop a run at any point.

The sandbox is not cleared automatically. Reset or delete it from Project settings → Sandbox when you want a clean start.

Files and skills

What the agent knows before it starts.

Files

Docs you write and files you upload, in folders. Right-click to rename, move, copy, duplicate, or delete. Agents can read them when the work calls for it.

Skills

Standing knowledge injected into every run — coding conventions, architecture decisions, the things you would otherwise repeat in each prompt. Write these once and stop explaining them.

When something breaks

The usual suspects.

It keeps asking me to approve

The agent is on Ask every time, or on the allowed list with nothing listed. Change it under Teams & Agents → the agent → Shell commands.

It cannot clone or push

The GitHub token lacks Contents write, the repository was not selected on the token, or an org owner has not approved it. Press Test connection to see which.

Uploads are refused

File storage is not configured for this deployment. Docs and skills still work without it.

Something crashed

Error screens carry a Copy error details link. That report has the page, the time, and the stack in it — send it to us rather than a description.

For how data is handled and what we have not built yet, read Security and Privacy. Both are written plainly and say what is missing.

Set it up once, then give it something real.

One project, one agent, one clear objective. Widen what it may do on its own as the record earns your trust.