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. |
| Navigation and learning curve | Five tabs in the left pane (Library, My FileHold, Inbox, Search, Recycle Bin) with configuration behind one Administration panel. Widely cited as the easiest part of FileHold to train staff on. | Two navigations over the same product. Full view lists every surface in a grouped sidebar. Simple view is deliberately FileHold-shaped: seven entries in the left rail (Home, Library, My Kodori, Inbox, Search, Recycle bin, All tools) with search in the top bar. Per-user, switchable mid-session, and no link changes between them. |
| 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.
- Our staff already knows the FileHold interface. How steep is the retraining?
- Shallower than a rip-and-replace, on purpose. Kodori ships a "simple view" navigation modelled on the FileHold web client: Library, My Kodori (their My FileHold), Inbox, Search, Recycle bin, and an All tools panel that plays the role of Administration. The mapping is deliberate so muscle memory carries over. It is a per-user setting, so the records manager who wants every surface listed can run the full sidebar while the rest of the team runs the short one, and both see the same documents, the same permissions and the same links. Switching is one click and nothing is hidden either way.
- 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.