Skip to main content

Nexus = filesystem/context plane.

Project description

Nexus

The filesystem & context plane for AI agents

Give every agent one place to read, write, search, remember, and collaborate — from a single-file script to a fleet of thousands.

CI PyPI Python 3.12+ License Discord

Documentation · Quickstart · Examples · PyPI · Roadmap


Why Nexus

Every agent framework gives you tool calling. None gives you a shared filesystem. Without one, agents duplicate files, lose context between runs, step on each other's writes, and can't discover what's already been built.

Nexus fixes this. One VFS-style interface — start embedded in a single Python process, scale to a daemon-backed deployment with auth, permissions, federation, and multi-tenant isolation. No code changes.

How it works

┌─────────────────────────────────────────────────────────────────────────┐
│  BRICKS (runtime-loadable)                                              │
│  ReBAC · Auth · Agents · Delegation · Search · Memory · Governance      │
│  Workflows · Pay · MCP · Snapshots · Catalog · Identity · 25+ more      │
└─────────────────────────────────────────────────────────────────────────┘
                              ↓ protocol interface
┌─────────────────────────────────────────────────────────────────────────┐
│  KERNEL                                                                 │
│  VFS · Metastore · ObjectStore · Syscall dispatch · Pipes ·             │
│  Lock manager · Three-phase write (LSM hooks) · CAS dedup              │
└─────────────────────────────────────────────────────────────────────────┘
                              ↓ dependency injection
┌─────────────────────────────────────────────────────────────────────────┐
│  DRIVERS                                                                │
│  redb · PostgreSQL (pgvector) · S3 · GCS · Dragonfly · Zoekt · gRPC    │
└─────────────────────────────────────────────────────────────────────────┘

Kernel never changes. Drivers swap at config time. Bricks mount and unmount at runtime — like insmod/rmmod for an AI filesystem.

Get started in 30 seconds

Option A: Docker (recommended)

pip install nexus-ai-fs                       # CLI + SDK
nexus init --preset demo                       # writes nexus.yaml + nexus-stack.yml
nexus up                                       # pulls image, starts Nexus + Postgres + Dragonfly + Zoekt
eval $(nexus env)                              # load connection vars into your shell

Open http://localhost:2026. That's it.

Option B: Embedded (no Docker)

pip install nexus-ai-fs
import asyncio, nexus

async def main():
    nx = await nexus.connect(config={"data_dir": "./my-data"})

    await nx.write("/notes/meeting.md", b"# Q3 Planning\n- Ship Nexus 1.0")
    print((await nx.read("/notes/meeting.md")).decode())

    nx.close()

asyncio.run(main())

Option C: CLI

nexus write /hello.txt "hello world"
nexus cat /hello.txt
nexus ls /
nexus search query "hello" --mode hybrid
nexus versions history /hello.txt

Terminal UI

The TUI is a separate TypeScript package built on OpenTUI:

bunx nexus-tui                                         # connects to localhost:2026
bunx nexus-tui --url http://remote:2026 --api-key KEY  # connect to remote instance

File explorer, API inspector, monitoring dashboard, agent lifecycle management, and more — all from your terminal.

What you get

Capability What it does How agents use it
Filesystem POSIX-style read/write/mkdir/ls with CAS dedup Shared workspace — no more temp files
Versioning Every write creates an immutable version Rollback mistakes, diff changes, audit trails
Snapshots Atomic multi-file transactions Commit or rollback a batch of changes together
Search Keyword + semantic + hybrid, powered by Zoekt + pgvector Find anything by content or meaning
Memory Persistent agent memory with consolidation + versioning Remember across runs and sessions
Delegation SSH-style agent-to-agent permission narrowing Safely sub-delegate work with scoped access
ReBAC Relationship-based access control (Google Zanzibar model) Fine-grained per-file, per-agent permissions
MCP Mount external MCP servers, expose Nexus as 30+ MCP tools Bridge any tool ecosystem
Workflows Trigger → condition → action pipelines Automate file processing, notifications, etc.
Governance Fraud detection, collusion rings, trust scores Safety rails for autonomous agent fleets
Pay Credit ledger with reserves, policies, approvals Metered compute for multi-tenant deployments
IPC Inbox-based inter-agent messaging via pipes Agents talk to each other without polling
Federation Multi-zone Raft consensus with mTLS TOFU Span data centers without a central coordinator
All bricks and system services →

Bricks (runtime-loadable): Access Manifests · Auth (API key, OAuth, mTLS) · Catalog (schema extraction) · Context Manifests · Delegation · Discovery · Identity (DID + credentials) · IPC (pipes) · MCP · Mount · Parsers (50+ formats via MarkItDown) · Pay · Portability (import/export) · ReBAC · Sandbox (Docker) · Search · Share Links (capability URLs) · Snapshots · Task Manager · TUS Uploads (resumable) · Versioning · Workflows · Workspace

System services: Agent Registry · Agent Runtime · Event Bus · Event Log · Namespace · Scheduler (fair-share, priority tiers) · Sync · Lifecycle

Framework integrations

Every major agent framework works out of the box:

Framework What the example shows Link
Claude Agent SDK ReAct agent with Nexus as tool provider examples/claude_agent_sdk/
OpenAI Agents Multi-tenant agents with shared memory examples/openai_agents/
LangGraph Permission-scoped workflows examples/langgraph_integration/
CrewAI Multi-agent collaboration on shared files examples/crewai/
Google ADK Agent Development Kit integration examples/google_adk/
E2B Cloud sandbox execution examples/e2b/
CLI 40+ shell demos covering every feature examples/cli/

Deployment options

Mode What Who it's for
Embedded nexus.connect() — in-process, zero infrastructure Scripts, notebooks, single-agent apps
Shared daemon nexus init --preset shared && nexus up Teams, multi-agent systems, staging
Federation Multi-zone Raft consensus across data centers Production fleets, edge deployments

nexus init presets

Preset Services Auth Use case
local None (embedded) None Single-process scripts, notebooks
shared Nexus + Postgres + Dragonfly + Zoekt Static API key Team dev, multi-agent staging
demo Same as shared Database-backed Demos, seed data, evaluation
# Embedded (no Docker)
nexus init                                    # writes nexus.yaml for local embedded mode

# Shared daemon
nexus init --preset shared                    # writes nexus.yaml + nexus-stack.yml
nexus up                                      # pulls image, starts stack, waits for health
eval $(nexus env)                             # load NEXUS_URL, NEXUS_API_KEY, etc.

# Demo with seed data
nexus init --preset demo && nexus up

# Add optional services
nexus init --preset shared --with nats --with mcp --with frontend

# GPU acceleration
nexus init --preset shared --accelerator cuda

# Pin to a specific version
nexus init --preset shared --image-tag 0.9.4

# Build from local source (for contributors)
nexus up --build                              # build + tag as nexus:local-{hash}
nexus up                                      # reuses local build (no pull)
nexus up --pull                               # discard local build, pull from remote

# Stack lifecycle
nexus stop                                    # pause containers (fast, no teardown)
nexus start                                   # resume paused containers (fast)
nexus down                                    # stop and remove containers
nexus logs                                    # tail logs
nexus restart                                 # down + up
nexus upgrade                                 # pull latest image for your channel

# Environment variables
nexus env                                     # print export statements for your shell
nexus env --json                              # machine-readable
nexus env --dotenv > .env                     # write .env file
nexus run python my_agent.py                  # run command with env vars injected

Docker image

Published to GHCR (multi-arch: amd64 + arm64):

ghcr.io/nexi-lab/nexus:stable          # latest release
ghcr.io/nexi-lab/nexus:edge            # latest develop
ghcr.io/nexi-lab/nexus:<version>       # pinned (e.g. 0.9.3)
ghcr.io/nexi-lab/nexus:stable-cuda     # GPU variant

Storage architecture

Four pillars, separated by access pattern — not by domain:

Pillar Interface Capability Required?
Metastore MetastoreABC Ordered KV, CAS, prefix scan, optional Raft Yes — sole kernel init param
ObjectStore ObjectStoreABC Streaming blob I/O, petabyte scale Mounted dynamically
RecordStore RecordStoreABC Relational ACID, JOINs, vector search Services only — optional
CacheStore CacheStoreABC Ephemeral KV, pub/sub, TTL Optional (defaults to null)

The kernel starts with just a Metastore. Everything else is layered on without changing a line of kernel code.

Cold tiering (Issue #3406)

Sealed CAS volumes are automatically uploaded to S3/GCS when they go quiet, cutting cold storage costs by ~80%. The local redb index is retained for O(1) lookups; reads use a single HTTP range request.

Add to your nexus.yaml:

tiering:
  enabled: true
  quiet_period: 3600          # seconds before a sealed volume is tiered
  min_volume_size: 104857600  # 100 MB minimum
  cloud_backend: s3           # or gcs
  cloud_bucket: my-bucket

Features: write-ahead crash recovery, LRU volume cache with burst detection, streaming downloads (no full-volume RAM buffering), automatic rehydration for burst read patterns.

Credentials: AWS env vars / ~/.aws/credentials / IAM role for S3, or Application Default Credentials for GCS.

nexus-fs (slim package): Tiering requires nexus-ai-fs (full package). The slim nexus-fs package excludes nexus/services/ where the tiering service lives. If using nexus-fs, install cloud extras separately: pip install nexus-fs[s3] or nexus-fs[gcs].

Contributing

git clone https://github.com/nexi-lab/nexus.git && cd nexus
uv python install 3.14
uv sync --extra dev --extra test
uv run pre-commit install
uv run pytest tests/

For semantic search work: uv sync --extra semantic-search For Rust extensions: maturin develop --release -m rust/nexus_pyo3/Cargo.toml

See CONTRIBUTING.md for the full guide.

Troubleshooting

ModuleNotFoundError: No module named 'nexus'

Install from PyPI: pip install nexus-ai-fs. The package name on PyPI is nexus-ai-fs, not nexus.

maturin develop fails at the repo root

Point maturin at a crate manifest: maturin develop --release -m rust/nexus_pyo3/Cargo.toml

faiss-cpu resolution fails

Only install semantic search extras on platforms with compatible txtai/faiss-cpu wheels: pip install "nexus-ai-fs[semantic-search]"

License

Apache License 2.0 — see LICENSE for details.

Built by Nexi Labs.

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

nexus_ai_fs-0.9.16.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

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

nexus_ai_fs-0.9.16-py3-none-any.whl (3.1 MB view details)

Uploaded Python 3

File details

Details for the file nexus_ai_fs-0.9.16.tar.gz.

File metadata

  • Download URL: nexus_ai_fs-0.9.16.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nexus_ai_fs-0.9.16.tar.gz
Algorithm Hash digest
SHA256 0f186e4dc6ca886e802dc41c12276d1b9710420efa20a212a7c368e83414bf94
MD5 486e6b3e2e561e152ac089abc3779615
BLAKE2b-256 4634d22b1ffb0765e37e7ce1fa53036b15d78c4976ed728ad0d3a03df245da42

See more details on using hashes here.

File details

Details for the file nexus_ai_fs-0.9.16-py3-none-any.whl.

File metadata

  • Download URL: nexus_ai_fs-0.9.16-py3-none-any.whl
  • Upload date:
  • Size: 3.1 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for nexus_ai_fs-0.9.16-py3-none-any.whl
Algorithm Hash digest
SHA256 5cd7f0e747bfc5cbddab680de83e8de1b26f638b58e839df25d6fee8da27c099
MD5 f87b0dd299e18a597fe625ffcde7df66
BLAKE2b-256 120cd2b815bc47309b607f999290fab69ac6dabd0acea4ed0555f2f8b6823406

See more details on using hashes here.

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