Comparison · Kodori vs FileHold
Kodori vs FileHold, honestly.
FileHold has shipped a competent traditional DMS for two decades — it’s a known quantity in records-management shops and small-to-mid law firms. We’re the AI-native entrant. Honest side-by-side below.
| Dimension | FileHold | Kodori |
|---|---|---|
| Architecture | Windows-server-based DMS, deployed on-prem or hosted by FileHold. SQL Server back-end. Cabinet-drawer-folder hierarchy is the core metaphor. | Cloud-native, AI-native, event-sourced. Every operation is a typed MCP tool the agent calls. No folder tree — Collections are saved views over content-addressable blobs. |
| Search | Full-text search via SQL Server. Solid for filename + metadata queries; PDF body search depends on iFilter configuration. | Hybrid: Postgres FTS + pgvector embeddings, fused via Reciprocal Rank Fusion. Concept queries surface relevant documents even without matching keywords. |
| Audit trail | Per-action audit log in SQL Server. Row-level integrity. Standard event-table approach. | Per-tenant hash-chained event log. Every event's prev_hash is the SHA-256 of the previous event — tampering is detectable at the chain level, not just the row level. |
| AI / Agent | No native AI agent in v16. Search is keyword-only. | Native typed-tool agent. Calls the same MCP tools the UI does — rename, move, share, hold, retain, dispose, restore. Auto-classifies on upload. Quotes /help articles for how-to questions. |
| Email filing | Outlook plugin with right-click "send to FileHold". Functional but multi-step. | Per-tenant ingest address. Forward from any email client. Agent auto-classifies sensitivity, suggests a destination, proposes keywords. |
| Office add-ins | Word / Excel / PowerPoint integrations. Save-from-Office. Mature for the on-prem deployment model. | Outlook + Word + Excel + PowerPoint task panes all shipped (sideload via /office). One Kodori API key signs into all four — Outlook files email + attachments from the ribbon, Word / Excel / PowerPoint save the active document as new doc OR new version with optional version label. |
| Versioning | Major + minor version numbers. Check-in / check-out. Optional metadata required at version commit. | Content-addressable versions (SHA-256 IS the identity). Optional human label per version ("Final draft", "Sent to counsel"). Server-rendered text-diff compare across any two versions. |
| Records management | Built-in retention with disposition workflow. Strong for the records-management persona. | Retention classes + human-confirmed review queue. Held-doc deny-wins integrates retention with legal hold. Auto-tombstone behind a tenant flag in v0.2. |
| Cabinet / drawer / folder metadata defaults | Schema-tied metadata defaults at the cabinet level (every doc filed there inherits the cabinet's metadata schema). Strong for the cabinet-as-a-record-class model. | Configure default sensitivity tier + default retention class on any Collection (cabinet / drawer / folder / matter / project / custom). Members inherit on add — sensitivity is highest-tier-wins (never demotes), retention is no-override (preserves any existing assignment). Backfill existing members in plain English: "apply the HR Records cabinet's inheritance to every doc already filed there." Plus four bulk MCP tools for setting matter-number / client-code / parties / any custom field across a collection in one call. See D294. |
| Permissions | Cabinet/drawer-level groups with inheritance. Solid for traditional folder-based permission models. | Per-document deny-wins ACL enforced at the index. Same permission rules apply to UI, search, agent, and API. Ethical-wall-grade isolation without inheritance gymnastics. |
| Public API | FileHold Web Services API (SOAP) + .NET SDK. Documented; developer access at higher tiers. | Modern REST API at /api/v1 (read + write, JSON), OpenAPI 3.1 manifest, opt-in scopes per key, HMAC-signed webhooks (with native Slack Block Kit format). |
| Public MCP server | No MCP surface. FileHold has no AI agent integration story today. | 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. Audit-attributable. |
| Inbound search across firm-wide content (Slack / Outlook / SharePoint / Drive) | FileHold searches FileHold. The Slack threads, Outlook correspondence outside formal filing, and SharePoint folders with parts of the document gravity are not searchable from inside FileHold. | Six external connectors live: Slack, Gmail, Outlook, SharePoint, OneDrive, Google Drive. Messages and file attachments index into the same FTS + pgvector retrieval Kodori uses for native uploads. The agent's `unifiedSearch` tool fires both legs in parallel and fuses via RRF — operators ask "every reference to project X" and get hits across native documents AND connected Slack / email / SharePoint / Drive in one ranked list. OAuth tokens encrypted at rest. GDPR Article 17 right-to-be-forgotten purge on connector revoke. |
| Deployment | Self-host on Windows Server, or FileHold-hosted cloud. Strong on-prem story for firms with strict residency policies. | Cloud-managed only at MVP. Vercel + Neon + Cloudflare R2, US-East. Self-host packaging deferred until enterprise demand justifies. |
| Compliance posture | Long history of regulated deployments (DoD 5015.02 environments, healthcare, gov). SOC 2 audit cadence varies by deployment. | SOC 2 Type I is `audit-pending` (substrate ready; auditor engagement gated on revenue / funding). Type II sequenced after Type I. HIPAA + BAA is `customer-anchored`. 21 CFR Part 11 conformance claim is **live today** at /legal/21-cfr-part-11. |
| Pricing | Perpetual or subscription licenses, usually $20-$40 per user per month plus implementation. Lower than iManage / NetDocuments; higher than open-source ECMs. | Three tiers, per-seat pricing, no implementation fees. See /pricing for current numbers. |
| Migration | FileHold owns this market for legacy escape — many firms shop us specifically because they want OFF FileHold. | Two paths today. (1) The dedicated FileHold REST connector (beta) walks /FH/api/v1 directly — probe lists cabinets, discover pages /Documents/Search, download streams /Documents/{id}/Content. FileHold's Library → Cabinet → Drawer → Folder hierarchy maps to Kodori Collections, and schema-defined metadata (MatterNumber, ClientName, DocumentDate, etc.) round-trips into Kodori metadata. (2) Use FileHold's admin export tooling to dump cabinets to a folder, copy to any S3-compatible bucket (AWS / Cloudflare R2 / MinIO), and run Kodori's S3-bucket connector. The REST path is preferred for live migrations; the bucket path is the offline option for air-gapped environments. |
| Document compare / redline | No native redline view. Operators download both versions and use Word's Track Changes externally. | Word-style word-level redline shipped built-in on /doc/[id]/compare. Insertions in green, deletions in red strikethrough; mode toggle to unified line-level view for code or data. |
Highlighted cell indicates the dimension favours that product on a generic mid-market deployment.
Common questions.
- Why are firms moving off FileHold?
- The pattern we hear: FileHold ships a competent traditional DMS, but the cabinet-drawer-folder metaphor and lack of native AI feel dated against AI-native alternatives. Search returns filename matches but struggles with body-text concept queries. The Outlook integration works but the email-filing flow is multi-step. The audit trail is solid but row-level rather than chain-level. Customers tell us they want what FileHold is good at — clean retention workflow, defensible records management — without the dated UX.
- Will Kodori support our on-prem deployment?
- Not at MVP. Kodori is cloud-managed only — Vercel + Neon + Cloudflare R2. We deferred self-host packaging until an enterprise customer's contract requires it. If on-prem is a hard requirement, FileHold wins this comparison. If "regulated cloud with audit-defensibility" is the requirement, Kodori wins.
- Is the FileHold migration connector ready?
- Yes — the dedicated FileHold REST connector ships in beta today. It walks /FH/api/v1 directly: probe validates the OAuth2 password-grant token + lists cabinets, discover pages /Documents/Search 100 docs at a time (optionally scoped to one cabinet), download streams /Documents/{id}/Content. Library → Cabinet → Drawer → Folder maps to Kodori Collection paths and schema-defined metadata round-trips. Beta because it has been tested on mock fixtures only; the flip to ready follows the first real-tenant pilot. The S3-bucket connector remains the offline option for air-gapped FileHold environments.
- How does the audit trail compare?
- FileHold logs every action in a SQL Server audit table — defensible at the row level, mature, shipped for years. Kodori chains every event's prev_hash to the SHA-256 of the previous event, so tampering is detectable at the chain level. For a firm whose audit posture has never been challenged, both are sufficient. For a firm anticipating real depositions or 21 CFR Part 11 inspection, the chain is materially stronger evidence.
- What about the existing FileHold workflow features?
- FileHold ships workflows (review, approval, sign-off). Kodori has Inngest as the durable workflow primitive but doesn't ship pre-built review workflows in v0 — auto-classification on upload IS a workflow but you can't configure custom approval chains today. AP-invoice-style flows land in Phase 1.
Drop a folder. See the difference.
Five minutes from Google sign-in to a working DMS on your own documents. We won’t replace FileHold today, but we’ll show you what AI-native search and audit feel like.