Skip to content

Get started

Autonomous mode

oluso goal and /goal keep working until the goal is met, a budget stops the run, or you press Ctrl+C.

On this page

A normal message in oluso is one agent run. Autonomous mode is the outer loop around that run. The agent plans, calls tools, reads the result, and continues on its own. Each model turn still spends the wallet. oluso scan is not part of this loop.

oluso goal

bash

oluso goal "Add a health check and run the tests"
oluso goal "Rename the pay helper" --max-iterations 8 --max-spend 20
oluso goal "Review the auth change" --model sentinel --mode review

The argument is the goal. The command prints goal · Oluso Swift on stderr (the model name follows --model and --mode), then a progress line for every iteration. It exits when the run stops. It does not open the prompt afterwards.

oluso goal

  • goalstringrequired

    What the agent should finish.

  • --modelstringoptional

    Default swift. Also sentinel or sentinel-offensive. Any other value is treated as swift.

  • --modestringoptional

    Default code. Also review, scan, compliance, pentest, or offensive. The tools are the tools for that mode.

  • --thinkingbooleanoptional

    Longer reasoning. Accepted only when the session model is sentinel-offensive. Otherwise the command prints Longer reasoning is part of Sentinel offensive mode. Pass --mode offensive.

  • --targetstringoptional

    Host for authorised testing or offensive mode.

  • --scopestringoptional

    Scope you are allowed to test.

  • --bystringoptional

    Person confirming authorisation.

  • --statementstringoptional

    Must match the authorisation statement exactly. See Authorised testing.

  • --yesbooleanoptional

    Approve workspace-local destructive commands without a prompt. Publish, force-push, sudo, and machine-level commands are still refused.

  • --max-iterationsintegeroptional

    Stop after this many iterations. Default 24. 0 prints Iteration budget must be a positive integer.

  • --max-tokensintegeroptional

    Stop after the model turn that reaches this many tokens. The count is input plus output plus cached tokens for this autonomous run. Omitted means no token cap. 0 prints Token budget must be a positive integer.

  • --max-spendnairaoptional

    Stop when this session has spent this much. 20.50 is 2050 kobo. A value that is not naira prints Spend budget is not a naira amount.

/goal

Inside oluso, /goal <text> starts the same loop and then returns to the prompt. It uses 24 iterations and does not set a token cap or a spend cap. The wallet can still stop it. /goal with no text prints Usage: /goal <text>.

Progress

Each iteration prints one line. The step starts as Planning and changes when the agent calls report_step. Spent is the wallet charged in this session. Tokens are the autonomous run so far.

iteration 2/24 · Write the route · spent ₦1.20 · 340 tokens

An iteration is one agent run. Inside it the model may call tools and continue, up to 6 model turns. A normal message in the prompt, outside this loop, allows 12 model turns. Every one of those turns spends the wallet.

How it stops

What happenedWhat it printsExit
The agent calls finishGoal met on iteration N. <summary>0
Ctrl+CPaused. Resume with oluso resume <id>.130
Iteration capStopped at the iteration budget (N). Resume with oluso resume <id> --max-iterations 24.2
Token capStopped at the token budget (N). Resume with oluso resume <id>.2
Spend capStopped at the spend budget. Resume with oluso resume <id>.2
Empty walletYour Oluso wallet is empty. Top up to continue. Resume with oluso resume <id>.2
blocked, or two iterations with no toolsBlocked. <reason>2
The model failsStopped because the model failed. <detail>1

A second Ctrl+C force-exits. The stalled-model reason is The model stopped using tools before the goal was met. A single chat message that stops because the wallet is empty still exits 0. Only the autonomous run uses exit 2 for the wallet.

Pause and resume

Ctrl+C aborts the current model turn, saves the session, and prints the resume command. oluso resume with no id loads the latest session for this directory. oluso resume <id> loads that session. A goal that is not met continues. A finished goal, or a chat with no goal, opens the prompt when stdin is a terminal.

bash

oluso sessions
oluso resume
oluso resume a1b2c3d4
oluso resume a1b2c3d4 --max-iterations 24
  • Resume without --max-iterations continues until the stored cap. If the run already stopped on the iteration budget, resume adds 24 iterations.
  • --max-iterations N on resume allows N more iterations.
  • --max-tokens and --max-spend replace the stored caps only when you pass them.
  • No saved sessions. means this machine has none. No session <id>. means that id is missing.
  • That session is for <cwd>. Run oluso resume <id> from that directory. means you are in a different folder.
  • A terminal-less resume of a chat prints Session <id> has no paused goal. Open a terminal to continue.

Sessions are JSON files in $OLUSO_HOME/sessions, or ~/.oluso/sessions. The directory is mode 0700 and each file is mode 0600. oluso sessions lists them and does not need a sign-in. oluso resume does.

Destructive commands

The sandbox shell still refuses offensive tooling, absolute paths, and command substitution. On top of that, the session gates workspace-local destructive commands: rm -rf, git reset --hard, git clean, git checkout --, and kill. At a terminal it prints the command and Run this destructive command? [y/N]. y or yes runs it. Anything else returns The user did not approve that destructive command.

With no terminal, the same command is not run. The tool replies Destructive command refused without a person at the terminal. Pass --yes to allow workspace deletes and hard resets. This one was not run: <command>. --yes approves those workspace-local commands. It does not approve publish, force-push, sudo, chmod -R, dropping a table, or shutting the machine down. Those return Oluso refused that command. It can destroy the machine, publish a package, or force-push.

Loop tools

During oluso goal, /goal, oluso build, and oluso debug the agent also has report_step, finish, and blocked. /tools lists them under the mode's own tools. finish is refused for a build or a debug until the command rule on those pages is met. A line that is exactly GOAL_MET is accepted only when finish would have been accepted.