# Rowboat Dependencies: Complete Guide to rowboatlabs/rowboat Packages and Libraries

> Explore the rowboatlabs/rowboat monorepo dependencies. Discover how AI SDKs, React, and cloud libraries power its Electron app, Next.js dashboards, and CLI tools.

- Repository: [RowBoat Labs/rowboat](https://github.com/rowboatlabs/rowboat)
- Tags: how-to-guide
- Published: 2026-02-16

---

**The rowboatlabs/rowboat monorepo manages dependencies across multiple workspaces—including an Electron desktop app, Next.js web dashboards, and a CLI tool—utilizing AI SDKs, React ecosystems, and cloud service libraries.**

Rowboat is a multi-package monorepo organized as a pnpm workspace. Understanding the rowboatlabs/rowboat dependencies requires examining each workspace's [`package.json`](https://github.com/rowboatlabs/rowboat/blob/main/package.json), as the project splits functionality across independent applications with specific runtime and development requirements.

## Understanding the Rowboat Monorepo Structure

The repository uses pnpm workspaces to manage dependencies across distinct applications. Each workspace maintains its own [`package.json`](https://github.com/rowboatlabs/rowboat/blob/main/package.json), creating a distributed dependency graph rather than a single root manifest.

Key workspace locations include:

- `apps/x/` – Electron desktop application with nested packages
- `apps/rowboat/` – Next.js web dashboard
- `apps/rowboatx/` – Next.js frontend application
- `apps/cli/` – Command-line interface tool

## Core Dependencies by Workspace

### Electron Desktop App (apps/x)

The Electron application uses a nested monorepo structure with multiple sub-packages.

**Shared Utilities ([`apps/x/packages/shared/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/packages/shared/package.json))**

- **Runtime**: `zod` for schema validation

**Core Business Logic ([`apps/x/packages/core/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/packages/core/package.json))**

- **AI Providers**: `@ai-sdk/anthropic`, `@ai-sdk/google`, `@ai-sdk/openai`, `@ai-sdk/openai-compatible`, `@ai-sdk/provider`, `@openrouter/ai-sdk-provider`, `ollama-ai-provider-v2`
- **Integration Platforms**: `@composio/core`, `@modelcontextprotocol/sdk`
- **Document Processing**: `@react-pdf/renderer`, `mammoth`, `node-html-markdown`, `papaparse`, `pdf-parse`, `xlsx`
- **Google Services**: `@google-cloud/local-auth`, `google-auth-library`, `googleapis`
- **Utilities**: `awilix`, `chokidar`, `cron-parser`, `glob`, `yaml`, `zod`
- **Development**: `@types/node`, `@types/papaparse`, `@types/pdf-parse`

**Renderer Process ([`apps/x/apps/renderer/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/apps/renderer/package.json))**

- **UI Framework**: `react`, `react-dom`, `@radix-ui/*` primitives, `tailwindcss`, `@tailwindcss/vite`
- **Editor**: `@tiptap/*` packages for rich text editing
- **AI Integration**: `ai` SDK
- **Utilities**: `lucide-react`, `clsx`, `class-variance-authority`, `cmdk`, `motion`, `nanoid`, `posthog-js`, `sonner`, `streamdown`, `tailwind-merge`, `tokenlens`, `zod`
- **Development**: `@eslint/js`, `@types/node`, `@types/react`, `@vitejs/plugin-react`, `eslint`, `typescript`, `vite`

**Main Process ([`apps/x/apps/main/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/apps/main/package.json))**

- **Electron**: `electron`, `electron-squirrel-startup`, `update-electron-app`
- **Core Logic**: `@x/core`, `@x/shared` (workspace links)
- **File Processing**: `chokidar`, `mammoth`, `papaparse`, `pdf-parse`, `xlsx`
- **Development**: `@electron-forge/*`, `@types/node`, `esbuild`

**Preload Script ([`apps/x/apps/preload/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/apps/preload/package.json))**

- **Workspace**: `@x/shared`
- **Build**: `electron`, `esbuild`

### Web Dashboards

**Primary Dashboard ([`apps/rowboat/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboat/package.json))**

- **Framework**: `next` (v15), `react` (v19), `react-dom`
- **AI**: `@ai-sdk/openai`, `ai`, `@langchain/*`, `@openai/agents`, `@google/generative-ai`
- **Auth**: `@auth0/nextjs-auth0`, `jose`
- **Database**: `mongodb`, `ioredis`, `@qdrant/js-client-rest`
- **Cloud**: `@aws-sdk/client-s3`, `@aws-sdk/s3-request-presigner`, `twilio`
- **UI**: `@heroui/*`, `@heroicons/react`, `@primer/react`, `lucide-react`, `tailwindcss`, `framer-motion` (implied by motion), `clsx`, `tailwind-merge`
- **Editors**: `@tiptap/*` (implied), `quill`, `react-markdown`, `react-diff-viewer`, `@dnd-kit/*`, `react-resizable-panels`
- **Integration**: `@composio/core`, `@modelcontextprotocol/sdk`, `@mendable/firecrawl-js`
- **Utilities**: `zod`, `zod-to-json-schema`, `nanoid`, `immer`, `cron-parser`, `dotenv`, `mermaid`, `posthog-js`, `streamdown`, `remark-gfm`, `react-dropzone`, `@internationalized/date`
- **Development**: `@tailwindcss/postcss`, `@types/node`, `@types/react`, `eslint`, `eslint-config-next`, `postcss`, `tsx`, `typescript`

**Frontend App ([`apps/rowboatx/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/rowboatx/package.json))**

- **Framework**: `next` (v15), `react`, `react-dom`
- **AI**: `@ai-sdk/react`, `ai`, `streamdown`
- **UI**: `@radix-ui/*`, `tailwindcss`, `@tailwindcss/postcss`, `lucide-react`, `clsx`, `class-variance-authority`, `cmdk`, `framer-motion` (as `motion`), `tailwind-merge`, `tw-animate-css`
- **Editors**: `@tiptap/*`, `lowlight`, `shiki`, `marked`, `react-markdown`, `remark-gfm`, `turndown`, `use-stick-to-bottom`
- **Flow**: `@xyflow/react`
- **Utilities**: `nanoid`, `tokenlens`, `v0-sdk`
- **Development**: `@eslint/eslintrc`, `@types/node`, `@types/react`, `eslint`, `eslint-config-next`, `typescript`

### CLI Tool ([`apps/cli/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/cli/package.json))

- **AI Providers**: `@ai-sdk/anthropic`, `@ai-sdk/google`, `@ai-sdk/openai`, `@ai-sdk/openai-compatible`, `@ai-sdk/provider`, `@openrouter/ai-sdk-provider`, `ollama-ai-provider-v2`
- **Framework**: `hono`, `hono-openapi`
- **UI**: `ink`, `react` (for CLI UI)
- **Integration**: `@modelcontextprotocol/sdk`, `eventsource-parser`
- **Google**: `google-auth-library`, `googleapis`
- **Utilities**: `awilix`, `dotenv`, `json-schema-to-zod`, `nanoid`, `node-html-markdown`, `yaml`, `yargs`, `zod`
- **Development**: `@types/node`, `@types/react`, `typescript`

## Dependency Categories Across the Monorepo

### AI and Machine Learning SDKs

Rowboat integrates multiple AI providers through the **Vercel AI SDK** (`ai`) and provider-specific packages:

- **Anthropic**: `@ai-sdk/anthropic`
- **OpenAI**: `@ai-sdk/openai`
- **Google**: `@ai-sdk/google`, `@google/generative-ai`
- **OpenRouter**: `@openrouter/ai-sdk-provider`
- **Ollama**: `ollama-ai-provider-v2` for local models
- **LangChain**: `@langchain/*` packages in the web dashboard

### UI Frameworks and Component Libraries

The project uses **React** across all applications with modern UI primitives:

- **Styling**: `tailwindcss`, `tailwind-merge`, `clsx`, `class-variance-authority`
- **Primitives**: `@radix-ui/*` components, `@heroui/*` (HeroUI), `@primer/react`
- **Icons**: `lucide-react`, `@heroicons/react`
- **Animation**: `motion` (Framer Motion)
- **Editors**: `@tiptap/*`, `quill`, `react-markdown`, `shiki`, `lowlight`

### Data Processing and Validation

- **Schema Validation**: `zod` (used universally), `zod-to-json-schema`, `json-schema-to-zod`
- **Document Parsing**: `pdf-parse`, `mammoth` (Word documents), `xlsx` (Excel), `papaparse` (CSV), `node-html-markdown`
- **Utilities**: `yaml`, `cron-parser`, `glob`, `nanoid`, `immer`

### Cloud Services and Authentication

- **AWS**: `@aws-sdk/client-s3`, `@aws-sdk/s3-request-presigner`
- **Google Cloud**: `googleapis`, `google-auth-library`, `@google-cloud/local-auth`
- **Auth0**: `@auth0/nextjs-auth0` for Next.js authentication
- **Databases**: `mongodb`, `ioredis` (Redis), `@qdrant/js-client-rest`
- **Communication**: `twilio`
- **Monitoring**: `posthog-js`

## Installing and Managing Dependencies

Rowboat uses **pnpm** as its package manager with workspace protocol linking.

### Installing All Workspaces

From the repository root:

```bash
pnpm install

```

This installs dependencies for all workspaces defined in [`pnpm-workspace.yaml`](https://github.com/rowboatlabs/rowboat/blob/main/pnpm-workspace.yaml), including the Electron app, Next.js dashboards, and CLI tool.

### Installing Specific Workspace Dependencies

To install dependencies for a specific application:

```bash

# Electron desktop app

cd apps/x
pnpm install

# Web dashboard

cd apps/rowboat
pnpm install

# CLI tool

cd apps/cli
pnpm install

```

### Workspace Linking

Internal packages use pnpm workspace protocols. For example, in [`apps/x/apps/renderer/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/apps/renderer/package.json):

```json
{
  "dependencies": {
    "@x/core": "workspace:*",
    "@x/shared": "workspace:*"
  }
}

```

This links to `apps/x/packages/core` and `apps/x/packages/shared` respectively.

## Summary

- **Rowboat** is a pnpm monorepo with dependencies distributed across multiple workspaces including an Electron desktop app (`apps/x`), Next.js web dashboards (`apps/rowboat`, `apps/rowboatx`), and a CLI tool (`apps/cli`).
- **AI integration** relies on the Vercel AI SDK (`ai`) with provider-specific packages for Anthropic, OpenAI, Google, OpenRouter, and Ollama local models.
- **UI development** uses React 19, Next.js 15, Tailwind CSS, Radix UI primitives, and Tiptap editors across both desktop and web applications.
- **Data processing** depends on `zod` for validation, `pdf-parse`/`mammoth`/`xlsx` for document parsing, and `mongodb`/`ioredis`/`@qdrant/js-client-rest` for database operations.
- **Installation** requires `pnpm install` from the root to resolve all workspace dependencies using the `workspace:*` protocol for internal package linking.

## Frequently Asked Questions

### What package manager does rowboatlabs/rowboat use?

The rowboatlabs/rowboat repository uses **pnpm** as its package manager. The monorepo configuration relies on pnpm workspaces to link internal packages using the `workspace:*` protocol, allowing the Electron app, Next.js dashboards, and CLI tool to share local dependencies without publishing to npm.

### How are dependencies shared between the Electron app and web dashboards?

Dependencies are **not directly shared** between the Electron app (`apps/x`) and web dashboards (`apps/rowboat`, `apps/rowboatx`). Each workspace maintains its own [`package.json`](https://github.com/rowboatlabs/rowboat/blob/main/package.json) and `node_modules`. However, both use similar technology stacks—React, Tailwind CSS, and the Vercel AI SDK—allowing for consistent development patterns across platforms while keeping dependencies isolated per workspace.

### Does rowboatlabs/rowboat support local AI models?

Yes, the repository supports local AI models through the **Ollama** integration. The [`apps/x/packages/core/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/x/packages/core/package.json) and [`apps/cli/package.json`](https://github.com/rowboatlabs/rowboat/blob/main/apps/cli/package.json) both include `ollama-ai-provider-v2`, which provides compatibility with locally hosted models via Ollama, alongside cloud providers like OpenAI, Anthropic, and Google.

### What database dependencies are required for the Rowboat web dashboard?

The `apps/rowboat` Next.js dashboard requires **MongoDB** (`mongodb`), **Redis** (`ioredis`), and **Qdrant** (`@qdrant/js-client-rest`) for data persistence and vector storage. These dependencies support the dashboard's agent management, conversation history, and semantic search capabilities.