Skip to content

Installation

  • Node.js >= 18
  • pnpm (install with npm install -g pnpm)
  • Git
Terminal window
git clone https://github.com/thehorse2000/vibedepot.git
cd vibedepot
pnpm install

This installs dependencies for all workspace packages: the Electron shell, shared types, and the app preload script.

Terminal window
pnpm dev

This launches the Electron app in development mode with hot module replacement for the renderer.

Terminal window
pnpm build

This builds the preload script first, then the shell (Electron main + renderer). The build order is handled automatically.

CommandDescription
pnpm build:preloadBuild only the preload script
pnpm lintRun ESLint across all packages

After cloning, the monorepo has this layout:

vibedepot/
├── shell/ # Electron desktop app
│ └── src/
│ ├── main/ # Main process (IPC, providers, app management)
│ ├── preload/ # Shell's own preload script
│ └── renderer/ # React UI (store, library, settings)
├── packages/
│ ├── shared/ # Types, schemas, IPC channels, permissions
│ ├── app-preload/ # Preload script for sandboxed apps
│ └── cli/ # Developer CLI (init, validate, publish)
├── registry/ # Separate git repo — public app catalog
├── package.json
├── pnpm-workspace.yaml
└── tsconfig.base.json

VibeDepot stores data in the Electron userData directory:

PlatformPath
macOS~/Library/Application Support/vibedepot/
Windows%APPDATA%/vibedepot/
Linux~/.config/vibedepot/

Within that directory:

vibedepot/
├── apps/ # Installed app bundles
│ └── {appId}/
│ ├── manifest.json
│ └── index.html
├── app-data/ # Per-app data
│ └── {appId}/
│ ├── store.json # KV storage
│ └── database.sqlite # SQLite database
├── installed-apps.json # App metadata
└── registry-cache.json # Cached registry (1-hour TTL)

API keys are stored securely in the OS keychain (macOS Keychain, Windows Credential Manager, or Linux Secret Service).

The VibeDepot CLI is a separate package for app development:

Terminal window
npm install -g @vibedepot/cli

Verify the installation:

Terminal window
vibedepot --version

See Using the CLI for all available commands.