Skip to main content

Orvin

Backend for a voice-native memory service for voice AI agents, wired for Neon-backed Postgres, local open-source embeddings, and local Redis.

Current rebuild docs for the next architecture step live in docs/README.md. Multi-agent voice integration guidance lives in docs/voice-agent-integration.md.

The target product abstraction is channel-agnostic:

  • voice agents are the core product surface
  • interactions are the core runtime unit
  • calls are one supported channel, not the main product definition

Stack

  • FastAPI
  • Python 3.12+
  • Neon Postgres + pgvector
  • Local Redis (working memory and context cache)
  • FastEmbed with BAAI/bge-small-en-v1.5 (local open-source embeddings)
  • Alembic migrations

Install

pip install orvin

Focused install surfaces are exposed as extras where they actually add dependencies:

pip install "orvin[v2]"
pip install "orvin[dev]"

For local repo testing before PyPI publish:

pip install .
pip install ".[v2]"

You can also run the operator surfaces with module entrypoints:

python -m orvin.cli --help
python -m orvin.mcp_server --help

Run

alembic upgrade head
uvicorn orvin.main:app --reload --app-dir src

For local Redis:

redis-server --daemonize yes --port 6379 --save '' --appendonly no --dir /tmp

For local-only development without auth, explicitly opt in:

$env:ORVIN_ALLOW_UNAUTHENTICATED='true'

For any shared or internet-facing deployment, configure ORVIN_API_KEYS.

Local stack with Docker

Copy .env.example to .env, then run:

docker compose up --build

This starts:

  • pgvector-enabled Postgres
  • Redis
  • the FastAPI API service
  • the outbox worker

The API will be reachable at http://localhost:8000, and GET /v1/meta exposes runtime, auth, and SDK surface metadata for tooling.

For the standalone test dashboard:

cd dashboard
npm install
npm run dev

Current status

This implementation includes:

  • API scaffold
  • first-party CLI commands for runtime, inspection, ingest, and seeding
  • MCP stdio server with workspace-scoped read tools, resources, and opt-in ingest tools
  • request/response schemas
  • domain models
  • Postgres repository
  • SQLAlchemy models for the Postgres path
  • Alembic migrations for interaction runtime fields, outbox retries, and idempotency
  • local embedding pipeline via FastEmbed
  • hybrid pgvector + full-text search
  • Redis-backed session/context cache
  • thin hot-path ingest with transactional writes and idempotency keys
  • outbox-driven async jobs for memory extraction, embedding, episode creation, commitment reconciliation, and interaction consolidation
  • durable-memory lifecycle handling for hypothesis promotion, supersession, repeated evidence, and tool-linked commitments
  • evidence-aware context/search responses with confidence and retrieval explanations
  • channel-aware retrieval policy, reactive-retrieval gating, and search caching
  • debugger endpoints for memory evidence, audit trails, hot-state recovery, and runtime metrics
  • issue extraction, repair history, acoustic hint memory, stale-commitment surfacing, and stronger episode summaries
  • structured memory-intelligence pipeline with multilingual extraction, evidence spans, confidence calibration, interaction-level turn bundles, and optional model-backed extraction plus verification
  • versioned memory history, contradiction relationships, participant event feeds, structured profile synthesis, and export/import/privacy tooling
  • workspace write quota enforcement for high-volume ingest and batch import paths
  • replay fixtures plus eval-oriented extraction tests and fixture-driven quality checks
  • managed API key generation, revocation, and admin endpoints for distribution testing
  • standalone Next.js operator dashboard for API keys, SDK snippets, MCP setup, connectors, documents, participants, and ingest playgrounds

Configuration is loaded from .env. Use .env.example as the baseline and point ORVIN_DATABASE_URL at your own Postgres instance or Neon branch.

Security

  • All non-health API routes require an API key unless ORVIN_ALLOW_UNAUTHENTICATED=true is explicitly set.
  • API keys are accepted via Authorization: Bearer <key> or X-API-Key: <key>.
  • ORVIN_API_KEYS remains the bootstrap/admin key path.
  • Managed keys created through /v1/admin/api-keys are stored by the platform and can be revoked independently.
  • /v1/health and /v1/health/ready are readiness checks.
  • /v1/health/live is a lightweight liveness check.

Fingerprinting

Every response includes:

  • X-Orvin-Fingerprint
  • X-Orvin-License
  • X-Orvin-Edition
  • X-Orvin-Version

This gives upstream AGPL builds an identifiable release fingerprint.

CLI and MCP

The repo now ships two operator-facing entrypoints:

  • orvin for CLI operations such as health, context get, search, serve-api, and serve-worker
  • orvin keys for managed API key list/create/revoke flows
  • orvin-mcp for a stdio MCP server that wraps the same canonical API and local service layer
  • orvin.OrvinClient as the first-party Python SDK surface
  • sdks/typescript as the first-party TypeScript SDK package
  • dashboard as the standalone testing UI

Remote MCP mode requires ORVIN_BASE_URL plus an API key. Local MCP mode is opt-in via --local or ORVIN_MCP_LOCAL_MODE=true.

Examples:

orvin health
orvin-mcp --local
orvin-mcp --base-url https://orvin.example --api-key $env:ORVIN_API_KEYS

By default the MCP server exposes only safe read tools and resources. Enable debug tools with --enable-debug-tools and enable mutating ingest tools with --enable-write-tools.

Examples

First-party examples live in examples/README.md.

SDK source now lives in:

  • src/orvin/client.py for Python
  • sdks/typescript for TypeScript

The TypeScript SDK is packaged as @orvin/sdk:

npm install @orvin/sdk

The main Track 8 examples are:

Test

$env:PYTHONPATH='src'; pytest -q

License

This project is licensed under AGPL-3.0-only. If you modify and run this server software for users over a network, the AGPL requires you to provide the corresponding source for that modified server program.

Metadata

Release files for orvin 0.1.2

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

Source distribution (sdist)

Source distribution for orvin 0.1.2
File Size Uploaded Provenance Actions
orvin-0.1.2.tar.gz 286.2 kB Without provenance Details for orvin-0.1.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for orvin 0.1.2
File Interpreter ABI Platform Actions
orvin-0.1.2-py3-none-any.whl Python 3 none any Details for orvin-0.1.2-py3-none-any.whl

Total release size: 606.1 kB

Release files / orvin-0.1.2.tar.gz

Download URL orvin-0.1.2.tar.gz
Size 286.2 kB
Tags Source
SHA-256 checksum
How to use checksums
abb75ba548c6dcd0a620066f01d44472860e8f4e07a8c58534318201cd30d317
BLAKE2b-256 checksum
How to use checksums
f021b8a1d1db749fc305c38b2409269e25a6c6a1bc9e513fd114325b3da66b2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / orvin-0.1.2-py3-none-any.whl

Download URL orvin-0.1.2-py3-none-any.whl
Size 319.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
df696c9250c33bc4c52803ce9d3f6373b6d397d6950e459f08f7e68b2270cec4
BLAKE2b-256 checksum
How to use checksums
61319e4c7e0b64440db50bfe2effdac7f6b4d85e5ca6daafc452ec25987d2406
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Security for orvin 0.1.2

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files No provenance

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