v0.12.3 · open source · MIT

The AI memory layer for engineering teams.

Verbatim turns meetings, Slack threads, PRs, and calendar events into a structured, queryable record of every commitment, decision, open question, and blocker — each one sourced to an exact verbatim quote. Then it tells you what's overdue, what's gone stale, and which decisions contradict each other. Open source. Free forever.

~/work — verbatim
$ verbatim ingest standup.txt

 Saved 4 items from standup.txt
  VRB-a1b2c3d4  commitment  Qat → ship CULA prototype  (Friday)
  VRB-e5f6a7b8  decision    use Kafka for replay cache
  VRB-9c0d1e2f  question    who owns the m2w domain config?
  VRB-3a4b5c6d  blocker     waiting on Cyren tier-3 JWT

$ verbatim show a1b2c3d4

VRB-a1b2c3d4  commitment  open  high-confidence
Actor:     Qat
Deadline:  Friday
Quote:     "I'll have the CULA prototype shipped by Friday."
Source:    standup.txt · line 47 · 2026-05-18
localhost:8765 — verbatim serve
Commitments 12
Decisions 8
Questions 5
Blockers 3
Deadlines 2
Contradictions 1
People
Commitment
Ship the CULA prototype
Qat · due Friday · 92% confidence
Decision
Use Kafka for the replay cache
Taz, Qat · merged from 2 sources
Blocker
Public launch — security review
Qat · open 4 days
Question
Who owns the m2w domain config?
raised by Jason
Commitment ·VRB-a1b2c3d4

Qat — ship the CULA prototype by end of day Friday

verbatim exact words from source · evidence locked
"I'll have the CULA prototype shipped by Friday."
Qat · #engineering · 3 days ago
OwnerQat
DueFriday
Statusconfirmed
Confidence92% · high

How it works

Three moving parts: ingest from where work happens, extract with a quote contract, act on what the state graph knows.

1

Ingest

Point Verbatim at a transcript, a Slack workspace, GitHub PRs, or a calendar. It runs continuously in daemon mode, or one-shot from the CLI.

verbatim ingest standup.txt
2

Extract

Claude (or a local model) pulls out commitments, decisions, questions, and blockers. Every item must cite the exact quote that produced it — no quote, no claim.

4 items · each sourced
3

Act

Query it, browse the web UI, project to Linear / Jira / GitHub, or let it nudge you in Slack about what's overdue, stale, or contradictory.

verbatim slack-bot nudge #team

Four entity types. One verbatim quote each.

Every extraction must point at the exact words that produced it. No hallucinated action items. No summarized "the team agreed to…" with no receipt.

Commitment

Who owes what, by when

Actor, deliverable, deadline. Open → confirmed → resolved status flow.

Decision

What was settled

The choice and the alternative it ruled out. Searchable later.

Question

Open threads

What was asked and not answered. Auto-promotes to a follow-up.

Blocker

What's stuck on what

Item, blocked-by, owner. Visible across surfaces until cleared.

Where it lives

Verbatim runs locally as a CLI, daemon, MCP server, or web UI — and bridges into the tools you already use.

Proactive layer

Overdue + due-soon tracking, staleness detection, contradiction detection, auto-standup. It tells you — you don't have to ask.

Plain-language mode

Ask any item to be explained jargon-free. A CEO and an engineer read the same record, each in words they follow.

Relationship graph

Typed edges between entities — what resolves what, what answers what — drawn as a visual graph.

CLI & web UI

Linear-style three-pane browser, dark / light theme, full-text and entity-type filters, per-person views.

Slack HITL

Confirm, dismiss, edit, reassign — straight from a Block Kit card. Every action audit-logged.

Daemon mode

Watches a folder or Slack, ingests new material, posts digests and nudges. Set and forget.

MCP server

Plug Verbatim's memory into Claude, Claude Code, or any MCP-aware agent.

Projections

Sync commitments to GitHub Issues, Jira, or Linear with one command.

Local LLM

Anthropic Claude by default — or any tool-calling model via Ollama. $0, air-gapped.

Ingest anywhere

Meeting transcripts, Slack (live + export), GitHub PRs, Google & Outlook calendars.

Not another AI notetaker

Notetakers summarize one meeting and forget it. Verbatim is a memory layer — continuous, multi-source, and answerable by your agents.

Typical AI notetaker

  • Summarizes a single meeting, then the notes go stale in an inbox.
  • Meeting-only — misses the decisions made in Slack and PRs.
  • Action items with no source — you can't tell what's real.
  • Closed SaaS. Your transcripts live on someone else's server.
  • Passive. It never tells you a commitment slipped.

Verbatim

  • Continuous state — reconciled across every conversation.
  • Meetings, Slack, GitHub PRs, calendars — one record.
  • Every item carries the exact quote that produced it.
  • Open source, self-hosted, bring your own model.
  • Proactive — nudges you on overdue, stale, contradictory items.

Get started

Python 3.10+. One pip install, then run the init wizard.

# install
pip install verbatim-ai

# interactive setup — picks model, API keys, default surfaces
verbatim init

# extract from a transcript
verbatim ingest meeting.txt

# browse the web UI on localhost:8765
verbatim serve

# or run fully local on Ollama, no API key required
verbatim ingest meeting.txt --model ollama:llama3.1:8b

FAQ

The questions that come up first.

Is it really free?

Yes — MIT licensed, open source, no paid tier. You bring your own LLM key (or run a local model on Ollama for $0). The only cost is whatever your model provider charges for tokens, and Verbatim ships cost guardrails to cap that.

Where does my data go?

Nowhere you don't control. State lives in a local SQLite file. Transcripts are sent only to the LLM you configure — and with --model ollama:… they never leave your machine at all. Meeting transcripts are the most sensitive corpus a company owns; Verbatim is built to be self-hosted from day one.

What's the "verbatim quote" contract?

Every extracted item — every commitment, decision, question, blocker — must carry the exact words from the source that produced it. If the model can't quote it, it can't claim it. That's how you trust the output instead of re-watching the meeting.

Do I have to use Claude?

No. Anthropic Claude is the default, but any tool-calling model served by Ollama works — llama3.1, qwen2.5, mistral-small. Set VERBATIM_MODEL and go.

How do I get it into my team's workflow?

Run the Slack bot — your team queries state with /verbatim, triages extractions with Confirm / Dismiss / Edit / Reassign buttons, and gets deadline nudges. Or wire the MCP server into Claude Code so any agent can read team state as a tool.

Does it replace Linear / Jira?

No — it projects into them. Your tracker stays the source of truth for work; Verbatim is the source of truth for team state, and pushes the relevant slices into the tools you already use.