EXFOLIATE! EXFOLIATE!
Nexa is a personal AI assistant you run on your own devices. It answers you on the channels you already use (WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, Microsoft Teams, WebChat), plus extension channels like BlueBubbles, Matrix, Zalo, and Zalo Personal. It can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane — the product is the assistant.
If you want a personal, single-user assistant that feels local, fast, and always-on, this is it.
Website · Docs · DeepWiki · Getting Started · Updating · Showcase · FAQ · Wizard · Nix · Docker · Discord
Preferred setup: run the onboarding wizard (nexa onboard) in your terminal.
The wizard guides you step by step through setting up the gateway, workspace, channels, and skills. The CLI wizard is the recommended path and works on macOS, Linux, and Windows (via WSL2; strongly recommended).
Works with npm, pnpm, or bun.
New install? Start here: Getting started
Subscriptions (OAuth):
Model note: while any model is supported, I strongly recommend Anthropic Pro/Max (100/200) + Opus 4.6 for long‑context strength and better prompt‑injection resistance. See Onboarding.
- Models config + CLI: Models
- Auth profile rotation (OAuth vs API keys) + fallbacks: Model failover
Runtime: Node ≥22.
npm install -g nexa@latest
# or: pnpm add -g nexa@latest
nexa onboard --install-daemonThe wizard installs the Gateway daemon (launchd/systemd user service) so it stays running.
Runtime: Node ≥22.
Full beginner guide (auth, pairing, channels): Getting started
nexa onboard --install-daemon
nexa gateway --port 18789 --verbose
# Send a message
nexa message send --to +1234567890 --message "Hello from Nexa"
# Talk to the assistant (optionally deliver back to any connected channel: WhatsApp/Telegram/Slack/Discord/Google Chat/Signal/iMessage/BlueBubbles/Microsoft Teams/Matrix/Zalo/Zalo Personal/WebChat)
nexa agent --message "Ship checklist" --thinking highUpgrading? Updating guide (and run nexa doctor).
- stable: tagged releases (
vYYYY.M.DorvYYYY.M.D-<patch>), npm dist-taglatest. - beta: prerelease tags (
vYYYY.M.D-beta.N), npm dist-tagbeta(macOS app may be missing). - dev: moving head of
main, npm dist-tagdev(when published).
Switch channels (git + npm): nexa update --channel stable|beta|dev.
Details: Development channels.
Prefer pnpm for builds from source. Bun is optional for running TypeScript directly.
git clone https://github.com/nexa/nexa.git
cd nexa
pnpm install
pnpm ui:build # auto-installs UI deps on first run
pnpm build
pnpm nexa onboard --install-daemon
# Dev loop (auto-reload on TS changes)
pnpm gateway:watchNote: pnpm nexa ... runs TypeScript directly (via tsx). pnpm build produces dist/ for running via Node / the packaged nexa binary.