Skip to main content

Local CLI + MCP server: set your project's doctrine once, every connected AI agent inherits it.

Project description

Nauro

A decision system for agentic engineering.

Catch the moment an agent re-proposes something you already ruled out. Your project's decisions, including what you chose and what you ruled out, travel with every connected agent. When an agent proposes an approach, Nauro surfaces the past decisions related to it, so the agent sees the prior reasoning before it writes code. The check is advisory: it never blocks, and you approve anything that gets recorded. Works with Claude, Perplexity, Cursor, and any MCP client.

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

Catch a conflict 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. Without Nauro, a fresh agent has no record of that and could re-propose a floating-point amount field.

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.

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 is decisional, not observational. It captures what you decided and what you ruled out, with the reasoning. When an agent proposes a change, a keyword search over those decisions surfaces the relevant ones, so the prior reasoning is in front of the agent at proposal time.

No model judges your decisions. The check uses deterministic keyword retrieval (BM25), is advisory, and never blocks a change. You approve every decision before it is recorded.

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 whether they conflict. When you record a choice with propose_decision, near-matches surface as advisory similar_decisions on the same call, and a clean proposal commits in one call. What you decide 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.

Pricing

Free: unlimited local usage, unlimited projects, 5,000 remote MCP calls/month. See nauro.ai/pricing for hosted tiers.


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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nauro-1.2.1.tar.gz (220.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nauro-1.2.1-py3-none-any.whl (260.1 kB view details)

Uploaded Python 3

File details

Details for the file nauro-1.2.1.tar.gz.

File metadata

  • Download URL: nauro-1.2.1.tar.gz
  • Upload date:
  • Size: 220.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nauro-1.2.1.tar.gz
Algorithm Hash digest
SHA256 4cd93ec6ea9864c928809eb51d22a3e657880c7baf00c99547dee701053a7ecb
MD5 2aad6a8318a6bff36935704ae2237e43
BLAKE2b-256 9a08be84daec4dd82bfc28b7e8beacd266e55b59e98f7038313d91b6b053d0f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for nauro-1.2.1.tar.gz:

Publisher: publish-nauro.yml on Nauro-AI/nauro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file nauro-1.2.1-py3-none-any.whl.

File metadata

  • Download URL: nauro-1.2.1-py3-none-any.whl
  • Upload date:
  • Size: 260.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for nauro-1.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8481f1076d1973e840b467da676ea726bfd632b2c06d24639524236c36803902
MD5 640444ef9870cc1c580af1244f4d69d0
BLAKE2b-256 9074a15fb92544dd904ee67c0276ca605be2779a4c698460ec9b067b8bfc774d

See more details on using hashes here.

Provenance

The following attestation bundles were made for nauro-1.2.1-py3-none-any.whl:

Publisher: publish-nauro.yml on Nauro-AI/nauro

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page