If you have already spotted OpenHuman on GitHub but have not installed it yet, this is the shortest 2026 path from zero to working agent: download, install, connect OAuth, and hear the agent say something like “you have a meeting this afternoon” — with copy-paste commands and clear success checks at each step. Experienced users can finish in about five minutes, including OAuth pop-ups and the first sync wait. OpenHuman is not another chat tab in a browser; it is a desktop personal AI digital twin with a local Memory Tree, 118+ OAuth integrations, and background sync cycles on the order of twenty minutes. Once it is running, read our deeper pieces on architecture and the Memory Tree and Agent Skills. This article only answers: how to install, how to configure, and how to know it worked.
Before you install
OpenHuman is a Tauri desktop app (Rust core + web UI). Official builds support macOS, Windows, and Linux. In 2026 the smoothest experience is still on Apple Silicon Macs — especially when you run local Ollama or MLX on the same machine and want low latency. Before you download anything, confirm the following:
- System permissions — On macOS, allow the downloaded app under Privacy & Security, or right-click the app and choose Open if Gatekeeper blocks it.
- At least one LLM credential — An Anthropic or OpenAI API key, or a running local Ollama instance (optional). You can open the UI without a key, but the agent cannot reason.
- Two or three accounts to connect first — For developers, start with Gmail + Google Calendar + GitHub. For knowledge work, Notion + Slack is a solid alternative. Without real data sources, the Memory Tree stays empty and your five-minute acceptance test will fail.
- Disk and network — The Memory Tree writes to local SQLite and Markdown; reserve a few hundred megabytes. OAuth and the first ingestion pass need a stable connection.
Full dependencies and building from source are documented in the official repo docs/; most users never need to clone the repository. Run this environment self-check in Terminal first so you do not discover a missing Homebrew or wrong CPU architecture halfway through install:
# 1. OS and chip (Apple Silicon reports arm64) sw_vers uname -m # 2. Homebrew availability (required for brew install path) brew --version brew doctor # 3. If you plan to use local Ollama, confirm port 11434 is free lsof -i :11434 || echo "端口 11434 空闲,可启动 Ollama" # 4. Disk space (Memory Tree + model cache; aim for ≥5GB free) df -h ~
Three install paths: signed package, Homebrew, script
The official README is explicit: prefer signed native installers or your system package manager. One-liner scripts are fine for a quick trial but carry higher supply-chain risk. The table below is ordered by recommendation.
| Method | Best for | Command / entry point |
|---|---|---|
| Official installer (recommended) | macOS / Win / Linux | tinyhumans.ai/openhuman or GitHub Releases (DMG / MSI / deb / AppImage) |
| Homebrew (macOS / Linux) | Terminal-first Mac users | brew tap tinyhumansai/core → brew install openhuman |
| One-line script (demo) | Quick try, CI sandboxes | curl -fsSL …/install.sh | bash (preview with --dry-run first) |
# Open latest Release in browser (pick arm64 or x64 for your chip) open "https://github.com/tinyhumansai/openhuman/releases/latest" # Or the product download page open "https://tinyhumans.ai/openhuman" # After download, mount DMG and copy to Applications (filename may vary) hdiutil attach ~/Downloads/OpenHuman*.dmg cp -R "/Volumes/OpenHuman/OpenHuman.app" /Applications/ hdiutil detach "/Volumes/OpenHuman" # If macOS blocks an unverified developer, clear quarantine then open xattr -dr com.apple.quarantine /Applications/OpenHuman.app open -a OpenHuman
# 1. Add official tap (once) brew tap tinyhumansai/core # 2. Install (pulls current stable binary) brew install openhuman # 3. Verify PATH which openhuman openhuman --version # 4. Launch desktop app (CLI opens app, or use Launchpad) openhuman # 5. Upgrade later brew update brew upgrade openhuman # Alternative without core tap (some docs use this form) # brew install tinyhumansai/openhuman/openhuman
# Check Node version node -v # Install npm package (downloads platform binary and verifies SHA-256) npm install -g openhuman openhuman --version openhuman
# 1. Import GPG key and add apt source (official install docs) sudo apt-get install -y gnupg2 curl ca-certificates curl -fsSL https://tinyhumansai.github.io/openhuman/apt/KEY.gpg \ | sudo gpg --dearmor -o /etc/apt/keyrings/openhuman.gpg echo "deb [signed-by=/etc/apt/keyrings/openhuman.gpg arch=amd64] \ https://tinyhumansai.github.io/openhuman/apt stable main" \ | sudo tee /etc/apt/sources.list.d/openhuman.list # 2. Install and launch sudo apt-get update sudo apt-get install -y openhuman openhuman --version
# 1. Download script only — do not execute yet curl -fsSL \ https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh \ -o /tmp/openhuman-install.sh less /tmp/openhuman-install.sh # 2. Official dry-run preview (when script version supports it) bash /tmp/openhuman-install.sh --dry-run --verbose # 3. Install after review bash /tmp/openhuman-install.sh # macOS / Linux one-liner (same as step 3) curl -fsSL \ https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh \ | bash # Windows PowerShell: irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iex
Security note
Piping remote scripts (curl | bash) is a supply-chain risk on any project. In company environments, distribute a signed DMG via MDM or mirror the Homebrew tap internally. For personal learning, scripts are acceptable — but do not run them bare on machines that hold production secrets.
macOS walkthrough: install through acceptance (full example)
Below is a copy-paste Terminal + GUI hybrid path. It assumes Homebrew install and an Anthropic API key; if you used the DMG, start at step 3. Each step includes how to confirm success.
brew tap tinyhumansai/core brew install openhuman openhuman --version open -a OpenHuman # Confirm app is running (expect OpenHuman-related processes) pgrep -lf -i openhuman || ps aux | grep -i openhuman | grep -v grep
# Install and start Ollama in background (separate from OpenHuman, shares GPU) brew install ollama brew services start ollama # Pull a small model for connectivity test (name/size as you prefer) ollama pull llama3.2 # API health check: JSON with models list curl -s http://127.0.0.1:11434/api/tags | head -c 400 echo
# GUI: Settings → Models / Providers # - Cloud: paste Anthropic API key (sk-ant-...) or OpenAI key # - Local: Base URL http://127.0.0.1:11434 , model e.g. llama3.2 # Do not put keys in shell history; for CLI probes use temporary export: read -s ANTHROPIC_API_KEY && export ANTHROPIC_API_KEY # (Enter key, no echo; unset ANTHROPIC_API_KEY when done) # Quick Anthropic key probe (independent of OpenHuman) curl -s https://api.anthropic.com/v1/messages \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "content-type: application/json" \ -d '{"model":"claude-sonnet-4-20250514","max_tokens":32,"messages":[{"role":"user","content":"ping"}]}' \ | head -c 300 echo
# GUI: Connections / Integrations → Connect each service # Suggested order: Gmail → Google Calendar → GitHub # After browser OAuth, app should show Connected / Active # If corporate proxy breaks callbacks, test HTTPS egress: curl -sI https://github.com | head -5 curl -sI https://accounts.google.com | head -5
# Keep OpenHuman running 5–20 minutes; check menu bar sync status # Data path varies by version: see Settings → Data / Memory in app # Often under Application Support; coarse search (may take seconds): find ~/Library/Application\ Support -maxdepth 3 -iname '*openhuman*' 2>/dev/null # If MEMORY_DIR is known, list recent Markdown: # MEMORY_DIR="…/memory" # replace with path from Settings # ls -lt "$MEMORY_DIR" | head # find "$MEMORY_DIR" -name '*.md' -mtime -1 | head # Spot-check a .md for real subject lines (email/meeting/PR) # head -40 "$(find "$MEMORY_DIR" -name '*.md' | head -1)"
# Test 1 — Calendar (requires Google Calendar connected) "List today's meetings with titles and start times, citing Memory Tree sources." # Test 2 — GitHub (requires GitHub connected) "Which repo had my most recent merged PR? Give repo name and PR title." # On failure: vague answers mean .md files may not exist yet — revisit step 6
5-minute first-run checklist
If you prefer a checklist over long command blocks, work through this list in order — it maps one-to-one to the walkthrough above. Start the clock when the app is already open.
- Minute 1: pick a model provider — In Settings, enter Anthropic / OpenAI keys, or Ollama base URL
http://127.0.0.1:11434. Confirm withcurl …/api/tagsor the Anthropic probe above. - Minutes 2–3: OAuth — Connect Gmail, Calendar, and GitHub under Connections; browser auth should end in Connected state.
- Minute 4: trigger first sync — Keep the app running; run
find ~/Library/Application Support -iname '*openhuman*', locate the data directory, and confirm today’s.mdfiles exist. - Minute 5: acceptance chat — Use Test 1 / 2 from the previous section; success means concrete facts cited from your data.
Connect services and verify the Memory Tree
The “digital twin” feeling in OpenHuman comes from the Memory Tree: third-party data is normalized into Markdown chunks capped around 3k tokens, stored in local SQLite, and exported as .md files you can open in Obsidian. Do not trust a green Connected badge alone — verify that files actually land on disk:
- Open Memory Tree (or the memory directory) in the app and confirm new files with today’s timestamp.
- Open any
.mdin a text editor; you should see checkable facts — email subjects, meeting titles, PR names — not empty templates. - Optional: share a backend with agentmemory so OpenHuman and Claude Code use the same persistent memory (advanced).
# Count Markdown files created today find "$MEMORY_DIR" -name '*.md' -mtime -1 2>/dev/null | wc -l # Newest three fragments by mtime find "$MEMORY_DIR" -name '*.md' -print0 2>/dev/null \ | xargs -0 ls -lt 2>/dev/null | head -3 # SQLite nearby (filename varies by version; needs sqlite3) find "$MEMORY_DIR/.." -maxdepth 2 -name '*.sqlite' -o -name '*.db' 2>/dev/null # DB="/path/to/openhuman.db" # sqlite3 "$DB" ".tables"
Wondering how this differs from ChatGPT? ChatGPT context lives inside a conversation thread; OpenHuman context lives in auditable files on your disk — a big reason it spread quickly on GitHub. For product background after install, see our five-day review.
How does OpenClaw fit in?
OpenHuman owns personal context (email, calendar, notes). OpenClaw targets IM orchestration and build pipelines. Installing OpenHuman does not replace Xcode CI; installing OpenClaw does not read your inbox. Many teams run both.
Mac users: local machine vs always-on cloud Mac
OpenHuman is designed as a desktop resident: closing the lid and sleeping the Mac slows sync. If you want the twin to keep pulling email summaries while your laptop is off, run the instance on an always-on Mac mini — for example a ZavCloud cloud Mac dedicated node with real macOS and a static IP, which simplifies OAuth callbacks and long background jobs. Treat OAuth tokens and Memory Tree files as sensitive: cloud deployments need disk encryption, access control, and backup policy; do not put personal Gmail on shared multi-tenant hosts without isolation.
On local Apple Silicon you can pair Ollama or MLX for offline inference, aligned with OpenHuman’s local-data story: models on disk, memory on disk, only integration sync hits the network. For iOS development, keep coding in Cursor or Claude Code and ask OpenHuman “how busy is my calendar today” before you start — we described a similar hybrid workflow in Anthropic and the Claude Code era.
# After SSH into your macOS cloud host brew tap tinyhumansai/core && brew install openhuman openhuman --version # Headless: some builds support sync engine only — see official docs # Tip: complete first OAuth via VNC/screen sharing, then keep session logged in # Prevent sleep interrupting sync when plugged in (use per datacenter policy) sudo pmset -c sleep 0 displaysleep 0
Troubleshooting
- App won’t open after install (macOS) — System Settings → Privacy & Security → Open Anyway; or right-click → Open. Enterprise MDM may block unsigned builds; use the signed DMG from Releases.
- OAuth callback fails — Check proxy/VPN, system clock, and popup blockers; corporate networks may block Composio domains — ask IT for an allowlist.
- Memory Tree stays empty — Confirm integrations show Connected; wait one full sync cycle (~20 minutes); check GitHub Issues for regional API rate limits.
- Agent hallucinates — Memory not written yet or model not using memory tools; narrow the question or @-mention a specific memory file if your build supports it.
- brew install not found — Run
brew tap tinyhumansai/corefirst; on Intel Macs verify Releases include your architecture.
# Homebrew install failure: clear cache and retry brew update brew cleanup brew reinstall openhuman # After crash: macOS unified log for OpenHuman log show --predicate 'process == "OpenHuman"' --last 1h | tail -50 # Ollama running but OpenHuman cannot connect curl -s http://127.0.0.1:11434/api/tags lsof -i :11434 # Full uninstall and reinstall (brew path) brew uninstall openhuman rm -rf ~/Library/Application\ Support/*openhuman* 2>/dev/null brew install openhuman # Latest GitHub issues (requires gh CLI) gh issue list -R tinyhumansai/openhuman -L 5
git clone https://github.com/tinyhumansai/openhuman.git cd openhuman git submodule update --init --recursive pnpm install # Web UI only pnpm dev # Full Tauri desktop dev pnpm dev:app # Rust side check cargo check -p openhuman --lib
FAQ
Does it need the internet? Install, OAuth, and cloud models require a network; memory files stay local. Local Ollama can chat on weak networks, but mail/calendar sync still needs connectivity.
Is it free? The client is open source (GPL-3.0). Model APIs and some connectors may bill through third parties — check your provider invoices.
Does it conflict with Cursor Rules or Claude Code? No. OpenHuman does not edit your repos; coding agents do not read your Gmail. Different layers, same workstation.
- Product deep dive — What is an OpenHuman digital twin?
- Agent Skills — Skills trend on GitHub
- Comparison — OpenHuman vs OpenClaw
ZavCloud · Cloud Mac
Need your twin online 24/7? Use a real macOS node
Dedicated Mac mini M4 instances: native macOS, static IPv4 — ideal for OpenHuman background sync, Ollama, and Xcode on one auditable machine.
View plans and pricing