README.md

September 19, 2026 · View on GitHub

Azdaja logo

The same task run twice: without Azdaja, 205 steps and 39.4M tokens; with Azdaja, 71 steps and 5.7M tokens

curl -fsSL https://azdaja.dev/install | sh

Azdaja

Azdaja keeps complete source material in a local evaluator and gives language models a bounded working surface for code and semantic calls. It is a recursive language model layer, not a model or agent harness.

Install · Use · Results · Jev · Live proof · Releases

  • Load once: keep full inputs in a persistent Monty/Python evaluator, not every model prompt.
  • Compute locally: use code for parsing, filtering, joins and exact reduction.
  • Recurse selectively: send semantic work through llm / llm_batch, then return FINAL. Subcalls are model calls, not new agent environments.

Install

macOS 11+ on Apple Silicon and Intel, or x86-64 Linux with glibc 2.35+:

curl -fsSL https://azdaja.dev/install | sh

Choose Jcode, Claude, Codex, Gemini or OpenCode when prompted. Installation verifies downloads and makes no model calls. The installer adds az as an alias when available.

From source with Rust 1.95:

cargo install --git https://github.com/kubet/azdaja.git --tag v0.1.18 --locked --features typesafe

Remove Azdaja-managed installations:

azdaja uninstall all

Install options · LICENSE · supported-target third-party notices

Use

azdaja solo "Summarize the unresolved issues" -f ./large.txt
azdaja solo "Find release blockers" --repo ./project

For explicit, persistent work:

sid=$(azdaja start)
azdaja load "$sid" ./large.txt ctx
printf '%s\n' 'FINAL(len(ctx))' | azdaja exec "$sid"
azdaja final "$sid"
azdaja kill "$sid"

Run azdaja for a provider-free local overview, or azdaja map for its interactive view. Leave evidence for the next session.

Results

RLM comparison

Historical 199-row Oolong diagnostic under the RAH protocol. All 14 failed rows remain in the denominator as zeros.

SourceSystemClassScore
RAH paperRLMModel recursion without agent tools64.38%
This repoAzdajaBare RLM layer68.64%
RAH paperCodex, No RetrieverCoding agent71.75%
RAH paperRAH, GPT-5Recursive agent harness81.36%

Single-arm historical diagnostic, not a matched rerun of the paper's controls. Receipt · Launch saga · All measurements and limitations.

Context and cost

Illustrative crossover between a whole-input prompt and a constant 64 KiB root envelope

Illustration, not a benchmark. Recorded RAH runs averaged 5,403 root tokens across 198 measured rows (accounting).

On one frozen 1.3 MiB task, the same-model projection diagnostic kept the exact answer with 66.7% fewer uncached tokens / 54.8% less time on Codex, and 88.0% / 63.7% on OpenCode. These were candidate-only follow-ups, not concurrent or repeated benchmarks. Method and receipt.

The live Fable suite returned 3/3 exact results, one provider call per synthetic scenario. Separate provider-free acceptance tests exercise the real CLI with scripted model responses, not live-model quality.

Optional Jev

Jev / TypeSafe adds optional typed semantic work alongside generative calls:

FeatureWhat it does
judge_manyReturns Noul, Choice and Score judgments with raw distributions. Your harness chooses how to use uncertainty and alternatives.
judge_statsReports attempts, tokens and timing separately from generative calls. Missing usage stays unknown.
jev batchRuns an explicit, budgeted work list with durable checkpoints. Resume reuses completed requests and refuses ambiguous automatic retries.
Source reviewExports JSONL or a read-only HTML queue with full source windows, hashes and byte offsets. No automatic approval.

Attach your TypeSafe key once with a hidden prompt, without putting it in shell history:

bash -c 'read -rsp "TypeSafe API key: " key && echo >&2 && printf %s "$key" | azdaja jev attach --stdin'

TYPESAFE_API_KEY in the host environment also works without attachment. Check local setup with azdaja jev status.

A usable key enables exec and explicitly executed batches. No key or [judge] enabled = false means off. Automatic solo use stays off. No automatic compaction or tool suppression is claimed. Typed API · Batch and review commands.

Boundaries and verification

Use Azdaja only after explicit activation in your harness. Selected source can reach the configured provider. Monty is experimental, and Azdaja is not an OS security boundary. Security · CLI.

Verify recorded evidence offline with ./proof/reproduction/run.sh. Manifest · Offline verifier. This makes no model calls and does not reproduce the original live runs.