Human-ratified project judgement for every connected AI agent.
Project description
Nauro
Project judgement for every connected agent.
Nauro carries human-ratified project judgement across agents, sessions, and tools. It helps you capture and approve the intent, decisions, rationale, open questions, and rejected paths that define a project, then brings the relevant judgement into an agent's work. Works with Claude, Perplexity, Cursor, Codex, and any MCP client.
How the loop works
- You and an agent capture or elicit the judgement relevant to the work.
- The agent drafts any addition, update, or supersession, and you explicitly approve what becomes project truth.
- Relevant judgement reaches an agent before it plans or changes work.
- The agent explains how the judgement affected its recommendation or implementation.
- You accept, correct, except, reopen, or supersede the result in conversation.
- Approved corrections become part of what later agents inherit.
The markdown store, context summaries, BM25 retrieval, advisory checks, and optional sync support this loop. They do not replace your judgement or silently change project truth.
Install
uv tool install nauro # uv fetches its own Python — nothing else needed
No uv? Install it with curl -LsSf https://astral.sh/uv/install.sh | sh (macOS/Linux) or the PowerShell line on Windows. Already on Python 3.10+? pipx install nauro (or pip install nauro) works too.
Quickstart
See a prior decision in about 30 seconds. No account, MCP wiring, or restart required:
mkdir -p /tmp/nauro-demo && cd /tmp/nauro-demo
nauro init --demo
nauro check-decision "Store dollar amounts as decimal numbers"
You'll see a JSON envelope with the related decisions and a deterministic assessment, e.g.:
{
"store": "local",
"related_decisions": [
{
"id": "decision-001",
"title": "Amounts stored in integer cents, never floating point",
"score": 8.462,
"status": "active",
"date": "2026-03-15",
"rationale_preview": "Every monetary amount (transactions, budgets, balances) is stored as an integer number of cents and formatted to dollars only for display..."
}
],
"assessment": "Found 5 related decisions. Top match: D001 \"Amounts stored in integer cents, never floating point\"..."
}
The demo project ruled out storing money as floating-point dollars because binary floating point cannot represent a value like 0.10 exactly, so totals accumulate rounding error and a balance that should read 0.00 shows -0.01. This protective example isolates Nauro's retrieval mechanism: it brings a recorded constraint into the proposal flow before an agent can re-propose the rejected field.
A committed ADR plus a reliable AGENTS.md or CLAUDE.md pointer can provide enough continuity in a small repo. Nauro is designed for project judgement that must persist across longer histories, sessions, tools, repos, machines, or repeated handoffs.
nauro graph renders the store to one self-contained HTML file and opens it: a node-link map of every decision as the default view, plus drawn supersession lineage, a timeline, and a category browser. The demo store's consolidation, three retired decisions converging on the one that replaced them, draws as a fan. By default the file carries the full decision store, including each decision's body rendered as structured detail in the side panel, and lands in the store directory rather than your repo; --no-include-bodies produces a redacted titles-and-metadata artifact for wider sharing.
nauro doctor checks the store for structural defects: unparseable decision files, dangling or cyclic supersession refs, and status contradictions. It is deterministic and report-only — it never edits the store and always exits 0.
For real-project setup (nauro init / nauro adopt), cross-surface access, MCP tool reference, and architecture details, see the main project README. Don't run nauro setup from /tmp/nauro-demo; that would wire the throwaway demo into your MCP client.
nauro adopt --with-subagents additionally installs Nauro's bundled Claude Code workflow subagents (@nauro-planner, @nauro-executor, @nauro-reviewer, @nauro-tech-lead) into ~/.claude/agents/. Off by default to avoid overwriting locally-customized files; pass --force-overwrite to replace customized files.
Why Nauro?
Nauro supports a human-ratified project-judgement loop. It captures what you decided and what you ruled out, with the reasoning, then brings related judgement into agent work. Keyword search over the decision store is one mechanism for putting prior reasoning in front of an agent at proposal time.
No model judges your decisions. The check uses deterministic keyword retrieval (BM25), is advisory, and never blocks a change. Agents draft additions, updates, and supersessions; you explicitly approve each one before propose_decision commits it in one call.
check_decision returns the related prior decisions (the related_decisions list shown above) so the agent can weigh them before proposing; Nauro ranks by keyword relevance and does not judge the proposal. On the approved propose_decision call, near-matches surface as advisory similar_decisions, and a clean proposal commits in one call. What you approve in one tool, every connected agent inherits; for example, a decision recorded in Claude Code is available later in Perplexity. The store is plain markdown in a folder you own. Run it fully locally with no account; cloud sync is opt-in.
Hosted allowance
Nauro includes unlimited local usage, unlimited projects, and 5,000 remote MCP calls per month. For higher hosted limits, contact thomas@nauro.ai. See nauro.ai/pricing for current details.
Apache 2.0 license. Part of the nauro-ai/nauro monorepo.
Named for Peter Naur, whose 1985 paper Programming as Theory Building argued the real program is the theory in the programmer's mind, not the code. Every fresh agent session is the equivalent of losing that programmer.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file nauro-1.3.0.tar.gz.
File metadata
- Download URL: nauro-1.3.0.tar.gz
- Upload date:
- Size: 229.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7c49348929ff62a10133939f53c0029acfa89f16b1f5983e430e3038f70fcee
|
|
| MD5 |
91e4ae13210e81d377532b7ccb6f19c5
|
|
| BLAKE2b-256 |
11c9e50a204149900aa12b32b5760244d024eeb88faf15cd28caacc58121c28c
|
Provenance
The following attestation bundles were made for nauro-1.3.0.tar.gz:
Publisher:
publish-nauro.yml on Nauro-AI/nauro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nauro-1.3.0.tar.gz -
Subject digest:
d7c49348929ff62a10133939f53c0029acfa89f16b1f5983e430e3038f70fcee - Sigstore transparency entry: 2159008826
- Sigstore integration time:
-
Permalink:
Nauro-AI/nauro@712ffbba24433c9bcbc36efa6e060eb125eb98b4 -
Branch / Tag:
refs/tags/nauro-v1.3.0 - Owner: https://github.com/Nauro-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-nauro.yml@712ffbba24433c9bcbc36efa6e060eb125eb98b4 -
Trigger Event:
push
-
Statement type:
File details
Details for the file nauro-1.3.0-py3-none-any.whl.
File metadata
- Download URL: nauro-1.3.0-py3-none-any.whl
- Upload date:
- Size: 270.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f04eb55c9f476a0dd54ffe3003d12f3cbd489c86b516f1890658ab8e2767f78
|
|
| MD5 |
364688a372d322e08d19365627b9fa8f
|
|
| BLAKE2b-256 |
e73e8daead4e2fbc219b7ced3bb183db35584b87cea09817d42fa5893c3dddc1
|
Provenance
The following attestation bundles were made for nauro-1.3.0-py3-none-any.whl:
Publisher:
publish-nauro.yml on Nauro-AI/nauro
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
nauro-1.3.0-py3-none-any.whl -
Subject digest:
6f04eb55c9f476a0dd54ffe3003d12f3cbd489c86b516f1890658ab8e2767f78 - Sigstore transparency entry: 2159008880
- Sigstore integration time:
-
Permalink:
Nauro-AI/nauro@712ffbba24433c9bcbc36efa6e060eb125eb98b4 -
Branch / Tag:
refs/tags/nauro-v1.3.0 - Owner: https://github.com/Nauro-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-nauro.yml@712ffbba24433c9bcbc36efa6e060eb125eb98b4 -
Trigger Event:
push
-
Statement type: