Omni

Docs

Building from Source

Compile the Omni agent, runtime, and CLI from source. Useful for contributors, custom builds, and running on architectures without pre-built binaries.

Prerequisites

Rust toolchain1.78+

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

wasm32-wasi target

rustup target add wasm32-wasip1

Node.js20+

Required for the WhatsApp Baileys sidecar

SQLite dev headers3.35+

apt install libsqlite3-dev (Linux) / brew install sqlite (macOS)

OpenSSL dev headers1.1+

apt install libssl-dev pkg-config (Linux) / brew install openssl (macOS)

Clone & Build

terminal

# Clone the repository

git clone https://github.com/omniai/omni.git

cd omni

 

# Build all crates in release mode

cargo build --release

 

# Binary location

./target/release/omni --version

A full release build takes 3-5 minutes on a modern machine. Debug builds are faster but produce significantly larger binaries.

Crate Structure

Omni is a Cargo workspace with seven crates. Each can be built and tested independently.

01
omni-core

Agent loop, event bus, configuration, and database layer

02
omni-channels

All 21+ messaging platform integrations

03
omni-runtime

WASM extension runtime with Wasmtime, host functions, and sandbox enforcement

04
omni-guardian

Anti-injection pipeline and capability-based permission system

05
omni-tools

29 built-in native tools (exec, file, web, memory, git, testing, debugging, REPL, etc.)

06
omni-cli

CLI binary, extension publishing commands, and config migration

07
omni-sdk

Guest-side SDK crate for building WASM extensions

Platform-Specific Notes

Windows

  • -Install Visual Studio Build Tools 2022 with the “Desktop development with C++” workload
  • -Use vcpkg to install OpenSSL: vcpkg install openssl:x64-windows
  • -Set OPENSSL_DIR and OPENSSL_LIB_DIR environment variables

macOS

  • -Xcode Command Line Tools required: xcode-select --install
  • -Apple Silicon (M1/M2/M3) is natively supported — builds produce arm64 binaries

Linux

apt (Debian/Ubuntu)

sudo apt update

sudo apt install build-essential pkg-config \

libssl-dev libsqlite3-dev

Running Tests

cargo test

# Run the full test suite

cargo test --workspace

 

# Run tests for a specific crate

cargo test -p omni-runtime

 

# Run with logging output

RUST_LOG=debug cargo test --workspace -- --nocapture

Integration tests for channel crates require environment variables for bot tokens. See .env.example for the full list.

Development Workflow

01

Watch mode

Use cargo watch -x run to auto-rebuild on file changes. Install with cargo install cargo-watch.

02

Check before committing

Run cargo clippy --workspace -- -D warnings and cargo fmt --check to match CI lint rules.

03

Build extensions locally

Use cargo build --target wasm32-wasip1 --release in your extension crate, then omni ext install --path ./target/...

04

Debug logging

Set RUST_LOG=omni_core=debug,omni_runtime=trace for granular runtime output.

Next Steps

Building from Source — Compile Omni Locally | Omni AI Agent Builder