AUTONOMOUS CODING AGENTS

Coding agents that keep shipping while you are away.

Alfred is a team of coding agents that works from a spec, a Slack message, or a GitHub issue and turns it into a reviewed pull request. It autonomously plans the work, writes the code, opens the PR, and reviews it, on the Claude and Codex subscriptions you already pay for.

THE DESKTOP APP

See and steer your agents from one desktop app.

Alfred comes with an optional desktop app. See every agent and what it is working on, check how much of your Claude and Codex usage is left, and start a new request in plain English. Slack is still where you discuss and approve plans.

USAGE LEFT on your subscription · $0.00 extra
Claude 5h window resets in 2h 10m
58% of window used
Codex today 1.8M tokens
today, across sessions
Claude weekly 69% left
resets Mon 00:00
YOUR AGENTS 8 agents · 1 waiting for your approval
  • Batman Architect: drives cross-repo features every 1h, opt-in holding
  • Lucius Senior dev: writes implementation PRs every 20m live
  • Drake Planner: turns requests into tasks every 2h live
  • Bane QA: adds missing tests every 4h live
  • Ra's al Ghul Reviewer: checks pull requests every 30m live
  • Nightwing Fixer: handles review and CI feedback every 45m idle
  • Robin Triage: sorts incoming bugs every 3h live
  • Gordon Ops: flags stale docs and health drift daily 08:00 idle
NEW REQUEST Alfred checks it is ready to build
What should Alfred do?
Add a per-org API rate limiter to acme-org/api, then wire the dashboard toggle in org/web. Ship behind a flag.
saved plan · rate-limit-rollout 2 repos flagged
Alfred Desktop puts agents, usage, plans, memory, and logs in one local app. Slack stays connected for approvals and conversation.

How the desktop app works

WHAT IT DOES FOR YOU

Specialist agents carry work from request to reviewed PR.

Each agent has one plain job. You can start with planning, implementation, and review, then add test coverage, reviewer-comment fixes, and safe automerge when your process is ready.

Architect: Batman drives cross-repo features

Leads large work that touches more than one repo: reads the parent issue or Slack plan, checks the affected repos, gets approval, files the repo-level work, and keeps the bundle moving.

[10:30] batman drafted bundle:billing-v2
[10:31] batman posted plan to Slack
[10:34] scope approved
[10:35] batman opened backend -> web -> mobile tasks

Senior dev: Lucius opens PRs

Picks up a scoped task, makes its own copy of the repo, runs Claude Code or Codex with the full project in context, and opens a pull request with tests.

[12:04] lucius claimed your-backend#247
[12:04] lucius worktree ~/.alfred/wt/12042118/
[12:18] lucius PR #1247 opened

Planner: Drake shapes single-repo work

Reads a Slack request, GitHub issue, or plain-text plan, asks for missing details, then files small tasks a coding agent can pick up on its own.

[09:02] drake refined settings plan
[09:02] drake filed your-backend#248 agent:implement
[09:03] drake linked acceptance checks

Reviewer: Ra's al Ghul checks PRs

Reads the changes, runs your test suite in its own copy of the repo, leaves comments on the lines that need work, and marks the pull request ready or needs changes.

[12:18] ras-al reviewed PR#1247
[12:18] ras-al filed 2 inline nits
[12:19] ras-al labelled needs-changes

QA: Bane adds missing tests

Looks at recently changed files, finds the places that need coverage, and opens focused test PRs that stand on their own.

[15:10] bane found low coverage in billing
[15:23] bane PR #1250 opened
[15:24] bane labelled tests-only

Fixer: Nightwing handles review comments

Finds Alfred PRs with unresolved high-priority review comments, applies the fix in a clean worktree, and pushes the update back to the PR branch.

[16:01] nightwing found P1 on PR#1247
[16:08] nightwing pushed fix
[16:09] nightwing asked for re-review
WHY ALFRED IS DIFFERENT

It runs the engineering loop without babysitting.

Alfred checks the Slack drafts, plans, and GitHub issues you marked for it, works in isolated repo copies, opens pull requests, routes review, and comes back to Slack when it needs a decision.

Removes prompt-by-prompt babysitting

Alfred finds the next task, hands it to the right role, runs the work in an isolated repo copy, routes review, records memory, and comes back to Slack when a human decision is needed.

Runs on a Mac or Linux box you choose

A Mac mini, an old MacBook on a dock, or a small Linux box is enough. Alfred runs locally, using the Claude Code and Codex subscriptions you already pay for.

You plan and approve in Slack

Planning happens in a Slack thread. Reply with what you want, what should change, or questions of your own, and Alfred turns the discussion into the next task. Nothing big runs until you approve it.

Remembers what it learns, once you approve it

Alfred keeps notes about each repo on your machine. New lessons wait for your approval before they shape future work, so a wrong guess never gets treated as fact.

Works on one repo or many at once

Alfred can plan a single feature across several repos at the same time. It works the same way inside a monorepo, whether you use Turborepo, Nx, or Cargo workspaces.

Open source, MIT licensed

Every line is on GitHub at github.com/luminik-io/alfred-os. Fork it, read it, run it locally, or audit the code.

LOCAL MEMORY

Your agents keep a record of each run.

Alfred keeps notes on your own machine: lessons you have approved, which files agents changed, what went wrong before, and what is in progress right now. You see and approve new lessons in Slack or the desktop app before they ever shape future work.

01

Lessons wait for your approval.

Agents and trusted teammates can suggest a lesson worth keeping. A suggestion waits for approval before it changes future work. That keeps a wrong guess from becoming part of the system.

02

Past problems are easy to find.

Setup blockers, timeouts, and repeated test failures all land in one place. The next time something breaks, your agents start from what happened before instead of digging back through old Slack messages.

03

Redis memory runs locally.

Alfred starts a local Redis Agent Memory Server for recalled lessons, then keeps FleetBrain as the review queue and reliability ledger. The memory loop stays on your machine.

fleet-brain copy
$ alfred brain status
ok lessons 18
ok memory candidates 4
ok github items 37
ok bundle items 6
ok stale workers 0
$ alfred brain promotions
12 lucius owner/api evidence: PR#248
19 batman bundle evidence: issue#504
$ alfred brain failures --codename huntress
timeout playwright browser missing 3x
slack> memory harvest
preview huntress local setup lesson
slack> memory harvest now
queued candidate 21
$ alfred brain redis-sync --dry-run
would sync 18 reviewed lessons
slack> memory
slack> remember owner/api: keep retry copy testable
slack> memory promote 12
FROM ROUGH REQUEST TO SCOPED WORK

Batman architects the rollout. Lucius ships the PRs. Drake keeps smaller work scoped.

Start with a Slack thread, a GitHub issue, or a plain-text plan. Batman leads multi-repo features, Lucius handles repo-local implementation, and Drake turns smaller requests into clear tasks.

PLAN-TO-PR FLOW request  →  drake  →  agent:implement  →  PR
slack thread or plan.md ## What Org-scoped billing v2. ## Acceptance - /api/v1/invoices by org - Pricing page rewrite - Mobile settings v2 human starts, Alfred scopes DRAKE SCOPES files clear issues every 20 min agent:implement · backend Introduce BillingV2Service your-backend#247 agent:implement · frontend Pricing page rewrite your-frontend#572 agent:implement · mobile Settings screen v2 your-mobile#188 · queued

How Alfred helps structure the plan

THE ARCHITECT AGENT

Batman drives cross-repo features end to end.

Batman is the accountable lead for work that spans repos. It reads the parent issue, checks the affected repos, plans the rollout, gets approval in Slack, opens the repo-level work, and keeps the bundle visible until the implementation fleet can finish it.

BATMAN PLAN · FAN-OUT parent issue → N child issues → N PRs
agent:large-feature org slug rollout specs#42 agent:bundle:add-org-slug BATMAN DRIVES plans, files, tracks agent:implement your-backend PR opened by lucius +162 / -34 in 4 files agent:implement your-frontend PR in review +98 / -12 in 3 files agent:implement your-mobile queued, no firing yet picked next interval
HOW IT WORKS

One run, from start to finish.

From the moment a run starts to the pull request it opens. The same five stages happen every time an agent fires.

ONE RUN, STEP BY STEP timer → agent → engine → Slack
01 · SCHEDULER launchd fires lucius every 1200s survives reboot 02 · AGENT lucius.py preflight, claim picks oldest open agent:implement 03 · WORKSPACE git worktree isolated workspace ~/.alfred/wt/... safe to crash 04 · ENGINE claude -p or codex exec your subscription no API key 05 · OUTPUT PR + report label flip, slack post agent:pr-open severity=info one run = one agent, one task, its own copy of the repo, one model call, one Slack update

See every step in a run

SLACK-NATIVE PLANNING

Talk to Alfred where your team already talks.

Slack is the planning and control surface. Trusted users can start requests, refine plans in a thread, approve big work, ask for status, pause agents, and keep context attached to the work. Slack never bypasses the approval gates.

slack #alfred · batman plan 2026-05-12 11:44 UTC
Slack message from the Alfred bot showing Batman drafting a plan for issue #504, with affected repos backend, frontend, mobile, and a rollout order. The plan is in draft, awaiting approval.

Batman reads one big feature request, plans the backend, web, and mobile rollout, gets approval in Slack, then opens scoped tasks for the implementation fleet.

Batman reads one big feature request, plans the backend, web, and mobile rollout, gets approval in Slack, then opens scoped tasks for the implementation fleet.
slack #alfred · daily summary 2026-05-20 20:45 CET
Slack message from the Alfred bot summarising one private Luminik setup: 153 PRs merged, 44 issues opened, 144 issues closed, and 44,351 lines added across six repos.

A real Luminik setup summary across six repos. The impact page keeps the current totals up to date.

A real Luminik setup summary across six repos. The impact page keeps the current totals up to date.

See more examples of what Alfred posts

YOUR AGENTS, RIGHT NOW

What `alfred status` shows.

Real output from one builder's setup on 2026-05-23: twenty agents, three paused on purpose, and one waiting on a Batman approval.

$ alfred status 16/19 loaded · live output
alfred-nightly - never 0 0 0 0 0 $0.00 ok
automerge - 3m 47 0 0 0 0 $0.00 ok
bane hybrid 9h37m 1 1 0 0 1 $0.00 ok
batman hybrid 11h14m 0 0 0 0 0 $0.00 awaiting approval #567, #123 (9h 44m)
brand-mention-scanner - 56m 6 0 0 0 0 $0.00 ok
cleanup - 8h54m 0 0 0 0 0 $0.00 ok
code-map-refresh - 59m 0 0 0 0 0 $0.00 ok
content-drift - never 0 0 0 0 0 $0.00 ok
damian hybrid 2h37m 1 1 0 0 1 $0.00 ok
drake hybrid 17m 9 9 0 0 9 $0.00 ok
fleet-doctor - 4h25m 1 0 0 0 0 $0.00 ok
huntress ❚❚ - 18h26m 0 0 0 0 0 $0.00 paused since 2026-05-22T15:46:57Z
lucius ❚❚ hybrid 15h42m 0 0 0 0 0 $0.00 paused since 2026-05-22T18:23:22Z
morning-brief - 4h55m 0 0 0 0 0 $0.00 ok
nightwing ❚❚ hybrid 41m 14 14 0 0 15 $0.00 paused since 2026-05-15T11:23:59Z
rasalghul hybrid 23m 23 0 23 0 23 $0.00 ok
robin hybrid 56m 1 1 0 0 1 $0.00 ok
shipped-summary-daily - 15h10m 0 0 0 0 0 $0.00 ok
shipped-summary-weekly - 15h10m 0 0 0 0 0 $0.00 ok
Live alfred status output from a real Mac, captured 2026-05-23. Cost is $0.00 because Alfred runs on your own Claude and Codex subscriptions, not pay-per-token API bills. The amber row is Batman holding two large plans for your approval; the paused rows are agents that were stopped by hand.
GET STARTED

Check the wiring before real work starts.

Run doctor for setup health, then dry-run one agent to see the path it would take without touching GitHub, Slack, an engine, or your files.

terminal copy
$ alfred doctor
ok gh auth luminik-io
ok claude code authed
ok codex authed (optional)
ok launchd 21 agents loaded
ok spend cap $20/day fleet
$ alfred dry-run lucius
alfred dry-run: lucius
role: feature dev
mode: safe simulation
would: resolve config, acquire the agent lock, run preflight, and enter the runner
would not: mutate GitHub, post Slack, invoke an engine, or edit files
BUILT BY LUMINIK

Used every day by Luminik.

In the last 30 days, Alfred helped merge 71 PRs across 9 Luminik repos. The impact page shows aggregate product totals and public examples.

Alfred PRs 71
Alfred issues 220
files changed 326
repos 9