For the love of code
Case study

Nisi Inference v0.2

Nisi Inference v0.2, showcased through the public Nisi CLI and library for structured AI-assisted coding workflows.

ProjectPublished case study
Built withNode.js · Local AI
Public Node.js CLI & library · v0.2.0

Structure for
AI-assisted work.

Nisi coordinates the steps around a proposed code change: a draft, checks, tests, a separate review, and repair within a defined limit.

NNisi Inference v0.2
DraftCheckTestReviewRepair

A proposed change, a recorded decision,
and a host that stays in control.

Release0.2.0 · Public CLI and library
RuntimeNode.js 22+
LicenseApache-2.0
What it does

A workflow with visible decisions.

An application sets the task and supplies its own authorization, author, check, test, and reviewer adapters. Nisi coordinates them and returns proposed file contents with a report. The application decides whether to apply the result.

  1. Bound the task

    Set allowed files, criteria, deadline, and repair budget.

  2. Authorize context

    Host policy decides what context adapters may receive.

  3. Draft a candidate

    The author proposes file snapshots without applying them.

  4. Check, then test

    Static checks pass before tests run on that candidate.

  5. Review separately

    Declared reviewer IDs differ from the author ID.

  6. Return a report

    Passing evidence returns proposed files and a run report.

Return to the author for repair. Failed checks, tests, or review can return to author repair when available and within budget. A repaired candidate repeats checks, tests, and review.

Stop path: Refused context, no valid candidate, missing evidence, unavailable repair, exhausted budget, cancellation, or deadline ends without completion; the report records the outcome.

Edit-mode library workflow. Host adapters perform the work; a COMPLETED result does not apply files. Sources: Nisi v0.2.0 README ↗ and workflow API ↗.
Under the hood

Built to leave a trace.

A report you can inspect

The report shows the proposed files, check results, and why a run stopped. The host decides whether to apply any change.

A journal you can reopen

The optional append-only journal uses a hash chain. A host can store it, reopen it after a restart, and check its integrity.

Developer view · public v0.2.0

See what a run actually returns.

Nisi coordinates adapters supplied by your application and returns proposed file contents with evidence for each stage. The application decides whether to use the proposal.

The published, model-free node bin/nisi.mjs demo intentionally starts with an incorrect JavaScript module, repairs it once, reruns its checks, obtains a separate review result, and stores a report. Its documented output includes:
{
  "outcome": "COMPLETED",
  "repairAttempts": 1,
  "reportStored": true
}

No model is called in this demonstration. See the tagged example ↗

Bind the task before drafting

Allowed relative files, acceptance criteria, protected snapshots, deadline, repair budget, and reviewer count become part of a task fingerprint. A candidate is a proposed file snapshot, not an applied patch.

Task contract ↗

Keep stage evidence separate

Checks, tests, and reviews report their own status and evidence against the current candidate fingerprint. Malformed or mismatched records block completion; a repaired candidate goes through fresh checks, tests, and review.

Evidence schema ↗

Reopen the journal after a restart

The optional hash-chained journal distinguishes a fresh run from stale, expired, or revoked records. Its disk store reports whether a write committed and whether durability was confirmed.

Journal and store ↗

Try a configured local-model example

The separate local-model command sends one fixed JSON task to a loopback chat server using different author and reviewer models. It checks four assertions and treats the JSON as data; the server and models are supplied separately.

Local-model setup ↗
Available now

Try the public demonstration.

The v0.2.0 command-line release includes a fixed, model-free workflow demonstration. With Node.js 22 or newer, clone the tagged source and run:

git clone --branch v0.2.0 --depth 1 https://github.com/louiscalata/nisi.git
cd nisi
node bin/nisi.mjs demo

The demo repairs its fixed example once, verifies it, and stores a report. It makes zero model calls.

Read the source and documentationSee release files
How the projects connect

A monitor and a workflow engine.

AGIW shows the state of local model services on a Mac. Nisi coordinates bounded coding work through adapters supplied by its host application. Each project has its own public GitHub release.

AGIW Suite

Inspect supported local model activity, memory pressure, and recorded routes. Missing or stale readings remain unknown; supported model controls and recovery require explicit actions. The Apple silicon Mac app is distributed on GitHub.

Explore AGIW Suite

Nisi Inference v0.2

Structure a coding task around a draft, checks, tests, a separate review, and bounded repair. An optional append-only journal supports reopening saved runs and checking their integrity. The host application decides whether to apply the proposed files.

Explore Nisi Inference v0.2

Continue exploring

AGIW Suite

See how local model inventory, activity, recorded routes, and recovery controls come together in a native Mac interface.

Read the case study