← Back to Attestor

# Privacy Policy

Last updated: April 27, 2026

## Summary

Attestor stores all data in infrastructure you control — either entirely on-device or in a database you administer. Nothing leaves your network unless you explicitly opt into a cloud provider for embeddings or LLM-based extraction.

## Data Storage

Memories, entity graphs, and vector embeddings live in the storage backends you configure. The default topology is fully self-hosted:

- Document & vector store — PostgreSQL 16 with the `pgvector` extension (source of truth for content, tags, entity, provenance, confidence, and dense embeddings)
- Graph store — Neo4j 5 with the GDS plugin (entity nodes plus typed edges such as `uses`, `authored-by`, `supersedes`)
- Configuration — `~/.attestor.toml` on your machine
- Local Docker option — `attestor setup local` generates a Docker Compose file that brings both services up on your laptop

Postgres and Neo4j can also be swapped for any of the supported alternatives (AlloyDB, ArangoDB, AWS DynamoDB + OpenSearch + Neptune, Azure Cosmos DB, GCP AlloyDB) — the storage role still runs in your cloud account, never ours.

## No Data Collection

Attestor does not:

- Send any data to attestor-operated servers (we don’t run any)
- Collect usage analytics or telemetry
- Require account registration
- Phone home or check licenses
- Access any network resources you didn’t configure

## Embeddings

By default Attestor computes embeddings using local Ollama (`bge-m3`, 1024-D) on `http://localhost:11434` — nothing leaves the machine. If a cloud embedding provider is configured (OpenAI `text-embedding-3-large`, AWS Bedrock, Azure OpenAI, or Vertex AI), text is sent to that provider under your account’s privacy terms. Provider selection is fully under your control via the `ATTESTOR_EMBEDDING_PROVIDER` environment variable.

## Claude Code Integration

When used as a Claude Code plugin or MCP server, Attestor runs locally alongside Claude Code. Memory data flows between Attestor and Claude Code on your machine via the Model Context Protocol (stdio). No memory data is sent to Anthropic’s servers — only your conversation with Claude is sent, which may include recalled memories that Claude Code injects into the conversation context.

## Third-Party Services

Attestor has no built-in third-party telemetry or analytics. Optional features that do reach the network — cloud embedding providers, LLM-based extraction (OpenRouter / OpenAI / Anthropic), or the LongMemEval benchmark runners — are off by default and require an API key you provide and control. The default Postgres + Neo4j topology requires no third-party service.

## Open Source

Attestor is open source under the MIT license. You can audit the complete source code at github.com/bolnet/attestor.

## Contact

For privacy questions, open an issue at github.com/bolnet/attestor/issues.