Local-first · Counsel-table capture · VA & DC first

Authorities ready when you
sit back down

MatterBench is a trial-hearing research workbench—not desk chat, not a deposition coach. It listens at counsel table, runs two-tier research against your litigation pack and jurisdiction-scoped public law, and stages a ranked recess queue: sources + analysis only, never oral-argument scripts.

Capture STT · segments Session core issues · jobs Research fabric pack · public · comm. Analysis agents tier-1 · tier-2 Recess queue cards · trail · export Local-first path · matter isolation on every store key · compute policy chips on every session
End-to-end data path from counsel table to recess review

Built for the recess moment

Desk AI stops when you stand up. MatterBench is designed for the minutes after you sit back down— glanceable cards, honest coverage states, and an audit trail you can export.

01 · Capture

Counsel-table STT

Mic, file, or demo path posts timed TranscriptSegment events. Speaker defaults to counsel; multi-speaker reserved. Offline-friendly—no wifi required for capture + tier-1.

02 · Retrieve

Two-tier research fabric

Tier-1: matter pack (FTS + RRF) in seconds. Tier-2: CourtListener REST v4 with jurisdiction court filters when policy + network allow. Commercial backends are first-class stubs → real connectors.

03 · Review

Recess queue + trail

Ranked cards with provenance chips, adverse flags, follow-up Q&A. Phase B trail: segments, issues, cards, events—export Markdown or JSON for post-hearing work.

Where it sits in the market

Desk legal AI
Depo live tools
MatterBench
Primary moment
Office / brief
Deposition room
Trial / evidentiary recess
Input
Chat / docs
Witness stream
Counsel speech → issues
Output
Memos / drafts
Inconsistency flags
Authority cards + trail
Trust default
Corpus grounding
Doc compare
No-invention · typed provenance

Two-tier research pipeline

Tier-1 is optimized for recess latency and offline courtrooms. Tier-2 expands the universe only when compute policy and connectivity allow—and labels that choice in the UI.

Issue hypothesis TIER 1 · FAST Matter pack FTS + RRF authority seeds · pleadings · local rules target: seconds · offline OK TIER 2 · DEEP Public law + optional commercial CourtListener · jdx court filters · cache async · policy + network gated Card synthesis claims · no-invention eyecite · CL lookup Queue ready · partial
Tier-1 stays pack-local for speed and offline use; tier-2 supersedes when richer sources land

Issue detection

Heuristic overlap of rolling transcript tokens with claims_or_charges and authority-seed titles. Confidence floor 0.4; 60s debounce; counsel pin always wins ranking budget.

Hybrid retrieval

SQLite FTS5 per-matter chunks fused with Reciprocal Rank Fusion (k=60). Note-class artifacts never surface as legal sources—ranking bias only.

Public law client

CourtListener REST v4: Authorization: Token …, GET /search/?type=o, soft-fail on 401/403/429, matter-scoped TTL cache, citation-lookup guardrail.

Compute policy

Per-matter flags: local default, allow public law, allow commercial, allow remote models. Session data-flow chips reflect live state in the recess UI.

Architecture that keeps privilege local

Single-laptop process for v1: FastAPI session core, SQLite matter store, pluggable backends, Vite review shell. No runtime dependency on Cerid AI or multi-tenant cloud for the courtroom path.

MATTER A chunks · FTS cards · events hearing sessions · segments · issues MATTER B chunks · FTS cards · events no shared vector space in v1 Hard isolation — every query is matter_id-scoped
Cross-matter retrieval is structurally impossible in the default store

Primary API surface

POST /matterscreate matter + compute policy
POST /matters/{id}/ingestlitigation pack artifacts
POST /matters/{id}/hearingsstart hearing session
POST /hearings/{id}/segmentsSTT → detect → jobs
GET /hearings/{id}/queueactive recommendation cards
POST /cards/{id}/followupfollow-up research job
GET /hearings/{id}/trailannotated audit bundle
GET /hearings/{id}/exportMarkdown or JSON download

Trust is the product

Legal AI fails on invented citations and silent overconfidence. MatterBench encodes failure modes as product features: strip, flag, degrade—never invent.

Draft card LLM or determ. eyecite parse cite spans Known-set check hits · sources only Strip · flag · rebind adverse: stripped_unverified_citation optional CL citation-lookup
No-invention gate: fabricated reporter cites never leave the pipeline as “ready” analysis
  • Sources + analysis only — schema and prompts forbid oral-argument scripts and “say this to the judge” language.
  • Provenance types — every source is matter_pack · public_law · commercial · transcript.
  • Coverage honesty — cards report pack_only · partial · full; researching never looks final.
  • Local-first compute — optional remote models/search labeled per matter; offline tier-1 remains usable.
  • Eval gates — golden in-pack recall + zero fabricated cites in the automated suite.

Research aid. Counsel decides.

MatterBench does not practice law. Verify authorities before use in open court. Counsel owns recording compliance at the table—product copy defaults to counsel-table capture, not full-room recording.

Standalone product. Not affiliated with “Second Chair,” CoCounsel, NexLaw, or similar brands.

Jurisdiction pack: va_dc

First-class data package—not hard-coded ifs. Binding hierarchy and public backend weights travel with the matter.

STATE · VA Supreme Court of Virginia binding_state CL id: va STATE · DC D.C. Court of Appeals binding_state CL id: dc FEDERAL FOOTPRINT vaed · vawd · dcd ca4 · cadc · scotus preferred_court_ids → CL type=o search
Jurisdiction pack supplies court ids and source weights for ranking

Source weights (v0)

  • matter_pack
    2.0
  • binding_local
    1.5
  • binding_federal
    1.3
  • persuasive
    0.8
  • note (bias only)
    0.0

Public sources may miss materials commercial databases cover. Cards disclose partial coverage when backends fail or are offline.

Technical stack

Concrete components shipping on the Moment A path—not a vaporware diagram.

Runtime

  • Python 3.12+ · FastAPI session core
  • SQLite + FTS5 matter isolation
  • Pydantic v2 domain models
  • RRF fusion (Apache-licensed extract)
  • httpx · eyecite · pypdf

Capture & agents

  • faster-whisper batch STT
  • Streaming STT adapter interface
  • Capture CLI (demo / file / mic)
  • Deterministic synthesizer default
  • Optional OpenAI-compatible LLM cards

Surfaces & quality

  • Vite + React recess UI
  • Trail panel + MD/JSON export
  • Golden evals: recall + no-invention
  • CI: ruff · pytest · coupling ban
  • Product site: matterbench.io
compute_policy · example
{
  "local_default": true,
  "allow_remote_models": false,
  "allow_public_law": true,
  "allow_commercial": false,
  "commercial_backends": []
}

Operator loop

Hearing day as a lifecycle—not a chat thread. Each phase has a concrete artifact and API surface.

1 Matter ingest pack pre-hearing 2 Capture segments live hearing 3 Research jobs · tiers background A Recess queue Moment A primary success B Trail export MD · JSON post-hearing Data-flow chips (Local · Public law · Commercial) surface live compute policy on every session
Moment A (recess) is the product wedge; Moment B (full trail) is the audit export path
  1. Open a matter Litigation-core pack: pleadings, orders, authority seeds, exhibit index, notes (bias only).
  2. Start a hearing Capture CLI or API posts timed segments; data-flow chips show local / public / commercial.
  3. Issues fire jobs Auto-detect + pin; tier-1 pack hits; optional auto tier-2 when online + public law allowed.
  4. Recess queue Ranked cards, follow-up Q&A, dismiss; superseded parents hidden from active queue.
  5. Trail & export Segments, issues, cards, events—Markdown or JSON for post-hearing prep.

Research aid. Counsel decides.

Verify authorities before use in open court. Counsel owns recording compliance at the table.

Private tool first · Product-shaped for partners · Jurisdiction packs expand without forking the core