Skip to main content

Empirica

We Gave AI a Mirror. Now It Measures What It Believes.

Version PyPI Python License

Epistemic infrastructure for AI — measurement, memory, and calibration across sessions.

Empirica tracks what AI knows, gates what it does, and compounds learning across session boundaries. It measures the gap between what AI predicts and what's true — making AI agents measurably more reliable.

Training & Guides | CLI Reference | Architecture

Important: Empirica is an AI measurement framework. It has no cryptocurrency, token, coin, or blockchain component. Any token using the Empirica name (including "$EMPIRICA" on Solana) is unauthorized and not affiliated with this project or Empirica AI GmbH.


The Problem

AI coding agents today have no self-awareness about what they know:

  • Forgets between sessions — same questions, same dead ends, every time
  • Acts before understanding — edits your code without knowing the architecture
  • Can't tell you when it's guessing — no distinction between knowledge and confabulation
  • No audit trail — reasoning evaporates with the context window

What Empirica Does

Capability What You Experience
Measures before acting AI investigates your codebase before touching it. The Sentinel gate blocks edits until understanding is demonstrated
Remembers across sessions Findings, dead-ends, and learnings persist in a 4-layer memory system. Session 3 starts where Session 2 left off
Prevents confident mistakes The CHECK gate uses domain-aware thresholds scaled by criticality, tightened by the calibration of the model doing the work — cybersec/high is stricter than default/low
Shows confidence in real-time Live statusline in your terminal, compact by default: empirica │ CHECK 78% │ G3 U5 A2 F4/D1 │ Δ ✓ │ 41%ctx │ 🔍 investigate - 🧠 Sonnet 5.5 (stage and confidence, open goals/unknowns/assumptions, what you logged this transaction, a learning mark, context, and investigate or act). One command switches to the detailed view
Calibrates against reality Three-vector model: self-assessed, observed (from deterministic checks), and AI-reasoned grounded state with rationale. Domain compliance loops iterate until all checks pass
Tracks your codebase Temporal entity model auto-extracts functions, classes, and imports from every file edit — the AI knows what's alive and what's stale
Works through natural language You describe tasks normally. The AI operates the measurement system automatically
Optional: coordinates with peer AIs Cross-Claude mesh via Cortex (opt-in) — peer AIs propose work, ECO accepts/declines, completion handshakes carry commit SHAs. A persistent listener wakes idle sessions on inbox events. Empirica core works standalone without this — see Cross-AI Mesh below for the ecosystem layer

How You Use It

You talk to your AI normally. Empirica works in the background:

You:      "Fix the authentication bug in the login flow"

Empirica: [AI investigates → logs findings → passes Sentinel gate → implements fix → measures learning]

You see:   empirica  │ POST 85% │ G1 U2 A0 F3/D1 │ Δ … │ 41%ctx │ 🔨 act - 🧠 Sonnet 5.5

You direct. The AI measures.

Empirica's CLI has 240+ commands spanning investigation, measurement, calibration, and memory — like a cockpit instrument panel. You don't need to learn any of them. The AI reads the instruments, operates the controls, and reports back in natural language. The statusline gives you the flight data at a glance.

For power users, direct CLI access is always available: empirica goals-list, empirica calibration-report, empirica project-search --task "...", and more.

Learn the full workflow: getempirica.com has interactive training, guides, and deep explanations of every concept.


Quick Start

pip install empirica
empirica setup

Then just start working. The hooks, Sentinel, system prompt, statusline, and MCP server are all configured automatically.

empirica setup --harness picks the harness. It resolves from --harness, else $EMPIRICA_HARNESS, else claude-code. An unsupported harness is refused by name and nothing is written — previously it wrote ~/.claude/ regardless and reported success, which on any other harness configured a path that harness never reads.

Codex is refused deliberately: ecodex is self-provisioning (it vendors the plugin into its own binary), so there is nothing here to write, and the refusal points you at that pipeline. setup-claude-code remains as an alias and pins claude-code regardless of environment.

See Claude Code Setup for details — including a "What the hooks inject" section for Claude sessions that want to see the contract (which hook fires when, what it adds to the AI's context, source pointers for every emission) before agreeing to install.

Already have Claude Code configured? Use --force to replace your default Claude Code settings with Empirica's epistemic hooks. Without --force, setup only writes files that don't already exist — so if you've already used Claude Code, the default internals stay in place and Empirica's hooks won't activate.

empirica setup --force

--force replaces hooks in settings.json but only removes Empirica's own hooks — hooks from other plugins (Railway, Superpowers, etc.) are preserved.

Alternative Installation Methods

Homebrew (macOS)
brew tap empiricaai/tap
brew install empirica
empirica setup
Docker
# Security-hardened Alpine image (~276MB, recommended)
docker pull nubaeon/empirica:1.14.12-alpine

# Standard image (Debian slim, ~414MB)
docker pull nubaeon/empirica:1.14.12

# Run
docker run -it -v $(pwd)/.empirica:/data/.empirica nubaeon/empirica:1.14.12 /bin/bash
Manual / Other AI Platforms
pip install empirica
pip install empirica-mcp        # MCP Server (for Cursor, Cline, etc.)
cd your-project && empirica project-init

The CLI works standalone on any platform. The full epistemic workflow (epistemic transactions, Sentinel, calibration) requires loading the system prompt into your AI — the easiest path is empirica setup, which wires the lean prompt into ~/.claude/empirica-system-prompt.md and references it from your ~/.claude/CLAUDE.md. See Claude Code Setup for details.

First Session

empirica onboard   # Interactive walkthrough of the full workflow

Or just start working — with Claude Code hooks active, the AI manages the epistemic workflow automatically.

Removing it

empirica setup writes to eleven locations, and six of them are files Claude Code owns and writes continuously. So uninstall shows you the plan first and only removes what is actually ours:

empirica setup --uninstall           # the plan — names every location, changes nothing
empirica setup --uninstall --apply   # remove, reporting anything it refused
Removed the plugin directory, our system-prompt file, active_work.json, the listener service
Edited settings.json, ~/.claude.json, the plugin registries — our keys only, yours untouched
Reported, never touched the @include line in your own ~/.claude/CLAUDE.md

That last row is deliberate. Setup appended one line to a file you author. If you have reorganised around it, we cannot tell which edit is safe — so uninstall tells you the line number and leaves the decision to you.

Two more things it will not do: it refuses rather than writing a shared config it could not parse, and it refuses if Claude Code modified the file while uninstall was preparing its write. In both cases nothing is removed and it says why. Your .empirica/ project data — findings, goals, git notes — is never touched; this removes the integration, not your epistemic record.


The Measurement Architecture

Empirica works through nested abstraction layers:

Plan
 └── Transaction 1 (Goal A)
      ├── NOETIC: investigate, search, read → findings, unknowns, dead-ends
      ├── CHECK: Sentinel gate → proceed / investigate more
      ├── PRAXIC: implement, write, commit → goals completed
      └── POSTFLIGHT: measure learning delta → persists to memory
 └── Transaction 2 (Goal B, informed by T1's findings)
      └── ...

Plans decompose into transactions — one per goal or Claude Code task. Each transaction is a noetic-praxic loop: investigate first (noetic), then act (praxic), with the Sentinel gating the transition. Along the way, the AI collects and reads artifacts (findings, unknowns, assumptions, dead-ends, decisions, mistakes, falsifiers) while using semantic search to surface relevant epistemic patterns and anti-patterns from the project's history. Top artifacts are ranked by confidence and fed into each project's MEMORY.md as a hot cache.

The Epistemic Transaction Cycle

PREFLIGHT ────────► CHECK ────────► POSTFLIGHT
    │                 │                  │
 Baseline         Sentinel           Learning
 Assessment        Gate               Delta
    │                 │                  │
 "What do I      "Am I ready      "What did I
  know now?"      to act?"         learn?"

PREFLIGHT: AI assesses its knowledge state before starting work. CHECK: Sentinel gate validates readiness before allowing code edits. POSTFLIGHT: AI measures what it learned, creating a delta that persists.


Live Statusline

With Claude Code hooks enabled, you see the AI's epistemic state in real time. The default is one compact line:

 empirica  │ CHECK 80% │ G3 U5 A2 F4/D1 │ Δ … │ 41%ctx │ 🔍 investigate - 🧠 Sonnet 5.5
Cell Meaning
empirica (white on black) The practice (project)
CHECK 80% Cascade stage and overall confidence. The stage runs PRE → CHECK → POST → TEST, and moves to TEST once the post-test has graded the transaction
G3 U5 A2 Open goals, open unknowns, open assumptions
F4/D1 Findings and decisions logged in this transaction
Δ … Learning mark from the grounded post-test: 🔥 very good, ✓ good, - average, ✗ below average, … not graded yet, ? too little evidence to rate
41%ctx Context window used
🔍 investigate / 🔨 act - model Whether the work is noetic or praxic right now, then the model

One command switches to a detailed view, and back:

echo expanded > ~/.empirica/statusline_mode   # confidence, threshold, phase composite, K/C vectors, Δ
echo compact  > ~/.empirica/statusline_mode   # the default

The modes are compact (default), expanded, basic, learning and full; EMPIRICA_STATUS_MODE sets one when the file is absent. All of them are described in the statusline reference.


The 13 Epistemic Vectors

These vectors emerged from 600+ real working sessions across multiple AI systems. They measure the dimensions that consistently predict success or failure in complex tasks.

Tier Vector What It Measures
Foundation know Domain knowledge depth
do Execution capability
context Access to relevant information
Meta engagement Is the AI actively processing or disengaged?
uncertainty Explicit doubt tracking
Phase-dependent clarity How clear is the understanding?
coherence Do the pieces fit together?
signal Signal-to-noise in available information
density Information richness
state Current working state
change Rate of progress/change
completion Task completion level
impact Significance of the work

Deep dive: Epistemic Vectors Explained


How It Works With Claude Code

Empirica doesn't replace or reinvent anything Claude Code already does. Claude Code owns tasks, plans, memory, and projects. Empirica adds the measurement layer on top:

Claude Code Does Empirica Adds
Task management Epistemic goals with measurable completion
Plan mode Investigation phase with Sentinel gating — no edits until understanding is verified
MEMORY.md Auto-curated hot cache ranked by epistemic confidence
Context window 4-layer memory that survives compaction and persists across sessions
Code editing Grounded calibration — was the AI's confidence justified by test results?
Subagent spawning Bounded autonomy with delegated work counting and budget tracking

The result: Claude Code's native capabilities, enhanced with measurement, gating, and calibration feedback that compounds over time.

21 skills ship with the plugin — the transaction discipline, graph gardening, the quality sweep, mesh messaging, and more. They are lazy: a skill does nothing until it loads, so knowing when each fires matters more than knowing what it holds. → Skills reference


Cross-AI Mesh (Optional Ecosystem Layer)

This section describes an optional layer. Empirica core — measurement, calibration, artifacts, goals, project-search, sentinel gating — works fully standalone. The mesh is an opt-in capability for users who run multiple Claude sessions across projects and want them to coordinate as peers. If you only use one AI in one repo, skip this section.

The mesh runs on top of Empirica Cortex (proprietary serving layer) plus an optional browser extension for ECO triage. At a high level:

empirica AI ── proposes work ──► ECO Accept/Decline ──► peer AI wakes + acts
                                                             │
                              completion handshake (commit SHA)
                                                             │
empirica AI ◄────────── outbox/completed event ──────────────┘
Capability What it does
Mesh proposals (two flavors) A noetic flavor is auto-accepted (FYI / question / discussion). Praxic flavors (code change / architecture / investigation) are ECO-gated — they wait for an Accept/Decline decision before the target AI acts
empirica mailbox reply One CLI verb closes the AI-to-AI handshake atomically — single-step completion ack instead of two
Persistent listener service systemd-user / launchd daemon holds a push stream open. Idle sessions wake the moment a peer's proposal is decided, not on next user prompt
Canonical loops (opt-in) Wake-on-event is the standing trigger, so nothing is scheduled by default. Inbox polling (30s adaptive) exists for harnesses that cannot do wake-on-event, and daily housekeeping is a cron loop — both are opt-in, registered with empirica loop register. See Trigger Model

The browser-side ECO surface (Accept/Decline, inbox triage, publish review) lives in the proprietary Empirica Extension. The full API surface for proposals, listener events, and the trust pipeline is documented at getempirica.com.


Mesh + Shared Epistemic Record

Requires Empirica Cortex (proprietary). Everything in this section — mesh proposals, the persistent listener, the Shared Epistemic Record, and the empirica mesh command cluster — is a Cortex-served layer. It is not available in empirica core on its own; without Cortex, empirica is a single-AI measurement layer.

The cross-AI coordination layer. Practitioners in different practices coordinate not via text-only chat but via epistemic envelopes that carry calibrated state, source-tagged provenance, noetic/praxic intent, and workflow position.

  • Practitioner / practice framing — practices are epistemic specializations that persist, and practitioners (the LLMs) inhabit them. Artifacts accrue to the practice; calibration accrues to the practitioner inhabiting it. See MESH_CONCEPTS.md.
  • Shared Epistemic Record (SER) — cortex-resident shared-state object for coordination across ≥2 practitioners. Goals stay per-practitioner; SER carries the joint state (coordination_state, role-tiered participants, escalate-on-silence). Three actions: create_ser / transition_ser / ser_ack. Spec at empirica-cortex/docs/architecture/SHARED_EPISTEMIC_RECORD.md.
  • empirica mesh command cluster — unified diagnostic + control surface across listener instances + the optional cortex bridge:
    empirica mesh status              # per-instance health (local + cortex bridge)
    empirica mesh diagnose <ai_id>    # deep diagnostic + suggested fix command
    empirica mesh restart <ai_id>     # systemd/launchd restart + verify
    empirica mesh on|off <ai_id>      # install + start | stop the listener
    empirica mesh tail [<ai_id>]      # live-tail loop_fires.log
    
  • Listener self-heal — in-process watchdog terminates stale curl streams (TCP-zombie detection at 120s by default); HTTP 429 detection applies long backoff with catch-up poll continuing during the window.
  • Mesh Routing Protocol v0 locked four-way with cortex + extension + mesh-support. L1/L2/L3 trust model, server-stamped layer annotation, participant-scoped thread reads.

Without Cortex, empirica is a single-AI measurement layer — the proposals, listener, SER, and empirica mesh cluster above are all Cortex-dependent. Core does ship a minimal local empirica message-* git-notes primitive for passing notes between your own sessions, but that is note-passing, not the coordinating mesh. Everything that makes empirica valuable on its own — measurement, calibration, artifacts, goals, project-search, sentinel gating — works fully standalone.


Practice Model + Entity Graph

Empirica's workspace stores entities (projects, contacts, organisations, engagements, users) in entity_registry with typed edges in entity_memberships. The Practice Model frames this consistently:

Term Maps to
Practitioner the AI working on the project (you)
Practice the empirica project itself
Agent a subagent spawned during the work

Four CLI verbs query the graph without raw SQL:

empirica entity-list [--type project|contact|organization|engagement|user]
empirica entity-show <type:id>          # full record + incoming/outgoing edges
empirica entity-walk <type:id> --depth 3 # BFS membership graph, cycle-safe
empirica entity-search "query" [--type T]

All read-only, all support --output json. Backs cross-project orchestration, CRM workflows, and the entity-aware POSTFLIGHT retrospective.


Platform Support

Two harnesses are supported. Everything else is untested — prompt and rules files may exist for other tools, but their presence is not support, and we would rather say so than let you find out mid-project.

Harness Status What you get
Claude Code Supported Full integration — plugin, hooks, Sentinel gate, skills, agents, statusline, MCP
Codex (via ecodex) Supported Self-provisioning: ecodex vendors the plugin into its own binary and loads hooks natively. empirica setup refuses codex by name and points you at ecodex's pipeline — that refusal is correct, not a gap
Antigravity (Google), Vibe (Mistral AI) Not yet Possible future support. Not now
Everything else Untested The CLI works anywhere Python does, but no harness integration is verified

MCP is a fallback, not a second path

empirica-mcp exists for harnesses that cannot run the CLI integration — Claude Desktop, Gipitee-style clients. Use it when you have no alternative.

The reason matters: an MCP surface cannot enforce the Sentinel gate the way a blocking pre-tool hook does. So an MCP-only deployment gives you the measurement layer with a weaker guarantee — the noetic/praxic firewall becomes advisory. That is a real difference in what the system promises, and it should be a deliberate choice rather than something you infer from a feature table.


Documentation & Training

Resource What It Covers
getempirica.com Training course, interactive guides, deep explanations
Natural Language Guide How to collaborate with AI using Empirica
Getting Started First-time setup and concepts
CLI Reference All 240+ commands documented
Cockpit guide One command brings up a tmux layout of all your practices, keeps each one's identity, and restarts any that died
Architecture Technical reference for contributors
Claude Code Setup Install + system prompt + plugin wiring
Changelog Full release history — every version since 1.0
Upgrade to 1.14 Migration guide for the 1.13.x → 1.14 jump — one behaviour change that can refuse work, and it refuses in the safe direction. Older guides (1.9–1.13) live in docs/guides/

The Empirica Ecosystem

Project Description Status
Empirica Core measurement system — epistemic transactions, Sentinel, calibration, 13 vectors Open source (MIT)
Empirica Iris Epistemic browser automation with SVG spatial indexing — Sentinel gating for visual interactions Open source (MIT)
Docpistemic Epistemic documentation coverage assessment — know what your docs know Open source (MIT)
Breadcrumbs Survive context compacts with git notes — dead simple session continuity Open source (MIT)
Ecodex Codex-based Rust harness — the epistemic firewall and pattern hunt, native to Rust/cargo (clippy, cargo check/test/audit) Open source (Apache-2.0)
Eat the Broccoli Portable quality-and-pattern audit — deterministic tooling plus a learned-pattern hunt for the failure classes that pass every test and still ship broken Open source (MIT)
Empirica Cortex Cross-project intelligence layer — serves verified predictions and accumulated learnings to condition future work Proprietary
Empirica Workspace Entity Knowledge Graph, Epistemic Prompt Engine, CRM, portfolio dashboard Proprietary
Empirica Extension Chrome extension — desktop face of the mesh. ECO Accept/Decline, inbox/outbox triage, publish review, conversation extraction from Claude.ai / ChatGPT / Gemini / Grok Proprietary
Empirica Outreach Voice-aware outreach + publishing — prosody-matched content generation and multi-channel dispatch Proprietary

Building something with Empirica? Open an issue to get listed.


The Empirica Foundation

The Empirica Foundation stewards the open ecosystem — the public projects above and the community growing around them — keeping the commons healthy as it scales.

The open-source projects are free for everyone. What the Foundation adds is a seat at the table: contributors who help build the community get to use the rest of the ecosystem too — the otherwise-paid layers (Cortex, Workspace, the Extension) and the collaborative mesh that lets practitioners coordinate as peers. Build the commons, use the whole thing.

Want in? Open an issue or a PR with your reasons — that's the whole application. Everyone who wants to help shape where this goes is welcome.


What's New in 1.14.12

  • Credentials are scrubbed before they are stored. The artifact verbs (finding-log, unknown-log, deadend-log, mistake-log, assumption-log, decision-log), log-artifacts and the repository writers pass their text through a prose-safe redactor (redact_for_storage) before it reaches SQLite, a git note or Qdrant. A value only counts as a credential if it looks like one, so ordinary prose is kept.
  • doctor --scrub-secrets removes credentials already stored from SQLite rows, git notes and Qdrant payloads (this project's collections, plus the shared ones with --include-global). It plans by default, --apply writes, it is idempotent, and it keeps JSON notes and *_data columns valid JSON. A store it could not read is reported as incomplete and exits 2 instead of looking clean, and it finds the project from a subdirectory.
  • The ntfy bearer token is off curl's command line. The listener passes its authorization header to curl on standard input, so it no longer appears in the process list. empirica scan --save redacts process command lines and crontab lines and writes its files owner-only.
  • mcp>=1.30.0 (CVE-2026-59951: stateful Streamable HTTP sessions never expire). empirica-mcp passes its suite on 1.30.0 and on 2.3.0.
  • The agent-pipeline --sandbox bwrap root is read-only. It had been --bind / /, so every later mount was decoration. The code now says plainly what it still does not confine (.git stays writable, and the host runs git afterwards).
  • The Sentinel no longer loses commands behind a heredoc. A heredoc operator, a comment, or any << that is not a heredoc (${x//<<E/y}, a here-string, arithmetic, a quoted pattern) used to cut the command short for every check, so arguments after the operator and whole commands after the terminator line were never classified. A command is now safe only if it is safe as written and also with its heredocs and comments removed. A heredoc that feeds an executor (bash, sh, python3, sqlite3, ssh, | sh) is still gated.
  • Variables that change what runs are not inert. env PATH=..., LD_PRELOAD, BASH_ENV, GIT_* (including GIT_TRACE*), HOME, the interpreter and cloud-CLI configuration families and similar no longer pass as harmless assignments. This is a denylist, so a variable nobody has listed yet is the residual risk; docs/reference/SENTINEL_GATE_REFERENCE.md says so.
  • The security corpus ships with the services-auditor skill, with each framework file carrying its source, edition and verification date, and doctor reports its age.

Privacy & Data

Your data stays local:

  • .empirica/ — Local SQLite database (gitignored by default)
  • .git/refs/notes/empirica/* — Epistemic checkpoints (local unless you push)
  • Qdrant runs locally if enabled

No cloud dependencies. No telemetry. Your epistemic data is yours.


Community & Support


License

MIT License — see LICENSE for details.


Author: David S. L. Van Assche Version: 1.14.12

Turtles all the way down — built with its own epistemic framework, measuring what it knows at every step.

Metadata

Release files for empirica 1.14.12

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

Source distribution (sdist)

Source distribution for empirica 1.14.12
File Size Uploaded Provenance
empirica-1.14.12.tar.gz 2.9 MB With provenance Details

Built distribution (wheel)

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

Total release size: 6.0 MB

Release files / empirica-1.14.12.tar.gz

Download URL empirica-1.14.12.tar.gz
Size 2.9 MB
Tags Source
SHA-256 checksum
How to use checksums
418a143516378fbd2604f0f65e3dc3bbc962c3db3f5dafc2957eccd762b148ad
BLAKE2b-256 checksum
How to use checksums
680e16492d4d4b90dc411053b23b70237869667a783a000275a1cdf3c427099e
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 Oct 19, 2026.

Transparency log

Release files / empirica-1.14.12-py3-none-any.whl

Download URL empirica-1.14.12-py3-none-any.whl
Size 3.1 MB
Tags Python 3
SHA-256 checksum
How to use checksums
c995db3496ce3fb16fb75c335198d12cf172ac267725f29caac89d1528828923
BLAKE2b-256 checksum
How to use checksums
692717a672eb8f420fd789a7d514a05be8f0349824d64071cfcea1e0804d1a45
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 Oct 19, 2026.

Transparency log

Security for empirica 1.14.12

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 empirica-1.14.12.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 Oct 19, 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.

Release history Release notifications | RSS feed

This release

1.14.12 This release

2 release files Full 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