Skip to main content

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 "Add a WebSocket endpoint for live task updates"

You'll see:

store:    local
project:  demo-project
approach: Add a WebSocket endpoint for live task updates

Related decisions (5):
  004-sse-over-websocket  SSE over WebSocket for live task updates  (score 5.0, status active, decided 2026-03-15)
  002-rest-api-over-graphql  REST API over GraphQL for simplicity  (score 2.4, status active, decided 2026-03-15)
  006-cursor-based-pagination  Cursor-based pagination, not offset  (score 1.3, status active, decided 2026-03-15)
  003-monorepo-with-turborepo  Monorepo with Turborepo over polyrepo  (score 1.0, status active, decided 2026-03-15)
  007-hard-delete-with-audit-log  Hard delete with audit log, no soft deletes  (score 0.5, status active, decided 2026-03-15)

Found 5 related decisions. Top match: D004 "SSE over WebSocket for live task updates" (status active, decided 2026-03-15, BM25 5.0). Call get_decision on each related decision before proposing.

For full rationale, read decision files in ~/.nauro/projects/<project-id>/decisions/, or call the get_decision MCP tool after `nauro setup` + restart.

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_decisionpropose_decisionconfirm_decision pipeline surfaces conflicts for you to confirm before they're written, across any connected surface. 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


Download files

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

Source Distribution

nauro-0.7.0.tar.gz (130.5 kB view details)

Uploaded Source

Built Distribution

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

nauro-0.7.0-py3-none-any.whl (161.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for nauro-0.7.0.tar.gz
Algorithm Hash digest
SHA256 ed31ed0a2d35f9cd8d0dd60888a0172f32e9e033c37dd92871a9425e42f42d20
MD5 82abc2d0d1df39b2067454ca60209670
BLAKE2b-256 8da696646bbf3295c42389e97ac5a8bf9cbb033f6d9a73f8b1c8713a8f7ee805

See more details on using hashes here.

Provenance

The following attestation bundles were made for nauro-0.7.0.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-0.7.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for nauro-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c82c216253bd5b7d211674035a9a2c9f51afa763179e28d0295ab729206fae9
MD5 5047f28096ea62ed2cebbc5e5d6e6dc0
BLAKE2b-256 a4733e0f8d6f82c9749b054a21be6eb03fc9a20e35535ff75e7f973f4b5ab98c

See more details on using hashes here.

Provenance

The following attestation bundles were made for nauro-0.7.0-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