Early access · Built for legal & AEC

AI document management your auditor can defend.

Kodori is an AI-native DMS for law firms and AEC builders. Search any clause in plain English. File entire matters by forwarding an email. Hold records for litigation in two clicks. Every action is hash-chained, reversible, and ready for the deposition.

Begin with GoogleSee how it worksNo credit card · reversible by default
kodori.ai / doc / 7c4f…9a2e

Smith_v_Jones_Motion_for_Summary_Judgment.pdf

extracted
application/pdf14 pages2.1 MBmatter · smith v jones
Access
  • sam@firm.comyouCreated this document
  • partners@firm.comTenant owners · role-based
  • s.chen@firm.comExplicit allow · read
Trail
  1. just nowdocument.content-extractedsystem · claude-pdf
  2. 2 min agopermission.grantedsam@firm.com
  3. 2 min agodocument.createdsam@firm.com
Event-sourcedContent-addressablePermission-trimmedReversibleAudit-loggedMCP-native

Features

Built to solve the problems every DMS buyer already has.

The G2 reviews of iManage, NetDocuments, SharePoint, FileHold, Documentum, OnBase, Procore — the complaints repeat. Kodori is designed to do none of them.

01

Find anything in plain English.

Postgres full-text over names, metadata, and every word the agent extracted from your PDFs. Relevance-ranked, snippet-highlighted, sub-second on re-index.

indemnity clause

"… shall indemnify and hold harmless the party of the first part …"

02

File by email. One action.

Every workspace gets a unique ingest address. Forward anything to it; attachments become documents with sender, subject, and message-ID preserved as metadata. Extraction fires automatically.

Forward to
docs+4h7xyq8p2r@kodori.ai
03

Collections, not folders.

Cabinets, drawers, matters, projects — all views over one metadata layer. A document can live in many contexts without a single duplicate copy.

04

Live "who can see this".

Every document surfaces its access list with reasoning: role-based, creator-implicit, or explicit grant. Deny always wins. Ethical walls that actually hold at retrieval time.

youCreated this document
partners@Tenant owners · role-based
s.chen@Explicit allow · read
05

Nothing is "final_final".

Content-addressable blobs, keyed by SHA-256. Every version is immutable. The current one is unambiguous. Moves are metadata edits — links never break.

06

Audit is a side effect.

Every action appends to a per-tenant hash-chained event log. The compliance officer reviewing activity sees the same log the agent operates against — no parallel audit system.

09:14document.content-extracted
09:13document.created
09:12permission.granted
07

Hybrid search that just works.

Postgres full-text for exact phrases AND vector embeddings for concept matching, fused via Reciprocal Rank Fusion. "agreements about confidentiality" surfaces an NDA even when the word "NDA" never appears.

08

Metadata fills itself.

When a document lands, the agent proposes its sensitivity tier, the right collection, 2–8 search keywords, and a doc type. You confirm. The audit log records the human decision.

09

Versions you can defend.

Upload v2 without making a duplicate record. Label the "Final draft", the "Sent to counsel". Compare any two versions with a server-rendered text diff — even if the older bytes haven't been read in a year.

10

Legal hold, deny-wins.

Bind documents to a matter. Held records refuse to delete, refuse to dispose under retention, refuse to downgrade sensitivity. Subjects stay on the hold record forever as audit evidence.

11

Retention, human-confirmed.

Define classes ("Tax records — 7 years"). Records that elapse appear in a review queue with two buttons: defer with a reason, or dispose with a reason. No one's tax records get auto-deleted at 3 a.m.

12

DLP catches it on the way in.

Every uploaded document is pattern-scanned for SSNs, Luhn-validated credit cards, ABA-validated routing numbers, AWS keys, GitHub tokens, PEM private keys, JWTs. High-confidence matches auto-escalate the doc to "regulated" before it's searchable; lower-confidence findings queue for human review. The matched value is never stored — only a pre-redacted preview ("XXX-XX-1234").

13

Anomaly detection with agent step-up.

A 15-minute cron scans the audit log for high-volume regulated reads, off-hours bursts, hold-deny spikes, agent runaway loops. High-severity AGENT signals auto-pause the offending principal via a deny rule on /permissions; un-pausing requires a written rationale captured on the audit log.

14

First DMS with a public MCP server.

POST /api/mcp speaks the Model Context Protocol over Streamable HTTP. Claude Desktop, Cursor, ChatGPT desktop, and Kodokyo's agent connect with a Kodori API key and call the same 75+ tools the internal agent uses — no custom integration code. Audit-attributable: every external tool call lands on the hash-chained log under the issuing user's identity.

15

REST API + signed webhooks (with Slack Block Kit).

Twelve REST endpoints, opt-in scopes per key, OpenAPI 3.1 manifest, HMAC-SHA256 webhook signatures with 5-minute drift protection. Pick "Slack" as the webhook format and Kodori renders each event as Block Kit at the destination URL — readable channel messages without a translator service in between.

16

Programmable agent. In plain English.

Type a one-line rule on /automations: "Daily at 9am, ask the agent which AP invoices have price variance and email me the answer." Claude compiles it into a typed schedule + action; the cron fires every 5 minutes and runs matching rules. Email saved-search digests + email free-form agent answers in v1. Permission-trimmed — automations run as the creator. The architecture (typed-tool agent + scheduled cron + email + Resend) means programmable agent without writing code; no incumbent has it.

17

Conflicts cleared before the matter exists.

Type a working matter name on /collections/new and Kodori runs the pre-engagement conflict check the firm does by hand today: substring match against existing matter names + a hybrid search of every document in the tenant for the parties you typed. Existing matters where the parties already appear surface inline with snippets — before you click create. Permission-trimmed at the document layer; matter names appear tenant-wide so false negatives don’t cost you an engagement.

18

Voice notes that file themselves.

Hit /capture from the field, record on your phone, the agent transcribes via Whisper and the transcript lands as a document attached to the matter or project you picked. Site walkthrough notes for the project superintendent, deposition reactions for the litigator, voicemail-to-doc for everyone. Audio retained on R2; transcript indexed for hybrid search alongside every other document.

19

Search across Slack, email, and your shared drives — in one query.

Six external connectors live: Slack, Gmail, Outlook, SharePoint, OneDrive, Google Drive. Connect once via OAuth from /integrations; messages and file attachments index into the same FTS + pgvector retrieval the rest of Kodori uses. The agent's `unifiedSearch` tool fires Kodori-document search + connector-content search in parallel and fuses the results via Reciprocal Rank Fusion — operators ask "find every contract about the Smith deal" and get hits regardless of where the contract actually lives. Tenant-scoped: only authorized connectors contribute. OAuth tokens encrypted at rest (AES-256-GCM, scrypt-derived from AUTH_SECRET, BYO-KMS-extensible). GDPR Article 17 right-to-be-forgotten purge available on /integrations/[id] for revoked connectors.

20

AEC trackers in the language of the trade.

RFI tracker, submittal tracker, change-order tracker, inspection register — extracted automatically from uploaded PDFs by Haiku-driven specialized extractors. Project drill-in at /projects/<ref> rolls up open RFIs, under-review submittals, pending COs with PCO-overdue badging at 14 days, executed CO impact, and a unified per-artifact-color-coded activity timeline. Filter every tracker by project, spec section, status. Built for the GC who today reconciles three spreadsheets every Friday — the trackers ARE the spreadsheets, plus the source documents stay attached.

21

Live in Word, Excel, PowerPoint, Outlook.

Office add-ins surface Kodori inside the apps your team already lives in. Outlook: file an email + attachments to a matter or project in one click. Word / Excel / PowerPoint: search Kodori from the side panel, insert a clause or a contact block, save the current document back to a collection without leaving the app. Single-tenant authentication via the same Auth.js session as the web app — no separate add-in credentials, no IT-side license seat to provision per user.

There’s more — Word-style redline compare, AI document generation from templates, AP three-way + line-item match, compliance reports, access explorer, two-person delete on regulated docs, conversational canvas for multi-step workflows, and a hundred other surfaces.

See the full feature list →

Instead of living with this

What incumbents ship. What Kodori does instead.

Quotes paraphrased from public reviews of iManage, NetDocuments, SharePoint, FileHold, Documentum, and OnBase. Every right-hand column is a feature in the product today.

iManage · G2

"Filing an email takes 6 clicks through the Outlook dialog, and if you pick the wrong workspace you start over."

Kodori

Forward to your workspace address. Attachments file themselves with sender, subject, and message-ID preserved. One action.

NetDocuments · TrustRadius

"Search finds filenames but chokes on phrase matches inside PDFs."

Kodori

Extracted text from every PDF, image, and scan. Postgres FTS with weighted ranking. Snippets that highlight the matched term.

SharePoint · r/sysadmin

"We have 400 unique permissions in one site and nobody can reason about who has access any more."

Kodori

Per-document live access list. Role-based, creator-implicit, or explicit grant — each with a reason. Deny always wins.

FileHold · Capterra

"Lawyers file the same contract in three places because nobody trusts the others to search well."

Kodori

One blob, many collections. Cabinets, drawers, matters, projects — all views, no duplicates.

NetDocuments · G2

"We email 'final_final_v3' copies outside the system because version history confuses people."

Kodori

Content-addressable identity. Each version is immutable. The current one is unambiguous — not a filename convention.

OnBase · G2

"Changing a retention schedule requires a certified developer to log a ticket."

Kodori

Self-serve retention with preview-before-apply. Every change is a reversible event in the signed audit log.

How it works

Three moves. All of them typed.

Agents and humans share the same tool surface. Every move is type-checked, audited, and undoable.

  1. 01

    Ingest.

    Drag and drop, forward an email, or connect Google Drive. Files are hashed in your browser, deduped at the object layer, and extracted — OCR on scans, layout on PDFs, tables on spreadsheets.

  2. 02

    The agent proposes.

    Typed MCP tools let the agent propose filing, retention, and sharing. You approve in one click or redirect. Every action is previewable and reversible before it commits.

  3. 03

    Retrieve in plain English.

    Ask the agent, or search directly. Hits are permission-trimmed, ranked across names, metadata, and extracted text, and cited — click through to the exact page.

Under the hood

A modern stack, for once.

No proprietary languages. No certified developers required to change a form. No clickable-only configuration that takes a month to audit.

Next.js 1501

app router · server actions

Neon02

postgres · pgvector

Cloudflare R203

content-addressable blobs

Inngest04

durable workflow

Anthropic Claude05

via Vercel AI SDK

MCP06

typed tool surface

Next move

Try it on a stack of your own real documents.

Early access is open to legal and AEC teams. No credit card. The product is under active development, and your feedback shapes what ships next.