Home for end-user client surfaces of the Vellum assistant — browser, mobile, and desktop wrappers that users interact with directly.
clients/
├── web/ # Web app (Vite)
├── docs/ # Public docs site: SSR Next.js app serving www.vellum.ai/docs
├── ios/ # iOS Capacitor shell
├── android/ # Android Capacitor shell
├── macos/ # macOS desktop wrapper (Electron / electron-vite)
├── linux/ # Linux desktop wrapper (Electron / electron-vite, AppImage)
├── windows/ # Windows desktop wrapper (Electron / electron-vite)
└── chrome-extension/ # MV3 Chrome browser extension
The iOS app is a Capacitor shell that lives in ios/; it loads the
web app over HTTPS and does not consume any code from the other client
surfaces.
The Android app is a Capacitor shell that lives in android/;
it follows the same remote web app loading model as iOS.
The macOS, Linux, and Windows Electron shells share their platform-neutral main and
preload foundations through @vellumai/electron-desktop and native helper process supervision through @vellumai/native-sidecar. Thin client adapters
under each platform package connect that core to platform lifecycle and native
features. Dependency-free Electron helpers remain in @vellumai/electron-utils.
- End-user client surfaces (web app, Capacitor wrappers, Electron desktop wrappers, Chrome extension).
- Shared libraries — these live in
packages/. - Backend services —
assistant/,gateway/,credential-executor/,cli/stay at the repo root.
web/,macos/,linux/,windows/, anddocs/are members of the root bun workspace: the single rootbun.lockcovers them, andbun installanywhere in the tree resolves to the workspace root. Each keeps its ownpackage.json,tsconfig.json, and lint config.chrome-extension/is the one standalone package, with its ownbun.lockand per-packagebun install. Native shells (ios/,android/) are Capacitor shells built fromweb/and have no package manifests of their own.- Exact version pinning applies repo-wide (see root
AGENTS.md). - When a new client is added under
clients/, add correspondingpaths:globs to any relevant PR/CI workflows in.github/workflows/.
- macOS workflow filenames —
clients/macos/is the canonical platform-named directory, and its CI workflow files arepr-macos.yaml/ci-main-macos.yaml. - Windows workflow filenames -
clients/windows/usespr-windows.yaml/ci-main-windows.yaml. - Linux workflow filenames -
clients/linux/usespr-linux.yaml/ci-main-linux.yaml. - Desktop parity - the Electron shells expose the same
VellumBridgecontract frompackages/ipc-contract;clients/windows/docs/parity-matrix.mdmaps each capability to its Windows module, macOS counterpart, and test, and names the macOS concepts with no Windows equivalent.
See chrome-extension/README.md for build, load,
environment, and publishing instructions.