Skip to main content

Development Setup

Get Omniscribe running locally for development and contributing.

Prerequisites

  • Node.js >= 22.0.0
  • pnpm >= 10.x
  • A C++ compiler for native modules (node-pty):
    • macOS: xcode-select --install
    • Windows: Visual Studio Build Tools
    • Linux: build-essential package

Setup

# Clone the repository
git clone https://github.com/Shironex/omniscribe.git
cd omniscribe

# Install dependencies
pnpm install

# Build shared packages (required before first run)
pnpm build:packages

# Start development
pnpm dev

This starts both the Vite dev server (frontend) and Electron (desktop app) concurrently. The app opens automatically once the frontend is ready.

Common Commands

# Development
pnpm dev # Start web + desktop concurrently
pnpm dev:debug # Start with debug logging

# Building
pnpm build # Build all packages and apps
pnpm build:packages # Build only shared packages

# Quality
pnpm lint # Run ESLint
pnpm format # Run Prettier (write)
pnpm typecheck # Run TypeScript type checking
pnpm test # Run all tests

# Packaging
pnpm package:mac # Package for macOS
pnpm package:win # Package for Windows
pnpm package:linux # Package for Linux

Project Configuration

  • ESLint + Prettier are configured for code quality
  • Husky + lint-staged run checks on git commit
  • Conventional commits are used (feat:, fix:, refactor:, etc.)
  • TypeScript strict mode is enabled across all packages

Next Steps