nexvora
v0.4.16
Published
NexVora — one binary for the MCP server, CLI, and donor daemon. Single login, run anything.
Downloads
7,848
Maintainers
Readme
nexvora
One binary for everything NexVora: the MCP server, the CLI, and the donor daemon. One install, one login, different commands.
npm install -g nexvoraThat is the only install command. The native engine ships inside this package
(via a per-platform optional dependency); npm downloads only the binary for
your OS/CPU. No second package, no separate daemon to install.
Quick start
npm install -g nexvora
nexvora "summarise the file at ./report.md" # first run opens your browser to log in onceFor end-to-end-encrypted task results that you can fetch later (and that the platform can never read), set an encryption passphrase once:
nexvora vault setup # prompts for a passphrase; creates + caches your keyThat's it. Everything else is just a different first word.
One command does each job
nexvora "summarise RFC 9110" # one-shot: run a prompt, get the answer, done
cat notes.txt | nexvora # prompt from stdin
nexvora donor # join the donor pool (long-running)
nexvora mcp # MCP server over stdio (for Claude Code / Cursor / etc.)
nexvora vault setup|unlock|lock # manage your encryption vault (see below)
nexvora logout # clear local credentials
nexvora daemon stop # stop the background user daemonYou never run a separate login step. The first command that needs an
account opens your browser for a one-time approval (OAuth Device Grant) and
stores the token in your OS keychain. Every mode shares that one login.
MCP host config (zero extra commands)
Point your MCP host at the same binary — npx installs it on first use:
{
"mcpServers": {
"nexvora": { "command": "npx", "args": ["-y", "nexvora", "mcp"] }
}
}After a global install you can use { "command": "nexvora", "args": ["mcp"] }.
Tasks submitted from an MCP host run on a donor with your local project
context (CLAUDE.md, your MCP servers, hooks) and are end-to-end encrypted.
nexvora_submit_task returns immediately with a Task ID; fetch the answer with
nexvora_task_result (it streams the output so far while the task is still
running, and serves the final result even after a daemon restart once your vault
is unlocked).
Encryption vault (end-to-end results)
Your task prompt and result are sealed so the platform can't read them. The key that opens them is protected by a passphrase that never leaves your machine.
nexvora vault setup # first time: choose a passphrase, creates the vault
nexvora vault unlock # on a new device: re-derive + cache the key
nexvora vault lock # drop the cached key from the OS keychain- The passphrase is separate from your account login (the daemon never sees your account password — it logs in via Device Grant).
- Account recovery is ON by default: if you forget the passphrase, an admin can recover your key via escrow on a verified, audited request. Turn it off for maximum privacy (then a lost passphrase means lost history).
Sessions: single vs long-running
Your login (the rotating refresh token in the keychain) persists until you
logout. The single-vs-long-running choice controls the session key — the
ephemeral per-task crypto material — and how long the background daemon lives.
| Mode | Session key | Idle timeout |
|------|-------------|--------------|
| One-shot (nexvora "…") | created, torn down after the task | short (daemon quits soon after) |
| Donor (nexvora donor) | per task you serve, per direction | long-running |
| MCP (nexvora mcp) | warm across tool calls | 10 min (keeps the daemon warm) |
- Override the idle window:
nexvora-daemon --mode user --idle 1800(seconds), or theNEXVORA_IDLE_TIMEOUT_SECONDSenv var.0keeps the daemon up untilnexvora daemon stop. - End a foreground task immediately with Ctrl-C; stop the background daemon with
nexvora daemon stop.
Admin commands
# create + install the platform escrow key (once). --admin-secret is your
# backend's X-Admin-Secret (or set NEXVORA_ADMIN_SECRET); it authorises the
# /admin call. The separate "admin credential" it then prompts for seals the
# escrow key locally and never leaves your machine.
nexvora escrow init --admin-secret <X-Admin-Secret>
# decrypt a disputed result via escrow (audited)
nexvora dispute open <delegation> --admin-secret <X-Admin-Secret>You must be logged in as an ADMIN account (nexvora login). Both prompt for the
escrow admin credential locally; the server never decrypts.
Updating
npm install -g nexvora@latest # or: npm update -g nexvoraThe native binary updates with the package. Your login and vault stay in the OS keychain across updates — no re-login or re-setup needed.
How it ships (for maintainers)
This package is a small launcher (bin/nexvora.js) that resolves and execs the
native binary. The binary lives in one of:
@nexvora/cli-darwin-arm64, @nexvora/cli-darwin-x64,
@nexvora/cli-linux-x64, @nexvora/cli-win32-x64
each gated by os/cpu so npm installs exactly one. Each platform package
carries two binaries — nexvora (the entry point the launcher execs) and
nexvora-daemon (the engine it finds as a sibling).
Releasing (see docs/operations/release-and-deploy.md): push a tag
nexvora-v<version>. CI (.github/workflows/nexvora-cli-release.yml)
cross-compiles all four targets, runs scripts/package-binaries.mjs to stage the
binaries + sync versions, publishes the platform packages first, then this
launcher last (npm publish --provenance).
@nexvora/mcp-server (the TypeScript server) keeps working as before; pass
--native or NEXVORA_MCP_NATIVE=1 to make it delegate to the native
nexvora mcp during cutover.
License
UNLICENSED © NexVora
