Skip to content

Installation

Human can be installed via pre-built binaries or built from source with CMake.

:::tip Pre-built binaries Pre-built binaries are available via Homebrew (brew install --HEAD ./Formula/human.rb), Docker (docker pull ghcr.io/sethdford/h-uman:latest), Nix (nix run github:sethdford/h-uman), and Debian (.deb from Releases). See the main README for details. :::

Before building, ensure you have:

  • C compiler — GCC or Clang (C11)
  • CMake 3.16 or later
  • SQLite3 — for the SQLite memory backend; omit to use markdown-only (-DHU_ENABLE_SQLITE=OFF)
  • libcurl — for HTTP/HTTPS and cloud providers; omit for minimal builds (-DHU_ENABLE_CURL=OFF)
Terminal window
brew install cmake sqlite3
# libcurl is usually included with Xcode Command Line Tools
Terminal window
sudo apt-get update
sudo apt-get install -y build-essential cmake libsqlite3-dev libcurl4-openssl-dev
Terminal window
sudo dnf install -y cmake sqlite-devel libcurl-devel

Clone the repository, then build:

Terminal window
git clone https://github.com/sethdford/h-uman.git
cd human
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel -DHU_ENABLE_LTO=ON -DHU_ENABLE_ALL_CHANNELS=ON -DHU_ENABLE_CURL=ON
cmake --build . -j$(nproc)

The binaries are produced in build/:

  • build/human — main CLI
  • build/human_tests — test suite
Terminal window
mkdir -p build && cd build
cmake .. -DCMAKE_BUILD_TYPE=MinSizeRel -DHU_ENABLE_LTO=ON -DHU_ENABLE_ALL_CHANNELS=ON
cmake --build .

This produces a small binary (~528 KB with LTO) and enables all messaging channels (Telegram, Discord, Slack, etc.).

Terminal window
mkdir -p build && cd build
cmake .. -DHU_ENABLE_ALL_CHANNELS=ON
cmake --build .

For detecting memory errors during development:

Terminal window
cmake -B build -DHU_ENABLE_ASAN=ON -DHU_ENABLE_ALL_CHANNELS=ON
cmake --build build
./build/human_tests
OptionDefaultDescription
HU_ENABLE_ALL_CHANNELSOFFBuild all 33 channels (CLI, Telegram, Discord, etc.)
HU_ENABLE_LTOOFFLink-time optimization for smaller binaries
HU_ENABLE_ASANOFFAddressSanitizer for memory debugging
HU_ENABLE_SQLITEONSQLite memory backend
HU_ENABLE_CURLONlibcurl for HTTP clients

Per-channel options (HU_ENABLE_TELEGRAM, HU_ENABLE_DISCORD, etc.) are available if you want a minimal build with only specific channels.

Confirm the binary runs:

Terminal window
./build/human --help

Example output:

human v0.1.0 — Autonomous AI Assistant Runtime (C/ASM/WASM)
Usage: human [command] [options]
Commands:
agent Run the agent loop
doctor Run diagnostics
onboard First-run setup wizard
...

Run diagnostics to check config and provider setup:

Terminal window
./build/human doctor

Example output (with valid config):

[doctor] config: ok (loaded from /home/user/.human/config.json)
[doctor] provider (ollama): ok (local — no API key required)
[doctor] memory engine: sqlite

If config is missing, run the onboard wizard first (see Quick Start).

Terminal window
./build/human_tests

All 3,185+ tests must pass with zero ASan errors.