Ask your archive. Approve what changes.
Tagvico is a self-hosted companion for Paperless-ngx. It answers from your documents, keeps track of what needs doing, and asks before it changes anything.

Tagvico 3.5 video
Ask across the whole archive.
Ask in plain language about letters, contracts and receipts. Each answer lists the Paperless documents it is based on, so you can open the original.

Nothing changes until someone approves.
When the Companion wants to change something, it prepares a proposal. An owner or an adult approves or rejects it, and only then is it applied. Every decision is kept in an audit trail.

A short list of what needs you.
Deadlines, pending approvals and suggestions collect in one list called Needs you, so nothing depends on remembering to look in Paperless.

Made for a household.
Add the people you live with. Each member gets their own page with their open items and documents, and roles decide who may approve what.

Use the model you already pay for, or run your own.
ChatGPT planNew in 3.5
Sign in with ChatGPT and use your Plus or Pro plan. No API key. Requests count toward your plan, and you can limit or disconnect Tagvico under ChatGPT Settings, Usage.
OpenAI
Use your own API key with the OpenAI API.
OpenRouter
One key for many hosted models.
Ollama
Run models on your own hardware, so document text stays on your network.
Also supported: Ollama Cloud, OpenCode Go, GitHub Copilot, OpenAI-compatible endpoints such as LM Studio, LiteLLM and vLLM, and TypeSafe Jev for closed-list filing.
Provider guides
Telegram and Discord.
Household members you allow can search, upload documents, see open actions, and approve or reject proposals from a chat. Each person uses their own Paperless token, so Paperless still decides who can see what.

File new documents, review first.
Tagvico can suggest titles, tags, correspondents, document types and dates for new documents. Suggestions wait in a review queue until you apply or reject them. You can switch to full access later so metadata is applied automatically, and restore the original metadata if you change your mind.

Install with Docker.
You need Docker Compose, a running Paperless-ngx and a Paperless API token.
- Save the file as
docker-compose.ymland rundocker compose up -d. - Open
http://localhost:8080/setupon the Docker host. - Connect Paperless-ngx, choose a model and create the owner account.
New installations start in review mode with scheduled scans paused. Pin the release tag when you upgrade.
services:
tagvico-ai:
image: ghcr.io/arturict/tagvico-ai:3.5.0
container_name: tagvico-ai
restart: unless-stopped
cap_drop:
- ALL
security_opt:
- no-new-privileges=true
ports:
- "${TAGVICO_AI_BIND_ADDRESS:-127.0.0.1}:8080:3000"
environment:
TAGVICO_AI_PORT: "3000"
TAGVICO_AI_BIND_ADDRESS: "${TAGVICO_AI_BIND_ADDRESS:-127.0.0.1}"
TAGVICO_TELEMETRY_ENDPOINT: "${TAGVICO_TELEMETRY_ENDPOINT:-https://telemetry.tagvico.arturf.ch/v1/heartbeat}"
volumes:
- tagvico_ai_data:/app/data
volumes:
tagvico_ai_data:
Prefer a single docker run command?
docker volume create tagvico_ai_data
docker run -d \
--name tagvico-ai \
--restart unless-stopped \
--cap-drop ALL \
--security-opt no-new-privileges=true \
-p 127.0.0.1:8080:3000 \
-e TAGVICO_AI_PORT=3000 \
-e TAGVICO_AI_BIND_ADDRESS=127.0.0.1 \
-e TAGVICO_TELEMETRY_ENDPOINT=https://telemetry.tagvico.arturf.ch/v1/heartbeat \
-v tagvico_ai_data:/app/data \
ghcr.io/arturict/tagvico-ai:3.5.0
Where your data goes.
Privacy notesYour archive stays on your server
Paperless-ngx keeps the documents. Tagvico keeps approvals, history and settings in a database on its own volume.
The AI provider you pick sees document text
Questions and filing send the text they need to that provider. With Ollama, it never leaves your network.
ChatGPT plan sends text to OpenAI with store set to false
Sign-in tokens stay on your server and never reach the browser. Sign out revokes the session at OpenAI.
Usage statistics are off until you turn them on
The optional counter sends no document text, titles, names or addresses, and you can preview exactly what it would send.