agentsfleet is a fleet of prebuilt AI teammates for recurring engineering work. Each one wakes on an event — a pull request, an incident, a deploy — reads your code, telemetry, internal docs, and live control-plane state, finds the root cause, and opens a scenario-backed fix. A human approves, then it ships the fix or drafts the customer reply. Every step is a replayable log.
- Human approval, by design — the agent investigates and proposes; a person approves before anything ships
- Replayable event logs — audit every action and decision
- Bring your own provider keys — no vendor lock-in on inference
- Runs locally or against production — same agent, same evidence
Agents are defined in Markdown playbooks with tools, triggers, and investigation steps. Open-source runtime, hosted control plane — the teammate, not a wrapper around someone else's.
Need access? Join the waitlist. The website's Dashboard links currently open the waitlist, and the shell installer command is hidden while unavailable.
npm install -g @agentsfleet/cli
agentsfleet loginDefine an agent in Markdown, connect a webhook, and get an evidenced diagnosis and a proposed fix on your next pull request or incident. Full walkthrough at docs.agentsfleet.net/quickstart — free to try, no card, under five minutes.
| Directory | What |
|---|---|
rustd/ |
Rust workspace — the agentsfleetd control plane, one crate per plane. This is what runs. |
src/ |
Zig tree — the frozen predecessor, plus the agentsfleet-runner execution daemon. Kept as the rollback path; no lane grades it. |
ui/packages/app/ |
Dashboard — Next.js, Clerk auth |
ui/packages/website/ |
Marketing site — agentsfleet.net |
ui/packages/design-system/ |
Shared UI components |
cli/ |
Command-line interface (CLI) — install, manage agents, tail runs |
public/openapi.json |
OpenAPI spec — committed and edited by hand |
schema/ |
Postgres migrations |
playbooks/ |
First setup, deployment, verification, and operations |
Prerequisites: Rust 1.98.1 (pinned by rustd/rust-toolchain.toml, which rustup installs on the first cargo run inside rustd/) · Zig 0.16.0 (only to build the runner) · Docker (Postgres, Dragonfly, QStash) · Bun ≥1.4 · Clerk dev project · 1Password CLI for secrets
git clone https://github.com/agentsfleet/agentsfleet.git
cd agentsfleet
# Populate .env before running make up. See playbooks/founding/01_bootstrap/001_playbook.md for the full bootstrap.
make up # Postgres + Dragonfly + QStash + agentsfleetd (auto-migrates DB)
# Install in this order. The root install alone does NOT reach the workspace
# packages, and the coverage lane then fails resolving `next/headers` — a
# failure that reads like a code defect and is not one.
bun install
(cd cli && bun install && bun run build)
for pkg in ui/packages/*/; do (cd "$pkg" && bun install); done
cd ui/packages/app && bun run dev.githooks/post-checkout links ui/packages/app/.env.local and .env.runner.local
from ~/.config/agentsfleet/, so do not write over them — a redirect goes through
the symlink into your dotfiles. A ⚠ from the hook means run provision-env-1password
first. The app throws on an unset NEXT_PUBLIC_API_URL rather than guessing a backend.
Verify:
make lint-all
make test-unit-all
make test-integration-rustd # needs Docker: live Postgres + Dragonflyagentsfleet defaults to production. Point it at your local stack with the --api flag, or persist it via the environment:
agentsfleet --api http://localhost:3000 <command>
export AGENTSFLEET_API_URL=http://localhost:3000 # or set it oncegit config core.hooksPath .githooksProject facts live in AGENTS.md. The operating model and the
deterministic gate scripts are committed alongside them —
AGENTS.orly.md, dispatch/, and audits/ — materialised
by orly and recorded in
.oracle/orly.json. A clone carries its own rules; nothing resolves out of a
developer's home directory.
Install orly at the version this repository records, so a local run and Continuous Integration grade against the same rules:
npm install -g "@agentsfleet/orly@$(jq -r .orly_version .oracle/orly.json)"
orly doctor # report drift between the lock and the tree
orly update --no-hooks # re-materialise at the installed version
orly gate work # what the pre-commit hook runs--no-hooks is not optional here: this repository owns .githooks/pre-commit
and .githooks/pre-push, and orly declines to overwrite hooks it did not
write.
make harness-verify runs the gates from audits/ in this repository.
Read about architecture, start with the operator playbooks, or jump into local development.
MIT — Copyright (c) 2026 agentsfleet.
