Skip to content

Quickstart

Bryant Van Orden edited this page Sep 9, 2026 · 4 revisions

Quickstart

From zero to an agent driving its own desktop, on one machine with Docker.

Prerequisites

  • Docker with Compose (Docker Desktop is fine; Linux gets you KVM speed on the VM tier later)
  • ~8 GB free RAM, ~15 GB disk for images
  • A model to point it at — an Ollama box on your LAN is the $0.00 path; any OpenAI/Anthropic/Gemini key also works (Connecting-Models)

1. Bring the stack up

git clone https://github.com/BryantVanOrden/OpenAgentFleet.git
cd OpenAgentFleet
make up

make up generates a .env with fresh secrets, builds the sandbox desktop image, and starts the stack: orchestrator, console, Postgres, and the local embedding sidecar. First build takes a few minutes.

2. Create your admin

Open http://localhost:8081. The first-run screen asks you to create the first administrator account — there are no default credentials anywhere.

3. Connect a model

Open the console (http://localhost:8081) and sign in. The chat leads with a setup card: Find my model scans this machine for Ollama, LM Studio, llama.cpp or vLLM, picks the best model, measures whether it can see screenshots (it is shown a red square and asked the colour), and registers it. If your engine lives on another box, I have an address takes its URL; the same thing from the keyboard is /setup http://host:11434.

Prefer to do it by hand? Console → AI engines → add a provider. For a LAN Ollama:

  • Kind: OpenAI-compatible, Base URL: http://YOUR-OLLAMA-HOST:11434/v1
  • Model: a vision-capable model if you have one (the agent loop looks at screenshots); a text-only model still works, driving from the accessibility tree instead

More providers and fallback chains: Connecting-Models.

4. Talk to the fleet

The home screen is one chat with every agent. The setup card's next button, Create a bot, provisions one; /new fleet_manager Oaf does the same from the keyboard; /bots lists who is up; then just say what you want done — name a bot to address it, or name nobody and the running fleet divides the work. /help lists every command. Long goals are fine: a bot keeps working across step windows until it has seen the result work on screen, filing a progress alert at each boundary you can cancel from.

4b. Or deploy a bot by hand and give it a goal

Console → Fleet → deploy a bot (pick an archetype, or a blank one). Its desktop appears as a live stream when it's ready. Type a goal into Assign task — e.g. "Open Firefox and find today's #1 story on Hacker News" — and watch it work.

Two things worth trying in the first five minutes:

  • Click the live stream. You're driving the agent's mouse and keyboard; let go and the agent carries on.
  • Turn shell access off for a bot (bot settings). The agent is forced through the GUI, which is the honest demo of what the product does.

4c. Sessions: let Oaf work on your PC or phone

Beside the fleet channel, the chat keeps sessions — each a conversation with Oaf scoped, like a Claude Code session, to a device and a working folder.

pip install open-agent-fleet
fleetctl login
fleetctl host --root ~/Code/my-project      # exposes one folder; asks before commands and writes

Then in the console (or the app): + in the sessions rail → tap the header → pick your PC and a folder under the one you exposed. From there Oaf reads and edits files, runs commands (you approve each in the fleetctl host terminal, or pass --yes), runs any /command, asks bots and hands the fleet work — and every tool call shows in the thread. Drop or paste files and images and Oaf sees them. /goal <what to reach> keeps it working with check-ins until done; /loop 30m <what to do> repeats; /jobs and /cancel <id> manage them. On the phone, Settings → Let Oaf use this phone connects it for notifications, links, clipboard and speech. The threads bots keep between themselves are listed in the same rail.

5. Verify the installation (optional but satisfying)

bash scripts/smoke.sh          # end-to-end: provision, perceive, act, stream
bash scripts/verify-features.sh # feature-by-feature checks

Where next

Clone this wiki locally