Documentation Index
Fetch the complete documentation index at: https://zapo.to/llms.txt
Use this file to discover all available pages before exploring further.
Requirements
zapo requires Node.js >= 20.9.0. The package ships dual ESM/CJS builds and full TypeScript types.Install the core package
Add a storage backend
zapo persists authentication and Signal state through a pluggable store. Pick the backend that matches your deployment and install its package:
| Package | Backend | Best for |
|---|---|---|
@zapo-js/store-sqlite | SQLite (via better-sqlite3) | Local / single-process |
@zapo-js/store-postgres | PostgreSQL | Distributed, relational |
@zapo-js/store-mysql | MySQL | Distributed, relational |
@zapo-js/store-redis | Redis | Cache + persistence |
@zapo-js/store-mongo | MongoDB | Document store |
You can also run with no backend at all — the built-in memory store works out of the box and is great for tests. It just does not survive a process restart, so you would re-pair on every boot.
Optional peer dependencies
Install these only if you use the corresponding feature:pino+pino-pretty— required only if you usecreatePinoLogger. Without them, the built-inConsoleLoggeris used.ws— only needed to route the WebSocket through a proxy. The runtime’s nativeWebSocketcan’t take an HTTPAgent/dispatcher, sozapofalls back towsfor theproxy.wsleg. Without a proxy, the built-inWebSocketis used and you don’t need this package.argo-codec— only needed for mobile connections (for now). The standard companion (QR / pairing-code) flow does not use it.
Sending media
ffmpeg/ffprobe and uses sharp, so make sure those binaries are available. See the media guide for how to wire the processor into the client.
