Every leakleaves a trail.
Classifyre is an open-source investigation platform for your data estate. It scans the systems you already run, detects secrets, PII, and the signals you define — then works them like a detective: standing inquiries, fingerprints, importance-ranked evidence, cases, competing hypotheses, and an AI autopilot that does the legwork between scans.
Lead investigator
On duty since your last scan
Everything stays on your machine
helm install classifyre \
oci://registry-1.docker.io/classifyre/classifyre-core \
--version 0.4.68Helm chart docs →Source types
33+
Databases, lakehouses, collaboration tools, BI, and web content — one evidence stream.
Built-in detectors
6
Switch-on packs for PII, secrets, and security — plus four custom engines, regex to any LLM.
Autopilot agents
5
Inquiry, case, config, detector author, dream — every move logged with a written rationale.
Follow the evidence
One pipeline runs from the systems you connect to a resolved investigation: sources become assets, detectors raise findings, findings feed inquiries and fingerprints, and everything converges into cases. Here is one real night in the life of it — a credential leaking through CI logs, traced end to end.
A scheduled scan walks the bucket
Your CI pipelines ship their logs to an S3 bucket, and Classifyre scans it on a schedule — no agents, no data migration. Every log object becomes an asset in the catalog, carrying its metadata: path, size, content type, when it last changed.
The secrets pack recognizes a key
Detectors read each asset as it lands. The built-in secrets pack matches an AWS access key pasted into a deploy job's log and raises a critical finding — with the exact match, its location, and a deterministic identity so a re-scan updates it instead of duplicating it. Semantic ranking scores it 0.94: novel, high quality, nothing like boilerplate — top of the docket.
A question you already asked gets its answer
Months ago someone phrased a standing question: “Are credentials leaking through CI logs?” The new finding matches inquiry #7 automatically. No new alert channel, no duplicate monitor — the question you already asked just accumulated evidence.
The same key surfaces somewhere else
The finding's fingerprint matches a record from a quarterly S3 export scanned last month. Two systems, one leak — connected by identity, not by someone eyeballing two spreadsheets at 2 a.m.
Case #42 opens with two explanations
“Credential exposure” opens as a case with both findings attached as evidence and two competing hypotheses: the key leaked via CI logs, or it lingers in a stale export. Each hypothesis is pinned to the evidence that supports or contradicts it — and the case starts proposing its own next leads, ranked by importance: semantic neighbours of the evidence plus high-ranking matches from inquiry #7.
Nobody was at the keyboard
Steps three through five happened while you slept. Harness AI matched the inquiry, linked the fingerprint, opened the case, and drafted both hypotheses right after the scan — and logged a written rationale for every single move. You arrive in the morning to a case, not a pile of alerts.
Findings are evidence.
Cases are the product.
Most scanners stop at a findings table and wish you luck. Classifyre treats every finding as evidence in an ongoing investigation — connected to the questions you are asking, the cases you are working, and the explanations you are testing.
Standing questions that keep watching
Phrase what you actually want to know — “Are credentials leaking through CI logs?” — and the inquiry keeps matching new topics and findings against it, scan after scan.
Evidence with an owner and a lifecycle
Findings get attached to cases instead of dying in a CSV export. Each case carries its evidence, status, and history — and proposes its own next leads, ranked by importance.
Competing explanations, pinned to evidence
Work a case like an analyst: propose explanations, link each one to the findings that support or contradict it, and watch the graph confirm or kill it.
Humans and AI in one audit trail
Teammates and the autopilot operate on the same cases, with every action — human or AI — attributed and explained in a shared record.
Signal rises.
Noise sinks.
Severity tells you what a finding is. Importance tells you whether it deserves your morning. Classifyre embeds every finding into a semantic space and ranks it from 0 to 1 — weighing quality, novelty, context, and how the same value recurs across your estate — so the docket opens on the leak, not on page forty of boilerplate.
Ranked, not piled
Every finding gets an importance score, and the docket sorts by it out of the box. Severity is one input weighted at ten percent — not the verdict.
A score you can argue with
Each rank carries readable reasons — “recurs across systems”, “known test value”, “near-duplicate of 38”. No black-box number decides your morning.
Twice is a trail. Fifty times is wallpaper.
The same value surfacing in a handful of systems, in different contexts, gets promoted as a lead. The same value in fifty assets is boilerplate — it sinks.
It re-ranks itself
Early findings score against an almost-empty space, so once the embedding queue drains, Classifyre recalibrates the whole corpus. Ranks stay honest as evidence grows.
- F-2041AWS access key · CI deploy log0.94↑ recurs in 2 systems↑ novel↑ semantic outlier
- F-1987IBAN · quarterly finance export0.81↑ high quality↑ distinct context
- F-2033Email address · support inbox dump0.42↓ 38 near-duplicates
- F-2012Card number · 4111 1111 1111 11110.18↓ known test value
- F-2029Phone number · page-footer boilerplate0.07↓ found in 48 assets↓ low extraction quality
Meaning, indexed
Every finding is embedded into a pgvector semantic space — a local model out of the box, or any OpenAI-compatible provider you configure. Similar findings and boilerplate clusters come for free.
Ask in your own words
Search fuses semantic and keyword results into one ranked list. Ask for “bank details” and the IBANs surface — even when no keyword matches.
Cases find their own next evidence
Each case proposes leads: semantic neighbours of the evidence already attached, plus high-importance matches from its linked inquiries — ranked, capped, reviewable.
Autopilot, not copilot
A copilot waits for you to type a prompt. Harness AI doesn't wait. After every scan, five specialized agents wake in sequence, read a system brief composed from live facts and long-lived memory, and move the investigation forward on their own — deduping findings, building cases, tuning silent sources, even authoring the detectors you were missing. The fifth agent literally dreams: it consolidates what the others learned while nothing else is running.
- 01InquiryKeeps standing questions answered
Matches fresh findings to your inquiries and dedupes the rest — similar signals collapse into one monitor instead of a flood.
findings.searchinquiries.enrich - 02CaseBuilds the investigation
Opens and enriches cases: drafts competing hypotheses, attaches evidence, and links findings into the case graph.
cases.createcases.add_hypothesis - 03ConfigWakes up silent sources
Profiles sources that ingest data but produce nothing, then enables the detectors that fit the data shape — no manual setup.
assets.profileconfig.tune_source - 04Detector AuthorWrites the detector you were missing
When findings slip through, it hypothesizes a detector, dry-runs it, ships it, and verifies the results on the next cycle.
detector.testdetector.create - 05DreamConsolidates what it learned
Curates long-lived memory and refreshes the system brief so every agent starts the next cycle grounded in today's reality.
memory.rewritesystem_brief.update
A flight recorder, not a black box
Each agent runs a resumable reason → act loop: it reads the live system brief, calls real tools, and writes back what it did and why. Watch one cycle play out — it's the same credential-leak night from the story above, every decision audited, every deliberate non-action recorded too.
- Grounded in facts. The system brief is composed by the server every cycle — coverage, glossary, topics, gaps — from live counts plus learned memory. Only the short overview is model-written.
- Idempotent & resumable. Runs persist mid-loop and resume without replaying work, so side effects never double-fire.
- You stay in command. Steer it with a one-line instruction, or flip observe-only and it proposes without touching a thing.
A memory you can read
Harness keeps a long-lived memory of your instance — business glossary, decision precedents, topic-to-inquiry maps. Every cycle, the server composes it into a system brief: live counts and learned facts in fixed sections, with only the short overview written by the model. Inspect and edit any of it.
No findings? It makes some
Connect a source with no detectors and there is nothing to react to — so Harness profiles the ingested assets instead: column names, mime types, field shapes. From that metadata alone it hypothesizes a detector, dry-runs it against samples, ships it, and checks the results on the next cycle.
Observe-only when you want it
Every action — and every deliberate non-action — lands in one audit trail with a written rationale, attributed to the agent that made it. Flip the whole instance, or a single case, into observe-only and Harness proposes without touching a thing.
When you do want to talk, the assistant drives setup
The autopilot runs your investigations without being prompted. For everything else there's the assistant: it narrows scope, stages source and detector configuration, and hands back an exact operating plan instead of leaving you in a generic chat loop.
Classifyre Assistant
Example walkthrough
Scan the systems you already own
Classifyre is built for mixed estates: operational databases, lakehouse and warehouse platforms, collaboration systems, analytics assets, and public-facing content — all feeding evidence into the same investigation layer.
Databases
Operational and document stores for row and collection scans.
Graph Databases
Graph-native stores with node and relationship traversal.
Warehouse & Lakehouse
Analytical compute platforms and catalog-first ingestion.
Streaming
Event streams and message brokers sampled for content.
Web & UGC
Public-facing websites and user-generated content.
Social Media
Social and video platforms with public posts and transcripts.
Collaboration
Team communication and workspace activity streams.
Analytics & BI
Dashboards, reports, and business intelligence assets.
Evidence on day one
Switch on curated built-in packs — PII, secrets, security, moderation, quality — and findings start flowing into your investigations immediately. No model wrangling required.
Secrets & Credentials
Credential leaks, code issues, and high-risk security signals.
Privacy & PII
Personal data detection, OCR privacy, and de-identification checks.
Threats & Attacks
Active threat indicators such as prompt injection attacks.
Content Quality
Spam, duplicates, plagiarism, readability, and language quality signals.
Classification & Tagging
Domain, content type, sensitivity tiers, and jurisdiction tagging.
From a regex to any model
Custom detection is a ladder, not a leap. Start with a deterministic rule, climb to zero-shot text understanding, plug in open transformer models for text and images, and top out with an LLM detector for the signals nothing else can catch. Every rung feeds the same findings stream.
Regex & rules
Deterministic pattern matching for IDs, secrets formats, policy phrases, and internal codes. Instant, explainable, zero ML overhead.
Entities & classification
Extract entities and classify text in a single model pass, using labels written in your own words. Contextual understanding without training a model.
Any Hugging Face model
Plug in open models for text classification, image classification, object detection, and embeddings. Yes — Classifyre sees images, not just text.
Bring any LLM
Write a prompt, define labels and extraction fields, and any configured LLM provider becomes a detector — for signals too fuzzy to define any other way.
One instance.
Sealed case files.
A client, a region, a business unit, a single sensitive matter — each gets its own workspace, and a workspace is a wall, not a filter. Separate schema, separate evidence, separate AI memory, separate endpoint. Switch between them from the same install; nothing crosses.
A schema, not a filter
Each workspace gets its own PostgreSQL schema — assets, findings, cases, detectors, embeddings. Not a tenant column somebody can forget to filter on. A wall.
The autopilot forgets on purpose
Harness AI keeps its own memory, system brief, and glossary per workspace. What it learns working the finance estate never bleeds into the support one.
/acme-corp, all the way down
The workspace lives in the URL — app, REST API, MCP endpoint, scan callbacks. Point an MCP client at one workspace and that is the only estate it can ever see.
One instance, many investigations
A workspace per client, per region, per business unit — on a single deployment. Open one in seconds; retire it without touching another file.
- /acme-corpSealed
Acme Corp
12 sources · 3 open cases
- /emea-regionSealed
EMEA Region
5 sources · 1 open case
- /internal-auditSealed
Internal Audit
8 sources · 6 open cases
- ▪Database schema
- ▪Assets & findings
- ▪Cases & inquiries
- ▪Detectors & sources
- ▪Semantic space
- ▪Autopilot memory
- ▪Scan queue
- ▪MCP endpoint
Isolation is in the open-source core and always on. What enterprise adds is the lock on the cabinet: SSO, roles, and per-workspace authorization, so an auditor opens the audit file, a regional team opens its own region, and nobody browses the drawer next door.
One product.
Two jurisdictions.
These aren't tiers, trials, or lite editions — each runtime is the full, productized platform. The desktop app keeps the investigation local; the Helm chart runs it remotely and scales as heavily as your estate demands.
Desktop
The complete platform in a single install — PostgreSQL embedded, every scan worker sandboxed under the hood. Not a demo, not a trial: it's how a single investigator runs Classifyre day to day, with everything on your machine.
Free · Open source · No signup, no cluster, no sales call
Helm on Kubernetes
The same open-source core, deployed remotely — self-hosted or in your cloud — with properly separated components and ephemeral processing workers that scale to zero between scans and fan out as far as your estate goes. Your infrastructure, your data.
helm install classifyre \
oci://registry-1.docker.io/classifyre/classifyre-core \
--version 0.4.68A partnership,
not a license key
The enterprise layer adds what a regulated, global rollout needs — and it comes with us attached. Our engineers work with your team from the first pilot: we learn how your business names things, tune detection to your language, and tailor Classifyre to the way your company actually works.
Who may open which file
Workspaces are isolated in the open-source core. Enterprise decides who gets a key: SSO, roles, and per-workspace authorization — the layer the core deliberately leaves out.
Detection that speaks your language
Models tuned on your terminology and document shapes, so “account number” means what it means at your company — not on the internet.
Built for your domain
Detectors, sources, and multilanguage support engineered around the data your industry actually produces — with our engineers doing the building.
We stay in the room
From first pilot to global deployment: architecture reviews, upgrade assistance across Kubernetes and OpenShift, and SLA-backed support.
Open your first case tonight.
Download the desktop app — or run one Docker command — point it at a system you already run, and see what the investigator finds. Everything stays on your machine, and everything you build carries over when you go remote with Helm.