Skip to main content
Rowboat is an open-source project built as a monorepo containing multiple applications and packages. This guide will help you start contributing to the codebase.

Prerequisites

Before you begin, ensure you have the following installed:
  • Node.js 18+ (with npm)
  • pnpm (required for workspace protocol)
  • Git for version control
Rowboat uses pnpm as its package manager because it’s required for the workspace:* protocol used in the monorepo.

Quick Start

1

Clone the repository

git clone https://github.com/rowboat-ai/rowboat.git
cd rowboat
2

Install dependencies

Navigate to the Electron app directory and install dependencies:
cd apps/x
pnpm install
3

Build workspace packages

Build the shared packages in the correct order:
npm run deps
This builds: sharedcorepreload
4

Start development mode

npm run dev
This starts the Electron app with hot-reload for the renderer process.

Repository Structure

The Rowboat monorepo contains several applications:
  • apps/x - Electron desktop app (primary focus)
  • apps/rowboat - Next.js web dashboard
  • apps/rowboatx - Next.js frontend
  • apps/cli - Command-line interface tool
  • apps/python-sdk - Python SDK
  • apps/docs - Documentation site (Mintlify)
Most development work focuses on the Electron app (apps/x), which has its own nested workspace structure.

Development Workflow

Running the Electron App

cd apps/x
npm run dev       # Builds deps and starts app
npm run lint      # Run linter
npm run lint:fix  # Fix linting issues

Making Changes

  1. Shared types/utilities - Edit apps/x/packages/shared/src/, then run npm run deps
  2. Core business logic - Edit apps/x/packages/core/src/, then run npm run deps
  3. Main process - Edit apps/x/apps/main/src/, requires dev server restart
  4. Renderer (UI) - Edit apps/x/apps/renderer/src/, hot-reloads automatically
  5. Preload scripts - Edit apps/x/apps/preload/src/, then run npm run deps
Changes to the main process don’t hot-reload. You must restart the dev server to see changes.

Tech Stack

The Electron app is built with modern web technologies:
LayerTechnology
DesktopElectron 39.x
UIReact 19, Vite 7
StylingTailwindCSS, Radix UI
StateReact hooks
AIVercel AI SDK, OpenAI/Anthropic/Google/OpenRouter
IPCElectron contextBridge
BuildTypeScript 5.9, esbuild, Electron Forge

Key Documentation

Getting Help

For detailed context when working with AI coding agents, refer to the CLAUDE.md file in the repository root. This file contains comprehensive information about the codebase structure, common tasks, and key reference files.

Build docs developers (and LLMs) love