Talk to your PDFs.
Cited. Self-hosted.
Upload a PDF. Ask anything. Every answer cites the exact page.
9 PDFs indexed1.2k chunks~$0.003 / question
demo-app.boxd-stg.sh/app
How does Bitcoin solve the double-spending problem?
Bitcoin uses a peer-to-peer timestamp server to generate computational proof of the chronological order of transactions 1. The system stays secure as long as honest nodes control more CPU power than any attacker group 2.
Sources
[1] bitcoin.pdf · p1[2] bitcoin.pdf · p3
Flow
From PDF to cited answer in three steps.
01
Sign in & upload
02
Index in the background
03
Ask, get cited answers
Stack
Nine open-source pieces. One VM.
Every layer is something you'd find in a serious production app. None of it is hosted off-box.
LayerToolRole
AuthSupabase Auth (GoTrue)Email/password, JWT-signed sessions
DatabasePostgres 15 + pgvectorDocuments, chunks, embeddings, RLS per user
StorageSupabase StorageOwner-scoped PDF bucket
QueueRedis 7Ingest jobs hand-off backend → worker
Embeddingssentence-transformers (local)all-MiniLM-L6-v2, 384 dims, ~50ms
AnswersClaude Sonnet 4.6Cited generation, ~$0.003/question
TracingLangfuse OSSSelf-hosted observability for every Claude call
AgentsClaude Code in boxd VMsPer-task sandbox, sub-second fork
HostOne boxd VM8 GB / 2 vCPU / 100 GB disk
Agent sandboxes
One question → one fresh VM.
Click Run as agent in the chat, and the backend forks a new boxd VM in under a second. Your PDFs are copied in, Claude Code runs inside the VM with full Linux + tool use.
demo-app · sandbox runner
$ boxd new --name=tpdf-8644fc98
✓ VM ready in 0.9s
$ boxd cp ./bitcoin.pdf tpdf-8644fc98:workspace/docs/
✓ 184 KB copied
$ boxd exec tpdf-8644fc98 -- 'claude -p < /dev/null \
--dangerously-skip-permissions \
"Read /home/boxd/workspace/task.md and execute it"'
[agent] reading task.md
[agent] reading docs/bitcoin.pdf
[agent] writing result.md (1815 chars)
[agent] writing /var/www/html/index.html
[agent] done
$ open https://tpdf-8644fc98.boxd.sh/
▌See what one boxd VM can do.
Create an account in a few seconds, upload a PDF, and start asking questions.