Agent development environment · desktop app

You direct the agents. Alicorn runs the ticket.

Named members carry a ticket from brief to pull request on your own machine, hand it to each other as they go, and interrupt you only at the gates you kept.

An editor assumes you are about to type. Alicorn assumes you are about to brief someone, so the unit of work is a ticket rather than a file. Every step is recorded, and that record is what makes leaving the agents alone a decision you can defend.

Sign in to GitHub — Alicorn is available to 8seneca collaborators

macOS today. Agents run under your own subscription — Alicorn never holds a model key.

An illustration of one ticket, not a screenshot.

Why Alicorn

Four constraints, and nothing ships that breaks one.

Agents made writing code cheap. They did not make accepting it cheap, and a reviewer who receives a finished diff with no decision trail has to reconstruct intent from the ticket and the code. That is missing information, not missing intelligence — so Alicorn is built around four working constraints rather than around a better prompt.

01

Context efficiency

State belongs on disk, not in a context window. Quality degrades somewhere around 300–400k tokens, so the ceiling binds well before the window is full: cross it and Alicorn offers to split the task instead of letting the session drift.

02

Token efficiency

A team of agents costs roughly an order of magnitude more than one agent, so one agent is the default and stays the default. The public figure for multi-agent — roughly 90% better results for roughly 15× the tokens — was measured on research tasks, not on shipping features. The meter runs while the agents do.

03

Quality is a gate, not an opinion

Done is a set of machine-checkable gates authored on the stage, never by the member being judged. A reviewer is refused if it runs on the author's model, and a QA member never reads the implementation it is testing. Blindfold it and it writes tests that match the requirement rather than the bug.

04

A UI you can drive

One tab per ticket, with its status and running cost on the tab itself. You see where six pieces of work stand without opening any of them. The terminal is still there, one keystroke away in the sidebar.

How it works

Set it up once, then let the ticket move itself.

You name the members and draw the process. After that a column change dispatches whoever owns the next stage, findings go straight back to the author, and you are pulled in only where the policy says a human is required.

01

Members

A member is a role bound to an agent backend, a model, a skill set, a permission mode and a workspace kind. Your space starts with three — Developer on Claude Opus, Reviewer and QA on Claude Sonnet — and you edit them under Agents › Members.

02

Workflow

Stages, who owns each one, and what triggers the next, bound to your board columns: one model, two views. Moving a ticket into a column starts that member. The return edge is first class, so a failed review goes back to the author with no human carrying the message.

03

Gates

A gate is a property of every hand-off rather than a box on the canvas, so a workflow cannot be drawn without one. Whether a step gates is decided by blast radius — how reversible it is and what inherits it — both authored on the stage, never inferred.

04

Ledger

Every step is recorded to an append-only ledger: what ran, what verified it, what it touched and what you decided. That record is what earns autonomy, and it is the same data the pull request body is written from.

A gate retires when the evidence says so, and not before

Every stage starts gated. It climbs only on its own measured record, one rejection drops it a level immediately, and no record at all retires a merge or a deploy.

Level What it does Earned at
0 · Observed Always gates, and records the decision it would have made where every stage starts
1 · Advisory Still gates, but pre-fills a recommendation and measures your agreement 10 runs
2 · Conditional Runs on its own when the checks pass and it stays inside its budget 20 runs, 0.90 accepted
3 · Autonomous Notifies you instead of blocking you 50 runs, 0.95 accepted, no amendment in 20

Which hand-offs stop for you

Spec → Architecturefree to throw away and write againearns its way out
Architecture → Buildevery stage after it inherits the interfaceyou decide
Build → Reviewreviewer on a different model from the authorearns its way out
Review → Buildthe correction edge — findings return with no human relayno gate
Review → Verifytests written without reading the implementationearns its way out
Verify → Mergeirreversible — a hard stop never retiresyou decide
Merge → Deployirreversible — a hard stop never retiresyou decide

Nothing gates because it is important, or because it is early. A step gates when it is hard to reverse, or when everything after it inherits the result. That is why Spec can earn its way out and Architecture cannot.

What is in the app

What you get on the first run.

Your own private space

Sign in with your work Google account and the space is yours. There are no organisations to be added to and nothing to configure — signing in is the whole setup.

Three members, ready to run

Developer on Claude Opus, Reviewer and QA on Claude Sonnet. Edit them, add your own, or point one at another provider under Settings › Accounts.

A workflow to start from

Feature delivery ships with the product — Spec, Architecture, Build, Review, Verify, Merge, Deploy — with the correction edges back to Build already drawn, and Merge and Deploy already marked irreversible.

The board drives itself

Move a ticket into a column bound to a member and that member starts. One switch in the sidebar turns all of it off, and nothing new is dispatched until you turn it back on.

A worktree per task

Every task gets its own git worktree, so three attempts at the same bug can run at once and nothing reaches your main branch until you approve the merge.

The meter, while it runs

Cost is attributed per run and rolled up onto the tab. Claude Code and Codex are priced; a backend with no price shows a dash rather than a guess.

Your setup travels as JSON

alicorn config export writes your members, workflows and review policy to a file — never a key. A teammate imports it, sees a plan of what would change, and applies it when happy.

It updates itself

New builds arrive through the control plane's authenticated update feed, so the app stays current without anyone passing round a download link.

Get started

Three steps to your first ticket.

Nothing runs unattended on day one. Every stage starts gated, and autonomy is earned per member, per stage, from a record you can read.

01

Have Claude Code ready

Open a terminal and run claude. If that fails, sign in first. You also need git.

02

Download and sign in

Install the app, then press Continue with Google. Until you are signed in the sign-in page is the whole window — and signing in gives you your own space.

03

New project, new task

Add a repository — clone one from a git URL, or point at a folder already on this machine — then open a task and type what you want done.

Download Alicorn

No email form and no card. Alicorn is distributed to 8seneca collaborators through GitHub, so the only thing you need is your GitHub login.

Sign in to GitHub — Alicorn is available to 8seneca collaborators

The macOS build is not signed yet, so the first launch may be refused. Open System Settings › Privacy & Security and choose Open Anyway.

Security

The expensive work never leaves your machine.

Most of what worries a security review is removed by construction here: execution is on the client, and the control plane stores decisions rather than code.

It runs on your Mac

Agents run locally, in your own checkouts, under your own accounts. Alicorn never hosts inference, so there is no shared runner your source passes through.

No model key, ever

Every agent authenticates with your own subscription. A key for another provider is encrypted on the machine that uses it and is never uploaded; a machine with no keychain is refused rather than storing one in the clear.

One private space per person

There are no organisations and no shared projects. Every row carries the space it belongs to and the boundary is enforced by row-level security in the database, not by an application filter a bad query could skip.

A trail nothing can rewrite

The ledger is append-only and exactly-once — duplicate deliveries are absorbed and timestamps are assigned by the server. A ledger that double-counts would be worse than none, because the autonomy policy reads from it.

Read the documentation →