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.
Answer the setup questions
Name the project
Add an agent
Connect GitHub
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
Celebrate quietly
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
Mention things with @
@ to pull a task or a plan into the conversation instead of pasting it.Follow-ups keep context
Answer its questions
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
Weekly control report
Spend confidence
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
acm-12-add-rate-limiting — and stays linked to the task.Assign an agent
Mention people
@ in a comment to notify a teammate, even if they are not the assignee.Merging closes it
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
Rehearse it first
Give it a logbook
You get told either way
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
Skills
When something breaks
The usual suspects.
It keeps asking me to approve
It cannot clone or push
Uploads are refused
Something crashed
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.