Documentation · Setup Guide · Quickstart
Agent-native document system of record
Docbank is an open-source document vault for people, applications, and agents. It runs on your own machine. It imports files, email, photos, and recordings, makes their text searchable, and keeps every version you save. When you need to hand records to someone else, it exports the versions you checked.
Use it from the command line, a local web app, a terminal browser, or an
authenticated HTTP API, or connect an agent with docbank mcp. They all talk
to the daemon, a local background process that owns the vault. A Go application
can instead embed a vault of its own.
Alpha software. Keep your own copies of anything irreplaceable, and verify a backup before you rely on it.
| Task | Guide |
|---|---|
| Import and organize records | Importing and tagging |
| Find a document | Searching and search by meaning |
| Extract a document's text and read it | Document processing |
| Read email and follow attachments | Web email reader |
| Browse photos and organize albums | Photo assets |
| Export documents and search reports | Verified bundles and search reports |
| Keep earlier content versions | Editing and versions |
| Automate filing and retrieval | Agent integration |
| Recover deleted documents | Trash and recovery |
| Create and verify backups | Backup and restore |
| Keep a permanent record of changes | Audited history |
| Add filesystem or S3-compatible storage | Multi-store storage |
Docbank does not synchronize a working folder across devices or create public share links. The capability guide lists what it does today, and the roadmap lists what is planned.
Linux or macOS:
curl -fsSL https://docbank.ai/install.sh | shWindows PowerShell:
irm https://docbank.ai/install.ps1 | iexThe installers pick the native Linux, macOS, or Windows archive for amd64 or
arm64. They refuse to install an archive whose digest does not match the
release's SHA256SUMS. You can also download the archives from
GitHub Releases and verify them
yourself.
To build from source, install Go 1.27+, CGO, a C compiler, Node 24+, and npm:
git clone https://github.com/kenn-io/docbank.git
cd docbank
make installThe setup guide lists the build requirements for each platform. For a stock image configured through environment settings and mounted secrets, see Run in a container.
The first data command creates the vault and starts its daemon:
docbank document add ~/Documents --dest /archive
docbank document tree /archive
docbank search "tax return"
docbank webFor empty search results, see the search hints.
Retrieve a file, list its versions, replace its content, and rename it. Docbank verifies a file before handing it back. Replacing content adds a version and leaves the earlier ones in place, and a rename keeps the document's ID:
docbank document get /archive/Documents/receipt.pdf ./receipt.pdf
docbank document versions list /archive/Documents/receipt.pdf
docbank document put revised-receipt.pdf /archive/Documents/receipt.pdf
docbank document move /archive/Documents/receipt.pdf /archive/Documents/receipt-2026.pdf
docbank vault verifyPDF text is indexed locally on import, with no setup. With no configured profile, the Text tab shows retained PDF page text. Configured profiles keep their own text and processing state. Office text and OCR use configured processing profiles.
Create a backup, verify it, and restore it into a separate directory to check:
docbank backup init --repo ~/Backups/docbank
docbank backup create --repo ~/Backups/docbank --tag first-import
docbank backup verify --repo ~/Backups/docbank
docbank backup restore --repo ~/Backups/docbank --target ~/Restores/docbank-testThe ten-minute quickstart covers versions, tags, search, trash, maintenance, and restore.
- Standalone. One daemon owns the vault. The CLI, browser, TUI, scripts, and external agents all go through its authenticated API on the local machine.
- Embedded. A Go application owns each vault in its own process. Every vault has its own root directory, and you choose CGO or pure-Go SQLite.
- Secondary storage. Docbank verifies content in configured filesystem and S3-compatible stores but does not encrypt it. Restrict those stores to their owner and encrypt them at the storage layer.
- Backup. Copying the local database and primary blob directory while the
daemon is stopped gives a complete backup only if primary storage has a
verified copy of every content file the vault keeps.
docbank backup createalso includes content held only in secondary stores. See the backup guide for the full rules.
Docbank sends anonymous usage events by default:
daemon_activeat startup and once per later UTC day while running.app_openedwhen the web app opens, about once per UTC day per browser and daemon run.screen_viewedwith a fixed screen name, once per vault per UTC day for each interface, browser and terminal, across daemon restarts.session_endedonce when a tab closes or stays hidden for 30 minutes, or the terminal browser exits, with duration grouped into four buckets. Browser visible time adds up across tab switches. Hidden time is excluded. The terminal browser counts the time from opening to exit, including idle time.document_added,search_run, anddocument_openedafter completed document actions, withsurfaceofweb,tui, orcli. Searches also carrysearch_typeoftext,semantic, orhybrid. PostHog counts these events per day. CLI reports require a terminal on stdin, stdout, or stderr and omit--agentruns; CLI and TUI actions omit runs underCLAUDECODEorCODEX_THREAD_ID.search_emptywhen a submitted search has no results, withsurfaceandsearch_typeas above. It accompaniessearch_run, including when the search scope is empty.error_shownwhen a search, add, or open you ran fails, withsurfaceofweb,tui, orcliandkindofsearch,add, oropen. Rejected input counts as a failed search or add like any other failure. A failed search or open counts once, and an upload or photo import run with failed items counts once. Sign-in prompts, cancels, passive loads, refreshes, other drawers and dialogs, notices, and CLI usage errors before connecting stay silent. A Photos open whose detail load fails counts as a failedopen. The terminal browser sendsdocument_openedon Enter and sends noerror_shownwithkindofopenfor a failed detail load. Other previews or detail loads after opening a document are secondary loads and stay silent. Failed Add re-plans, closed CLI output pipes foradd,cat, andsearch, and an existing destination forgetalso stay silent. A missing download destination directory, or one that is not a directory, also stays silent.
Asynchronous imports from the CLI or the web mailbox and load-file drawers, and push, send no core actions.
Each event carries a random per-vault install ID, the version and commit, the
operating system and architecture, and the distribution channel, such as
homebrew. Events never include document content,
names, paths, or queries. Set DOCBANK_TELEMETRY_ENABLED=0 or
DO_NOT_TRACK=1 to turn telemetry off. See
anonymous usage telemetry.
- Documentation homepage and visual tour
- Setup and quickstart
- Capabilities and vault lifecycle
- Web application and terminal browser
- Multi-store storage and backup & restore
- Docbank for agents and integration guide
- Embed in Go and document processing packages
- CLI reference and architecture overview
Docbank has a sibling, msgvault, which archives communications. Msgvault preserves an immutable record of messages. Docbank manages working documents that people and agents still organize, retrieve, version, and use.
Start with the development guide for the repository layout, package ownership, generated clients, and checks. Follow AGENTS.md and the documentation guide when updating code or documentation.
Copyright 2026 Kenn Software LLC.
Docbank is licensed under the Apache License, Version 2.0. See NOTICE for attribution information.
