Local CLI + MCP server: set your project's doctrine once, every connected AI agent inherits it.
Project description
Nauro
Set the doctrine once. Every agent inherits it.
Your project's doctrine — goals, decisions, rejected paths — is inherited by every connected agent. When an agent proposes an approach that conflicts with a past decision, Nauro catches the drift before it ships. Works with Claude, Perplexity, ChatGPT, Cursor, and any MCP client.
Install
pipx install nauro # or: pip install nauro
Requires Python 3.10+.
Quickstart
Watch Nauro catch a conflict in 30 seconds — no account, no MCP wiring, no restart:
mkdir -p /tmp/nauro-demo && cd /tmp/nauro-demo
nauro init --demo
nauro check-decision "Add a WebSocket endpoint for live task updates"
You'll see a JSON envelope with the related decisions and a deterministic assessment, e.g.:
{
"store": "local",
"related_decisions": [
{
"id": "decision-004",
"title": "SSE over WebSocket for live task updates",
"score": 5.0,
"status": "active",
"date": "2026-03-15",
"rationale_preview": "Server-Sent Events (SSE) for pushing live task updates..."
}
],
"assessment": "Found 5 related decisions. Top match: D004 \"SSE over WebSocket for live task updates\"..."
}
The demo project ruled out WebSocket because persistent connections weren't released during ECS rolling deploys. Without Nauro, any new agent would happily re-propose it.
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?
Memory tools record what agents saw and said. Nauro captures what you decided and rejected, then checks every session against those decisions before they drift.
The check_decision → propose_decision flow surfaces conflicts as advisory similar_decisions on the same call; you approve before the agent fires propose_decision. The kernel commits on Tier 1 clean. Decisions made in Claude Code surface in Perplexity. No platform vendor owns your context.
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
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-0.11.1.tar.gz.
File metadata
- Download URL: nauro-0.11.1.tar.gz
- Upload date:
- Size: 132.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c35f72e815c33b9f29a1b8017af0f191c07003fb68354a47396321834fc5118
|
|
| MD5 |
ca130cc9a3303baac4050ec8dbc62380
|
|
| BLAKE2b-256 |
df0ce501df00587a5d07d3d4fdc1dcdb06a68c8babd1c823427da2477b40a0a2
|
Provenance
The following attestation bundles were made for nauro-0.11.1.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-0.11.1.tar.gz -
Subject digest:
6c35f72e815c33b9f29a1b8017af0f191c07003fb68354a47396321834fc5118 - Sigstore transparency entry: 1671791813
- Sigstore integration time:
-
Permalink:
Nauro-AI/nauro@3b19d17803e01c5808cf012ffbb2650900d6aa3a -
Branch / Tag:
refs/tags/nauro-v0.11.1 - Owner: https://github.com/Nauro-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-nauro.yml@3b19d17803e01c5808cf012ffbb2650900d6aa3a -
Trigger Event:
push
-
Statement type:
File details
Details for the file nauro-0.11.1-py3-none-any.whl.
File metadata
- Download URL: nauro-0.11.1-py3-none-any.whl
- Upload date:
- Size: 162.7 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 |
82f8683d36a0e701c200ddc47c093573fa63d2261d6442dd7ad15420dc514c33
|
|
| MD5 |
d4372fa47337a802c03d15c0a1662c45
|
|
| BLAKE2b-256 |
7914064e4241ef32202191c0b736a53918a7a848329289f3cd67c15f93202c29
|
Provenance
The following attestation bundles were made for nauro-0.11.1-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-0.11.1-py3-none-any.whl -
Subject digest:
82f8683d36a0e701c200ddc47c093573fa63d2261d6442dd7ad15420dc514c33 - Sigstore transparency entry: 1671792053
- Sigstore integration time:
-
Permalink:
Nauro-AI/nauro@3b19d17803e01c5808cf012ffbb2650900d6aa3a -
Branch / Tag:
refs/tags/nauro-v0.11.1 - Owner: https://github.com/Nauro-AI
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-nauro.yml@3b19d17803e01c5808cf012ffbb2650900d6aa3a -
Trigger Event:
push
-
Statement type: