Skip to content
Achal Prabhakar

Hermetic

A local-first AI data analyst. Ask questions of your data in natural language, get an interactive dashboard, and the model never sees your rows.

Most AI analytics tools work by sending your data to a model and asking it to describe what it sees. That has two problems. The rows leave your machine, and the description is generated text — a number in the summary is a plausible number, not necessarily the number the query returned.

Hermetic is built the other way around. The model reads schemas and writes queries; the queries run locally against DuckDB, your warehouse, or Parquet on S3; and the analysis then declares what it found as typed claims. A tested statistical runtime applies the judgment calls — zero sentinels, thin-data attestation, choosing a robust test over a parametric one — as total functions rather than leaving them to model discretion.

The last step is the one I care most about. An optional compiled composer builds the narrative and the dashboard deterministically from those claims. The prose reads like an analyst wrote it, but every figure in it is a binding to a computed value. A fabricated number is not a thing the system can express. A Verify panel and an on-demand adversarial audit show the receipts.

What it handles

CSV, Excel, GeoJSON, and Parquet — single files, Hive-partitioned folders, and cloud Parquet at billion-row scale — or direct connections to PostgreSQL, BigQuery, ClickHouse, Snowflake, Databricks, Trino, and Hive.

Beyond single questions there are conversational follow-ups and a multi-step Investigate agent that plans its own sequence of queries.

Results you can keep

Compiled dashboards are live documents, not screenshots. You can reorder sections, hide elements, edit the insight paragraph, narrate a claim the composer left untold, or add charts from a derived catalog — all through one governed edit grammar that the web UI and the MCP interface share, so an agent and a person are making the same moves.

Analyses persist, restore, re-run against fresh data, refresh on a cron, and export as a single self-contained interactive HTML file you can send to someone who has none of this installed.

Teaching it your definitions

Every team has its own meaning for active user or margin. Hermetic takes drop-in skills — markdown guidance plus tested Python helpers — that carry those definitions, enforced by a review gate before anything executes. A curated learning loop keeps exemplars from past successful runs, and runs the linter flagged are vetoed from teaching.

Where it runs

Hermetic is also an MCP server, so Claude Desktop, Claude Code, or any MCP host can drive the same pipeline as tools — including auditing and editing dashboards — while data and execution stay on your machine.

Models are your choice: cloud LLMs from Anthropic, Bedrock, Vertex, or any OpenAI-compatible endpoint; your own Claude subscription through the Claude CLI with no API key; or local models through MLX, llama.cpp, or Ollama, with per-phase control over reasoning effort.

What it looks like

  • Files, warehouse connections, and saved sources. Data stays where it already lives.
    Files, warehouse connections, and saved sources. Data stays where it already lives.
  • Question suggestions generated from the schema, not from the rows.
    Question suggestions generated from the schema, not from the rows.
  • The SQL the analysis ran, kept alongside the result rather than hidden behind it.
    The SQL the analysis ran, kept alongside the result rather than hidden behind it.
  • Tables, schema, and sample data in a rail beside the question.
    Tables, schema, and sample data in a rail beside the question.