Skip to main content

Nautilus

Policy-first data broker for AI agents. One call plans, routes, enforces, attests, and audits.

PyPI Downloads License: Apache 2.0 Python 3.13+ CI codecov Docs Discord

Part of the Kraken stack: Fathom (reasoning engine) · Nautilus (policy data broker) · Stargraph (agent-graph framework).

Current version: the PyPI badge above (a number typed here goes stale on the next release). Ask an install: nautilus version, or curl -sS $NAUTILUS/healthz. License: Apache-2.0 Language: Python 3.13+ Package Manager: uv Maintained by: KrakenNet


Why Nautilus?

Every AI agent framework gives agents direct access to data. For most tasks, that's fine.

For some tasks, unchecked access is unacceptable:

  • Policy routing — "Which databases should this query hit?" can't be the agent's choice.
  • Scope enforcement — "What rows is this agent allowed to see?" needs provable constraints.
  • Audit — "What data did this agent touch, and why?" requires a tamper-evident trail.
  • Attestation — "Can we prove this routing decision happened?" needs a signed token.

Nautilus provides deterministic, policy-first data brokering using Fathom — a CLIPS-based expert system — to route, scope, and attest every request.

Install

uv add nautilus-rkm

Database and object-store drivers are extras — install the ones your sources need, or [all] for every built-in adapter:

uv add "nautilus-rkm[postgres]"        # pgvector, elasticsearch, neo4j, influxdb, s3
uv add "nautilus-rkm[all]"

A source whose driver is missing fails at startup naming the extra to install.

Quick Start

nautilus demo    # a governed agent-to-agent handoff decision. No config, no database.
nautilus init    # writes a nautilus.yaml that runs as it stands
from nautilus import Broker

with Broker.from_config("nautilus.yaml") as broker:
    response = broker.request(
        "agent-alpha",
        "Find vulnerabilities for CVE-2026-1234",
        {"purpose": "threat-analysis", "session_id": "s1"},
    )
    print(response.outcome)             # "allowed" | "denied" | "errored" | "skipped"
    print(response.data)                # {"main-db": [...]}
    print(response.sources_queried)     # ["main-db"]
    print(response.denial_records)      # why "classified-db" was refused, and by which rule
    print(response.attestation_token)   # signed JWS
    print(response.duration_ms)         # 47

See the Getting Started guide for a full walkthrough.

What Ships Today

Core runtime

  • Broker facade with sync/async APIs (request, arequest, from_config, afrom_config)
  • Fathom-based policy router for intent-aware source selection and scope enforcement
  • Per-source scope constraints (WHERE-clause fragments) with injection-safe field validation
  • Ed25519 JWS attestation service for signed routing decisions
  • JSONL audit sink with per-request, append-only entries (fsync'd)
  • Pattern-matching and LLM-based intent analysis (Anthropic, OpenAI)
  • Cross-agent handoff reasoning with session-backed escalation detection

Adapters (10 built-in)

  • PostgreSQL, PgVector, Elasticsearch, Neo4j, REST, ServiceNow, InfluxDB, S3, LLM
  • static — rows declared in nautilus.yaml, for a first run with no database
  • Pluggable via entry points and the Adapter SDK

Transports

  • FastAPI REST server (POST /v1/request, health/readiness probes)
  • MCP transport (stdio and HTTP modes)
  • CLI: nautilus demo, nautilus init, nautilus serve, nautilus health, nautilus version

Rule packs

  • data-routing-nist — NIST clearance/classification routing rules
  • data-routing-hipaa — HIPAA-compliant routing rules

What You Get Per Request

Step What happens
Intent analysis Classify intent into data types, entities, temporal scope, sensitivity
Policy routing Fathom evaluates (clearance, purpose, source) — route, scope, or deny
Adapter fan-out Routed sources execute concurrently with per-adapter error isolation
Attestation Ed25519 JWS signed over routing decision, bound to request_id
Audit JSONL entry appended per request — success, denial, or error

Key Differentiator: Session-Aware Routing

Unlike stateless policy engines, Nautilus maintains working memory across requests within a session:

  • Cumulative exposure — "This agent accessed PII from 3 sources — deny the 4th."
  • Cross-agent handoffs — "Agent A is passing secret data to Agent B who has unclassified clearance — deny."
  • Escalation detection — "Anomalous access pattern detected — escalate for forensic review."

Run the handoff refusal yourself with nautilus demo — no config, no adapter, no database.

Integration Shapes

As a library

from nautilus import Broker
with Broker.from_config("nautilus.yaml") as broker:
    response = broker.request("agent-id", "intent", context)

As a REST sidecar

nautilus serve --config nautilus.yaml --transport rest --bind 0.0.0.0:8000
curl -H "X-API-Key: $KEY" -X POST localhost:8000/v1/request \
  -d '{"agent_id": "agent-alpha", "intent": "...", "context": {...}}'

As an MCP server

nautilus serve --config nautilus.yaml --transport mcp

Air-gapped mode

nautilus serve --config nautilus.yaml --air-gapped

Configuration

A nautilus.yaml declares sources, rules, analysis, audit, and attestation:

sources:
  - id: main-db
    type: postgres
    description: "Customer orders"
    classification: confidential
    data_types: [users, orders]
    allowed_purposes: [support]
    connection: ${DATABASE_URL}
    table: public.orders

agents:
  support-bot:
    id: support-bot
    clearance: confidential
    default_purpose: support

rules:
  user_rules_dirs: [./rules/]

attestation:
  enabled: true

audit:
  path: ./audit.jsonl

Documentation

Full documentation is available at krakennet.github.io/nautilus.

  • Fathom — Deterministic reasoning runtime that powers Nautilus routing
  • Bosun — Agent governance built on Fathom (fleet analysis, compliance attestation)

Development

git clone https://github.com/KrakenNet/nautilus.git
cd nautilus
uv sync
uv run pytest -m unit            # fast suite, no containers
uv run pytest -m integration     # full e2e, boots PostgreSQL via testcontainers
uv run ruff check && uv run ruff format --check && uv run pyright
uv run mkdocs serve              # docs preview

See CHANGELOG.md for release notes.

Contributing

We welcome contributions! Please read our Contributing Guide before submitting a pull request. All contributors are expected to follow our Code of Conduct.

Security

To report a security vulnerability, please see our Security Policy. Do not open a public issue for security concerns.

Star History

Star History Chart

License

Apache-2.0 — see LICENSE for details.

Metadata

Release files for nautilus-rkm 0.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nautilus-rkm 0.3.0
File Size Uploaded Provenance Actions
nautilus_rkm-0.3.0.tar.gz 420.9 kB With provenance Details for nautilus_rkm-0.3.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nautilus-rkm 0.3.0
File Interpreter ABI Platform Actions
nautilus_rkm-0.3.0-py3-none-any.whl Python 3 none any Details for nautilus_rkm-0.3.0-py3-none-any.whl

Total release size: 923.2 kB

Release files / nautilus_rkm-0.3.0.tar.gz

Download URL nautilus_rkm-0.3.0.tar.gz
Size 420.9 kB
Tags Source
SHA-256 checksum
How to use checksums
cb804b0f77cef55c65f05268a53e351619367068d80f7f42f5da24ea3c4c48e2
BLAKE2b-256 checksum
How to use checksums
7c113989b48e93224bc610d5afea5b8039b5763aea7283f878f948f34a8fc822
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / nautilus_rkm-0.3.0-py3-none-any.whl

Download URL nautilus_rkm-0.3.0-py3-none-any.whl
Size 502.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
997a005df22a5d00ff2a7ca985bff45a7a404d95c127d7ea0566ee7c05b6a018
BLAKE2b-256 checksum
How to use checksums
b3ce7fe00f23a810b47cbf4e959bce6e5850bd84684963d97e2e1f03bb202731
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Security for nautilus-rkm 0.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for nautilus_rkm-0.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page