Tasks have owners and a lifecycle.
Every execute task records an owner, a logical task ID, an attempt ID and a lease heartbeat. Only one attempt of a logical task runs at once, and closure receipts record whether work was merged or abandoned.
YOUR SUBSCRIPTIONS / ONE ROUTING TOOLKIT
Your existing CLIs.
Your existing AI subscriptions.
Route by task, complexity & available quota.
npx skills add tlangridge/Alloy
OPEN SOURCE / MIT LICENSE / YOUR EXISTING CLIS
0.12.1 / SAFER EXECUTE
[ TASK LIFECYCLE ]Every execute task records an owner, a logical task ID, an attempt ID and a lease heartbeat. Only one attempt of a logical task runs at once, and closure receipts record whether work was merged or abandoned.
alloy cleanup --all-finished saves the task record, a patch, a commit bundle and a file tarball with a checksum manifest, and verifies them before removing a finished or abandoned worktree. If archive verification fails, the work stays.
Before it creates a worktree, Alloy checks free disk and retained workspace size, runs cleanup again if short, and refuses with the measured values only if still short. Retained worktrees are limited per repository, with no machine-wide concurrency cap.
The default is 45 active minutes plus one correction for the whole task, including resumes and relaunches. An owner can raise the totals with alloy resume. Budget expiry or repeated blockers return the patch, the failing reproduction and the open decisions.
If a Checker returns nothing, times out or hits a provider error, Alloy retries the same revision up to twice. Those retries do not use up Maker rounds and are reported separately.
Checkers read the task worktree directly. On macOS, managed non-Cursor Checkers run under sandbox-exec with writes denied to the task tree, source checkout and Git metadata. Elsewhere, Codex uses its native read-only sandbox and other Checkers refuse.
--light, or a small diff of 80 patch lines or fewer, uses one Maker, your supplied test gates and one cross-family Checker. Changes to tests, CI, migrations, security or auth keep the full gates. Independence and model pins are unchanged.
Managed Claude Makers and Checkers now deny direct rm binaries and wrappers. Plain rm stays allowed, so your own PATH guard still applies.
0.11.0 / CURSOR PROVIDER
[ PREVIOUS RELEASE · MACOS ONLY ]
Composer and Cursor Grok join panels, managed Makers and
Checkers on macOS. Every Cursor process started by Alloy runs
under an OS sandbox: Checkers cannot write repository files; Makers can
edit non-Git contents of their owned worktree. Both can write
their private runtime and CLI login file. One-time login:
AGENT_CLI_CREDENTIAL_STORE=file cursor-agent login.
Alloy never reads the macOS keychain. Under Alloy, the Cursor
CLI is denied keychain access and cannot start
/usr/bin/security.
Independence is judged on the underlying model family. A Cursor-served Claude model counts as Anthropic, not a separate seat — so it cannot Checker an Anthropic Maker.
Cursor has two subscription pools — Cursor Models
(composer-*, cursor-grok-*) and Other
Models (everything else through Cursor). Both stay unknown
unless you set them by hand. Claude quota no longer reads the
keychain; it comes from a credentials file, opt-in hooks or
recorded stream events.
The enabled codex-large-gpt-6-1-sol profile is the
preferred large Codex route — medium effort for making, high for
review. It has not been benchmarked.
JEV / TASK ROUTING
[ YOUR EXISTING LINEUP ]Use your installed, authenticated Codex, Claude, Grok, Antigravity and Cursor CLIs. Your provider’s model access, billing and usage limits still apply. Cursor routing profiles ship disabled until you opt in.
Opt in with a TypeSafe API key. Jev assesses task type, complexity, risk and ambiguity; Alloy applies your model pins, budget and available quota.
Get a routing decision or dispatch the task through a selected CLI. Alloy does not intercept every prompt or switch the model in your running host conversation.
alloy setup
alloy route --prompt-file task.txt
alloy panel --route --prompt-file task.txt
Create task.txt with your task. Setup configures your TypeSafe key and model profiles. The route command returns a decision; panel --route also runs it. Ensure ~/.local/bin is on your PATH.
Routing sends task text to TypeSafe. Cost estimates do not cap actual billing; unavailable quota stays unknown.
Routing setup guide ↗01 / A SECOND OPINION, WITH TEETH
[ THE PANEL ]
The most useful answer might be the one
the other model didn’t think to give you.
Should we split this into microservices?
The deployment and debugging overhead outweighs the benefit for a small team.
Background jobs need independent scaling. The rest can stay in the monolith.
Keep the app together. Consider extracting the worker if queue latency becomes a measured bottleneck.
Independent responses. Attributed reasoning. Your host agent judges and synthesizes; you decide what to do next.
02 / UNDER THE HOOD
[ THE PROCESS ]Alloy dispatches your prompt to your installed AI CLIs in parallel, with read-only access to your repo.
Each panelist brings its own reasoning. Your host compares consensus, contradictions, and the insight only one model caught.
Get a synthesis that attributes the answers and keeps the trade-offs visible. Follow the evidence that matters to your decision.
03 / PICK YOUR LINE
[ THE TOOLKIT ]
From a quick second opinion
to an independently checked patch.
Get independent perspectives on an architecture decision or a difficult trade-off.
/alloy ask Should we use events or CRUD?
Put your diff in front of a read-only panel and get consolidated, attributed findings.
/alloy review
Bring research and independent reasoning together into a plan you can inspect.
/alloy plan add API rate limiting
In managed execute, a Maker edits and tests in an owned worktree. A different model family reviews it read-only. By default a task gets 45 active minutes and one correction. Your host judges and integrates the result. On macOS, Cursor Makers and Checkers run inside an OS sandbox.
/alloy execute fix the login redirect
04 / READY WHEN YOU ARE
Bring your existing CLIs. Add Alloy.
Give the next hard
question a proper panel.
01 Install the skill
npx skills add tlangridge/Alloy
02 Restart your host agent. Check your lineup.
/alloy doctor
03 Ask something worth thinking about.
/alloy ask What is the biggest risk in this design?
git clone https://github.com/tlangridge/Alloy.git ~/Developer/alloy
cd ~/Developer/alloy && ./install.sh
Source install: eligible for stable auto-updates when the official release checkout stays clean on main/master. Restart your host, then run /alloy doctor.
05 / THE DETAILS
Alloy uses the AI CLIs you already have installed and authenticated. It doesn’t include the models. Their billing and usage limits still apply, and a panel makes multiple model calls.
Orchestration runs locally, and Alloy sends no telemetry. Your AI CLIs still communicate with their providers. Optional Jev routing sends task text to TypeSafe; model discovery queries providers. Optional update checks contact GitHub.
Regular panels run read-only. In managed execute, a Maker edits and tests in an owned worktree, then independent model families check the result. Most CLIs rely on their own read-only flags; Cursor Makers and Checkers on macOS run inside an OS sandbox instead.
Opt-in Jev routing combines task assessment and dated model evidence with your model pins, budget and available quota. It requires a TypeSafe key. Cost estimates are not billing caps or guaranteed savings. The alloy usage command shows supported quota readings and reset times. Cursor has two pools (Cursor Models and Other Models) that stay unknown unless you set them by hand; Claude quota no longer reads the macOS keychain. Unavailable capacity stays unknown. Read the
routing guide
and
usage guide
for setup and cost controls.
From v0.5.0, Alloy checks daily at skill startup and installs stable releases for clean, official Git release checkouts on main/master. Copied skills.sh installs use npx skills update; worktrees need manual upgrades. Existing users must install v0.5.0 once to enable this behavior. Release notes ↗
No. Alloy is an independent project inspired by OpenRouter’s Fusion methodology. See the repository’s notice for attribution.