Capabilities overview
Han AI is one product. One AI COO per workspace. What makes it useful is the toolbelt it has access to — every tool runs locally on your own VPS using free or open-source stacks.
The principle: free and local first
Bots run on Linux VPSes with shell access. The differentiator versus a thirty-dollar chat product is that the agent can DO things via the local OS. Default to free and open-source tooling — DuckDuckGo, SearXNG, Playwright, curl. Paid APIs only when no free alternative exists or it is the customer’s existing service.
This is why your AI COO lives on a VPS instead of behind a hosted API. The VPS is the differentiator.
The 12 capabilities
| Capability | Schema name | Backing stack | Page |
|---|---|---|---|
| Web search | web_search | DuckDuckGo HTML scrape, no API key | Web search |
| Page fetch | fetch_page | Raw fetch plus strip-tags, 20k char cap | Page fetch |
| Document extract | extract_document | pdftotext, pandoc, LibreOffice headless | Document extract |
| OCR | ocr_image | Tesseract with English and Khmer | OCR |
send_email | nodemailer plus your SMTP credentials | ||
| Recurring tasks | schedule_recurring, list_recurring, cancel_recurring | node-cron plus SQLite | Recurring tasks |
| Code execution | execute_code | Sandboxed Node child process | Code execution |
| Browser | browse, scrape_clean | Playwright plus Chromium | Browser |
| Vector memory | remember_document, recall_documents | Chroma in Docker, OpenAI embeddings | Vector memory |
| Voice transcription | (inbound, not a tool call) | whisper.cpp local preferred, OpenAI fallback | Voice transcription |
| PDF generation | generate_pdf, record_pdf_feedback | pdfkit, six styles, self-learning preferences | PDF generation |
Each capability is gated on what is actually installed on your VPS. If a binary or credential is missing, that tool is hidden from the AI for that turn instead of failing mid-task.
How tool use works
- Han AI receives a message.
- The model is shown only the tools that are available right now on your VPS.
- If the model wants to act, it emits a tool call. The runtime executes it.
- The raw result is fed back to the model for a synthesised reply — you never see raw JSON.
- Every call is metered against your monthly token budget.