Model or dataset
asklokesh/loki-mode avatar
asklokesh/loki-mode

Loki Mode: a spec-driven build runner that refuses to accept an empty diff

Multi-agent autonomous SDLC framework. Spec to deployed app. PRD, GitHub issue, OpenAPI/JSON/YAML, or one-line brief. 5 AI providers, 8 quality gates.

1,060 stars205 forksShellNOASSERTION

At a glance

What is it?
Loki Mode is a Shell-based autonomous SDLC framework from Autonomi that turns a PRD, an OpenAPI or JSON/YAML file, a GitHub issue, or a one-line brief into a deployed application. The interesting part is not the multi-agent framing but the completion contract: the README states it does not accept done on an empty diff or failing tests.
Who is it for?
Adopt Loki Mode if you already write specs and want a CLI that will not report success on an empty diff, and you are comfortable with a BUSL-1.1 licence rather than an OSI-approved one. Do not adopt it if you need a permissively licensed build tool, if you cannot supply an Anthropic API key or another supported model driver, or if your work is a small edit to an existing repo where the agent loop costs more than it returns.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly Shell, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem Loki Mode claims to solve

Most coding agents stop when the model says it is finished. Loki Mode is built around the opposite contract. The README states plainly that it does not accept done on an empty diff or failing tests, and the project describes itself as the spec-driven autonomous builder with verified completion. The eight quality gates named in the repository description are the enforcement mechanism for that claim, and they are the reason the tool exists as a separate product rather than a thin wrapper around a model API.

The intended user is someone who already produces a specification artifact. The README lists the accepted inputs: a PRD, a GitHub issue, an OpenAPI document, JSON or YAML, or a one-line brief. That list tells you who this is not for. If your work arrives as a vague request in a chat window, Loki Mode has nothing to attach its gates to. If you write PRDs, or your team keeps OpenAPI files current, the tool has a structured object to verify against, which is where the quality gates get their leverage.

The secondary audience is CI. The README devotes a long passage to non-interactive behaviour, exit codes, and refusal paths, which is unusual for an agent tool and suggests the authors expect it to run unattended in pipelines rather than on a laptop.

How the build actually flows from spec to deployed app

The mechanism visible in the README is a pipeline with hard stops between stages. An input is classified first: either an idea, or a path to a PRD file. From that input, Loki selects a template deterministically. The README uses the word deterministic three times in the quickstart section, and template discovery is described as returning before estimation, consent, PRD writes, or build execution. So the ordering is template selection, then estimator, then consent, then writes, then execution.

The estimator sits between selection and spend. The README says the tool shows the real cost and time estimate before spending anything, and that the estimator response is embedded in the preview JSON under a key named plan. That is the data flow worth understanding: the plan object is produced by the estimator, not by the model, which is why a preview can be generated with no AI provider present at all.

Multi-agent execution and the eight quality gates sit after that boundary. The README does not enumerate the gates or describe the agent topology, so I cannot tell you how many agents run, how they hand off, or what each gate checks. What can be confirmed is the completion rule: an empty diff or a failing test is not an acceptable terminal state. The Evidence Receipt mentioned in the tour command suggests builds emit a verifiable artifact, but the README excerpt cuts off mid-sentence there, so treat the receipt format as undocumented in the material available.

Getting it running, and the flags that matter

Installation is a single global package. The recommended path is bun install -g loki-mode; npm install -g loki-mode works as a bash fallback, Homebrew is available through brew tap asklokesh/tap && brew install loki-mode, and there is a Docker image at asklokesh/loki-mode:latest with Bun and the Claude CLI pre-installed. Upgrades go through loki self-update, and the README notes you can migrate from npm to Bun later with loki self-update --to bun.

Loki needs a model to drive it. The README states an ANTHROPIC_API_KEY alone is enough because the Claude Agent SDK ships inside Loki, and that you can alternatively point it at Claude Code, aider, cline, or an open model. The diagnostic is loki doctor, which the README says names any blocker. Run that before anything else.

The happy path is loki quickstart, which asks for a one-line idea, picks a template, quotes cost and time, then builds. In a terminal-free environment both halves are mandatory: loki quickstart "a todo app with user accounts" --yes. The README is explicit that missing either half exits 2 with a needs-a-terminal message and writes nothing, so an ambient LOKI_AUTO_CONFIRM cannot start a paid build by itself. If prd.md already exists, the new PRD lands at prd-quickstart.md and then numbered suffixes, because existing files are never overwritten.

The preview surface is the part worth wiring into scripts. loki quickstart "a todo app with user accounts" --dry-run produces the deterministic template choice and the estimator plan with zero writes. Adding --json emits one versioned object; --json requires --dry-run. You can then run loki quickstart --verify-preview preview.json --json to validate the schema, or loki quickstart --from-preview preview.json --yes to execute. Note the asymmetry the README calls out: the saved plan is evidence rather than execution authority, and Loki recomputes and displays the current estimate before starting. --dry-run and --yes are mutually exclusive.

The licence is the first thing to check, not the last

The repository metadata reports the licence as NOASSERTION. The README badge says BUSL-1.1. Those two statements do not agree, and the discrepancy matters more than any feature in this review. BUSL-1.1 is a source-available licence with usage restrictions that typically expire into an open licence after a set period; it is not an OSI-approved open source licence. NOASSERTION generally means a tool could not classify the LICENSE file automatically.

I cannot resolve the conflict from the supplied material, and I am not going to guess which one is authoritative. The practical consequence is that you should open the LICENSE file in the repository and read it before you put Loki Mode in a commercial pipeline. The README also draws a line between the free source-available tool and commercial editions sold under the Autonomi brand (Autonomi Cloud, Autonomi Enterprise), noting that the CLI, SDK, and MCP are the same for everyone. That split is normal for this licensing model, but it means the free tier and the paid tier are the same code under different terms, which is exactly the arrangement where reading the licence text yourself is worth ten minutes.

Nothing here is legal advice. The point is narrower: a NOASSERTION label on a repository whose own badge says BUSL-1.1 is a signal to verify, not a signal to assume permissive.

Where Loki Mode is the wrong tool

The design assumes a spec-shaped input and a build-shaped output. Point it at a two-line bug fix in a large existing repository and the template selection stage has nothing useful to match, the estimator has no plan to price, and the agent loop runs against a diff that was always going to be small. The README does offer loki modernize heal ./your-repo --assess for existing codebases, and the --assess flag is described as read-only, which is the honest way to start. But that is an assessment path, not a general-purpose edit path.

The second failure mode is environmental. Loki needs a model to drive, and the README's default assumption is an Anthropic API key. If your organisation cannot send source to a hosted provider, you are relying on the open-model path, and the README does not document which open models are supported or how they are configured. That is a gap, not a feature. Run loki doctor and see what it reports before you plan around it.

The third constraint is cost visibility. The estimator shows a cost and time estimate before spending, which is better than most tools in this category. But an estimate is not a cap, and the README does not describe a hard budget ceiling that aborts a build. If you are running loki quickstart --yes inside CI, the estimate is printed and the build proceeds; there is no documented flag that stops at a threshold.

Finally, the README excerpt is truncated mid-sentence in the tour section, so the Evidence Receipt format and the CLI surface beyond quickstart, quick, start, modernize, doctor, and self-update are not verifiable from the material I have.

How this differs from aider and cline

The README names aider and cline as providers Loki can point at, alongside Claude Code and open models. That framing is worth taking literally: Loki is not competing with them at the model-interaction layer, it is sitting above it. aider and cline are interactive coding assistants. You open a session, you describe a change, you review a diff, you iterate. The unit of work is a conversation.

Loki Mode's unit of work is a specification and a build. The input is a PRD or an OpenAPI file or a one-line brief, and the output is a deployed app with quality gates that must pass. There is no conversational loop in the happy path; loki quickstart asks a few questions and then runs. That is a real architectural difference, not a marketing one. It means Loki can run unattended in CI, which is why the README spends so much space on exit codes, refusal paths, and the --yes plus idea requirement. It also means Loki is worse than aider at the thing aider is good at: a quick, supervised edit where a human wants to see each step.

The Claude Code plugin follows the same pattern. claude plugin marketplace add asklokesh/loki-mode and claude plugin install loki-mode@loki-mode add three slash commands (/loki-grill, /loki-spec-status, /loki-verify) and an MCP server for memory, task queue, code search, and build management. The README notes the plugin calls the CLI rather than bundling it, so the CLI must be installed separately. Loki is positioning itself as the build orchestrator that a coding assistant drives, not as a replacement for one.

Maintenance, versioning, and what the release cadence implies

The three most recent releases are v9.26.1, v9.26.3, and v9.27.0, all dated 2026-09-10. Two of those landed within roughly eleven hours of each other on the same day. That cadence tells you the project is under active, fast-moving development, and it tells you something else: patch releases at that density mean the surface is still moving. If you pin Loki Mode in a CI pipeline, pin an exact version rather than tracking latest.

Upgrades are handled by loki self-update, and the README documents a migration path from npm to Bun with loki self-update --to bun. The Docker image is tagged latest, which is the opposite of a pin. For a build tool that spends money on model calls, a floating Docker tag plus a fast release cadence is a combination worth avoiding.

The preview JSON carries a schema version (the README refers to schema-v1 automation output and a versioned JSON object), which is the right instinct for a machine-readable interface. --verify-preview validates a bounded, duplicate-key-rejecting schema, so a malformed or tampered preview file fails rather than silently changing what gets built. That is the strongest piece of engineering discipline visible in the material, and it is the part I would test first.

Editorial conclusion

Adopt Loki Mode if you already write specs and want a CLI that will not report success on an empty diff, and you are comfortable with a BUSL-1.1 licence rather than an OSI-approved one. Do not adopt it if you need a permissively licensed build tool, if you cannot supply an Anthropic API key or another supported model driver, or if your work is a small edit to an existing repo where the agent loop costs more than it returns. Before spending anything, run loki quickstart --list-templates and loki quickstart "your idea" --dry-run to see the deterministic template choice and the estimator output, then read the LICENSE file, because the repository metadata reports NOASSERTION while the README badge says BUSL-1.1.

Official sources

  1. asklokesh/loki-mode on GitHub
  2. Issues
  3. Project website
  4. README
  5. Releases
Community notes

Community notes