Skip to content

feat(desktop): move vAPI Desktop into the open-source monorepo - #23

Merged
vapi-development merged 3 commits into
mainfrom
desktop/import
Oct 30, 2026
Merged

vapi-development merged 3 commits into
mainfrom
desktop/import

Conversation

@vapi-development

Copy link
Copy Markdown
Contributor

What

Moves vAPI Desktop into this repo as apps/desktop, plus the core/MCP/shim changes it needs (previously the unpublished desktop-spike branch).

vAPI Desktop is the macOS app that keeps agent-wallet keys on the user's Mac (signer process only), enforces per-payment and per-day limits, and connects Claude Desktop, Cursor, VS Code, Codex and Grok through a local MCP shim. Keeping it next to the wallet engine makes the key-holding code public and removes the local link: dependency that blocked releases.

Changes

  • packages/*: createVault() without a first account, linkStates(), remotePaymentAccount over a caller-supplied channel, VapiMcpServer.connect with caller streams, mcp-shim socket forwarder with a wallet hello frame.
  • apps/desktop: the app (53 test files), workspace deps on core/mcp/mcp-shim, vendored design tokens with OFL font licences, vite pinned 7.3.5, desktop copy check.
  • CI: new macOS job (vAPI Desktop (macOS)) builds the Swift helpers and runs the desktop suite; the Linux job skips desktop tests.
  • Releases: .github/workflows/desktop-release.yml runs only on desktop-v* tags, signs and notarizes on a GitHub-hosted macOS runner behind the desktop-signing environment, and uploads a draft release here. apps/desktop/update-control.json is the updater kill switch. Setup in apps/desktop/RELEASE.md. Not triggered yet (waits on the Apple Developer ID).

Verification (local, macOS)

  • pnpm --dir apps/desktop test → Test Files 53 passed, Tests 459 passed
  • pnpm lint, pnpm format:check, pnpm typecheck, pnpm test, pnpm lint:copy → exit 0
  • pnpm --dir apps/desktop check:copy → passed across 27 source files; node --test apps/desktop/scripts/*.test.mjs → 11 pass
  • pnpm --dir apps/desktop pack:mac && check:packaged → unsigned arm64 DMG + zip, packaged app OK

Follow-up: remove apps/desktop from the private console repo once this merges.

- core: createVault() without a first account; linkStates() per wallet;
  remotePaymentAccount signs through a caller-supplied channel.
- mcp: VapiMcpServer.connect accepts caller-supplied streams.
- mcp-shim: stdio to vAPI Desktop socket forwarder (.mcpb bundle) with a
  hello frame that names the agent wallet.

Signed-off-by: vAPI Development <336934719+vapi-development@users.noreply.github.com>
vAPI Desktop, the macOS app that keeps agent-wallet keys on the user's Mac
and connects Claude Desktop, Cursor, VS Code, Codex and Grok through a local
MCP shim, moves here from the private console repo so the code that holds
keys is public next to the wallet engine it uses.

- apps/desktop with workspace deps on core, mcp and mcp-shim (no more local
  link: paths); design tokens and OFL fonts vendored; vite pinned 7.3.5.
- CI: macOS job builds the Swift helpers and runs the desktop suite; the
  Linux job skips desktop tests.
- Releases: desktop-v* tags build, sign and notarize on GitHub-hosted macOS
  runners behind the desktop-signing environment and publish a draft to this
  repo's Releases; apps/desktop/update-control.json is the update kill switch.
- Desktop copy check ported; ESLint/Prettier cover the app.

Signed-off-by: vAPI Development <336934719+vapi-development@users.noreply.github.com>
The Linux job typechecks before it builds, and desktop resolves core and
mcp through their built types. The macOS job builds first, then typechecks
desktop.

Signed-off-by: vAPI Development <336934719+vapi-development@users.noreply.github.com>
@vapi-development
vapi-development merged commit 961c99e into main Oct 30, 2026
5 checks passed
@ztsrdev
ztsrdev deleted the desktop/import branch October 30, 2026 15:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant