Skip to main content
Building from source is for developers who want to contribute, customize Bolly’s behavior, or run the latest unreleased changes.

Prerequisites

Required

  • Rust (latest stable via rustup)
  • Node.js (LTS, v20+)
  • pnpm (NOT npm or yarn)
  • Git

For Desktop App

  • All of the above, plus:
  • Tauri 2 prerequisites (see platform guide)
  • macOS: Xcode Command Line Tools
  • Linux: webkit2gtk, libappindicator, librsvg
  • Windows: Visual Studio C++ Build Tools, WebView2

Clone the repository

Project structure

Building the server

The server is a Rust application using Axum. It embeds the compiled client at build time via rust-embed.
1

Build the client first

The server embeds the client’s build output, so build the client first:
2

Build the server

The binary will be at target/release/bolly.
3

Run the server

Or run the binary directly:
Open http://localhost:26559 in your browser. Bolly will walk you through the initial setup.
For development, use cargo run (without --release) for faster compilation with debug symbols.

Development mode (hot reload)

For active development, run the server and client separately with hot reload:
1

Start the server in dev mode

2

Start the client dev server

In a separate terminal:
The client dev server runs on http://localhost:5173 with hot module replacement.

Building the desktop app

The desktop app wraps the client in a Tauri 2 shell, adding computer use capabilities.
1

Install Tauri prerequisites

Follow the Tauri 2 prerequisites guide for your platform.
2

Install dependencies

3

Development mode

This starts the desktop app with hot reload.
4

Build for production

Built artifacts will be in desktop/src-tauri/target/release/bundle/.

Building the landing page

If you want to run or modify the marketing site:
The landing page runs on http://localhost:5173.
The landing page requires a PostgreSQL database (Neon) for user management features. For just viewing the site, the dev server works without it.

Custom data directory

Set the BOLLY_HOME environment variable to use a different data directory:

Code style and linting

Before submitting changes:

Running tests

Contributing

  1. Fork the repository from the main branch
  2. Create a feature branch
  3. Test your changes locally
  4. Keep commit messages short and imperative
  5. Submit a pull request
See CONTRIBUTING.md in the repository for full guidelines.

Next steps

Configuration

Customize personality, heartbeat, and memory settings.

API Keys

Learn about API keys for Anthropic, Google AI, and ElevenLabs.