Releases

What's shipped, in chronological order.

Nexus follows semver. 0.x versions may still change shape as the surface hardens. Subscribe on the homepage for an email when v0.3 lands.

  1. v0.3.3June 4, 2026

    Fail fast on Node 23 instead of dying mid-build

    Node 23 (odd, no LTS) has no prebuilt better-sqlite3 binary, so npm install falls through to a node-gyp build that often collapses on machines with a broken Homebrew Python (e.g. 3.14 + a libexpat ABI mismatch). The user sees a wall of C build errors and assumes Nexus is broken. v0.3.3 makes npm refuse the install on Node 23 with a clear message pointing at nvm install 22 instead.

    • changedengines.node now requires >=20.0.0 <23.0.0 || >=24.0.0 (LTS only).
    • addedpreinstall script that aborts on Node 23 with a clear, actionable error and the recovery command.
  2. v0.3.2June 4, 2026

    Iris sampler abstraction - bring your own backend

    The four Iris generators (structural summary, tells, suggests, spec) all used to construct their own OpenRouter client. They now take an injected Sampler and stay dumb about where the model lives. resolveSampler() picks a backend automatically: explicit --sampler flag → NEXUS_SAMPLER env → claude on PATH → OPENROUTER_API_KEY local. If you have Claude Code installed, Nexus uses it and no OpenRouter key is required.

    • addedlib/iris/sampler.ts - the Sampler interface and resolveSampler() with documented precedence. Three concrete backends ship: local (no LLM, throws on use so misuse surfaces immediately), claude-code (shells out to claude -p), and openrouter (the original path).
    • changedlib/spec/generate.ts, lib/suggests/generate.ts, lib/tells/generate.ts, and lib/sheets/summarize.ts now accept a Sampler argument and guard with sampler.canSample. The CLI and API routes resolve the sampler at command entry and pass it through.
    • addedtests/sampler.test.ts covers local sampler behavior, resolveSampler force/env precedence, and clear error messaging when required keys are missing.
  3. v0.3.1June 3, 2026

    Private Google Sheets work out of the box

    v0.3.0 added Google OAuth support but required users to configure their own client credentials before nexus auth login google would work. v0.3.1 ships the registered PixelDesigns Nexus Desktop OAuth client embedded in the binary, so npm install -g nexus auth login google just works. Same pattern as gcloud, gh, firebase, and every other OSS CLI that OAuths users into Google services.

    • fixednexus auth login google now works on a fresh install without configuring NEXUS_GOOGLE_CLIENT_ID / NEXUS_GOOGLE_CLIENT_SECRET environment variables. Keychain and env-var overrides still take precedence, so contributors can keep using their own credentials.
  4. v0.3.0June 2, 2026

    Private Google Sheets via OAuth

    Nexus now reads private Google Sheets, not just public ones. nexus auth login google runs an OAuth Authorization Code + PKCE flow in a localhost loopback, stores the refresh token at ~/.nexus/auth/google.json (chmod 600), and nexus connect against a private sheet URL transparently falls back from the public CSV-export path to the Sheets API v4. The master rows are cached locally so nexus query stays local-first.

    • addednexus auth login google / nexus auth logout google (top-level nexus login google / nexus logout google aliases).
    • addedSheets API v4 fallback in fetchGoogleSheet. Tries the public CSV export first; on 401/HTML-login response, falls back to the authenticated API and serializes rows through the same parser used for local files.
    • addedmaster.latest snapshot persistence - Google Sheets rows are cached after each nexus connect, so nexus query <view> works offline.
    • addedIris sampler abstraction with auto-detected backends - local, Claude Code (shells out to claude -p), and OpenRouter. No OpenRouter key required if claude is on your PATH.
    • addedPrivacy policy live at /privacy.
  5. v0.2.2May 30, 2026

    Surfacing Iris's suggestions, fresh Google Sheets

    Iris generates a few suggested questions every time you connect a sheet - but until now they were locked inside the kernel. nexus suggest prints them so you can copy-paste a starting point. And Google Sheets sources now refetch on nexus serve, so your agent always sees live data.

    • addedNew nexus suggest command. Lists Iris-generated suggestions for the active source as numbered, copy-pasteable nexus query <name> commands.
    • addednexus connectnow ends with a short “Try one of these next” banner pointing at nexus suggest, nexus serve, and nexus list.
    • fixedGoogle Sheets sources used to fail at nexus servewith “source needs re-fetch.” They now auto-refetch on serve, so the agent gets the latest version of the sheet - no manual nexus connect needed.
  6. v0.2.1May 30, 2026

    Simpler API key setup

    You no longer need to edit a hidden .env.local file to get Nexus running. Store your OpenRouter key once with nexus config set-keyand every invocation finds it - no matter which directory you're in.

    • addedNew nexus config command with set-key, get, unset-key, and path subcommands. The key is stored in ~/.nexus/config.json (chmod 600).
    • changedAPI key now resolves from environment first, then from the config file. Set OPENROUTER_API_KEY in your shell to override the stored key for a single session.
    • fixedError message for a missing key no longer tells you to edit nexusApp/.env.local - it now points you at the right nexus config set-key command and openrouter.ai/keys.
    • fixedREADME incorrectly named the required env var as OPENAI_API_KEY. It's OPENROUTER_API_KEY.
  7. v0.2.0May 26, 2026

    First public release

    The initial release of the local-first agent layer for tabular data. Drop a sheet, get a local MCP server your AI agent can query - with non-destructive derivations on top of a read-only master.

    • addedIngest CSV, TSV, XLSX, SQLite, and public Google Sheets URLs.
    • addedIris semantic read: typed columns, sheet subject, suggested questions, and per-row Tells.
    • addedDerivations on top of a read-only master: views, collections, branches (what-if overlays), snapshots, and annotations.
    • addedMCP server with auto-generated semantic tools per derivation. HTTP (default) and stdio transports.
    • addedLocal SQLite kernel - every operation persists across runs in ~/.nexus/.