Development Setup
Available Commands
| Command | Description |
|---|---|
pnpm dev | Run all apps in development mode |
pnpm dev:web | Run web apps only |
pnpm build | Build all apps via Turbo |
pnpm lint | Run linters across all packages |
pnpm test | Run all tests |
pnpm typecheck | TypeScript type checking |
pnpm db:push | Sync Prisma schema to database |
pnpm db:seed | Seed the database |
pnpm db:studio | Open Prisma Studio |
pnpm build:sidecar | Build the sidecar binary |
pnpm build:desktop | Build the Tauri desktop app |
pnpm build:app | Full desktop build (sidecar + app) |
pnpm build:app:fast | Desktop build without sidecar rebuild |
Project Structure
| Directory | Description |
|---|---|
apps/desktop | Tauri desktop app (Rust shell) |
apps/desktop-ui | Next.js webview UI |
apps/sidecar | Local Express API and execution engine |
apps/api | Shared API routes and services |
apps/landing | Marketing site (Next.js, deployed on Vercel) |
packages/db | Prisma schema and database client |
packages/openlinear | npm package (CLI launcher + library) |
packages/types | Shared TypeScript type definitions |
packaging/aur | Arch/AUR package metadata |
scripts/ | Build, dev, and release scripts |
CI/CD Pipeline
Continuous Integration
Every push and pull request triggers:.github/workflows/ci.yml.
Release Pipeline
Tag-based releases via.github/workflows/release.yml:
- Verifies the tag matches versions in
packages/openlinear/package.jsonandapps/desktop/src-tauri/tauri.conf.json - Regenerates
packaging/aur/openlinear-bin/.SRCINFO - Builds macOS and Linux release artifacts
- Publishes to GitHub Releases, npm, and AUR
Required Secrets
| Secret | Purpose |
|---|---|
NPM_TOKEN | npm automation token for publishing |
AUR_SSH_PRIVATE_KEY | SSH key for AUR package updates |

