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

git clone https://github.com/triangle-int/bolly.git
cd bolly

Project structure

bolly/
├── server/         # Rust backend (Axum)
├── client/         # SvelteKit frontend
├── desktop/        # Tauri 2 desktop app
├── landing/        # Marketing site (SvelteKit)
└── VERSION         # Single source of truth for version

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:
cd client
pnpm install
pnpm build
cd ..
2

Build the server

cd server
cargo build --release
The binary will be at target/release/bolly.
3

Run the server

cargo run --release
Or run the binary directly:
./target/release/bolly
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

cd server
cargo run
2

Start the client dev server

In a separate terminal:
cd client
pnpm install
pnpm dev
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

cd desktop
pnpm install
3

Development mode

pnpm tauri dev
This starts the desktop app with hot reload.
4

Build for production

pnpm tauri build
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:
cd landing
pnpm install
pnpm dev
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:
BOLLY_HOME=/path/to/data cargo run

Code style and linting

Before submitting changes:
# Rust
cd server
cargo fmt
cargo clippy

# Client/Desktop
cd client  # or desktop
pnpm check

Running tests

# Server tests
cd server
cargo test

# Client tests
cd client
pnpm test

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.