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.

Version 3.5. MIT licence. One Docker container.

The Tagvico start page: a message box that says Ask about your documents, suggested questions and the most urgent open item

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.

A Tagvico answer to the question when the CSS premium is due, with the two Paperless documents it used shown as source pills

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 Tagvico proposal to decide on an insurance renewal, with Reject and Approve buttons and the note that nothing happens until an owner or adult approves

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.

The Needs you list in Tagvico with overdue, this week and later items, each with a due date and a Done button

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.

A household member page in Tagvico showing her role, that she can approve changes, and her two open items

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
Tagvico provider settings listing ChatGPT plan, OpenAI, OpenRouter, Ollama and an OpenAI-compatible endpoint

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.

Tagvico channel settings for Telegram, with a bot token field, allowed people and deadline reminders

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.

Tagvico automation settings with the Review first write mode selected

Install with Docker.

You need Docker Compose, a running Paperless-ngx and a Paperless API token.

  1. Save the file as docker-compose.yml and run docker compose up -d.
  2. Open http://localhost:8080/setup on the Docker host.
  3. 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.

docker-compose.yml
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 run
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 notes
  • Your 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.

Run it next to Paperless-ngx.