OpenHuman is an open-source desktop agent from TinyHumans AI that bills itself as a personal AI super intelligence: a Rust-core, Tauri-shell assistant with 118+ OAuth integrations, a Memory Tree stored in local SQLite, an Obsidian-compatible Markdown vault, and auto-fetch that syncs connected accounts every 20 minutes without manual prompts. As of May 2026 the repo carries 17,700+ GitHub stars, 34 releases, and ships under GNU GPL-3.0—making it one of the fastest-rising alternatives to terminal-first agent harnesses.
The product is desktop-first on macOS (Homebrew tap tinyhumansai/openhuman),
which creates a specific hosting problem: a MacBook that sleeps stops the 20-minute sync loop, throttles
background TokenJuice compression, and forces you to re-grant TCC permissions (Screen Recording,
Accessibility, Microphone) after every OS patch. Teams that already rent a dedicated Mac mini M4
for OpenClaw gateway runbook or Understand-Anything graph builds can reuse the same NodeMac host as an always-on OpenHuman brain—persistent disk for the vault,
SSH for headless core work, and VNC when macOS privacy prompts block unattended setup.
Why a dedicated Mac mini M4 beats a sleeping laptop
OpenHuman's value compounds when three background loops run continuously: auto-fetch (integration polling), Memory Tree compaction (Markdown chunk scoring in SQLite), and optional Subconscious self-learning passes. A closed laptop lid pauses all three.
| Factor | Local MacBook (16GB) | NodeMac M4 dedicated host |
|---|---|---|
| Auto-fetch uptime | Stops on sleep/Travel Mode | 24/7 20-min sync loop |
| Memory vault path | ~/Library/Application Support/openhuman/ | Same path, isolated tenant SSD |
| TCC grants | Lost after major macOS upgrades | Re-grant once via VNC; snapshot baseline |
| Concurrent agents | OpenHuman + Xcode + Slack compete for RAM | Colocate with OpenClaw gateway or CI runner on separate users |
| Disk headroom | 256GB fills with Obsidian vault + git mirrors | 256GB+ scoped to one agent workspace |
| Regional latency | N/A (local) | HK/JP/KR/SG/US East nodes for APAC GitHub & Gmail API paths |
Quotable: OpenHuman canonicalizes each integration payload into ≤3,000-token Markdown chunks before folding them into hierarchical Memory Tree summaries—plan 45–90 minutes for the first full auto-fetch pass across 10–15 connected tools on a 16GB M4, then ~20 minutes per incremental cycle. Source: OpenHuman Memory Tree docs.
What OpenHuman is (and what runs where)
OpenHuman is not a chat wrapper. The architecture splits into layers teams should map before provisioning hardware:
- Desktop shell (
openhuman-app) — Tauri + React UI, desktop mascot, voice (STT in, ElevenLabs TTS out), screen intelligence, OS keychain, and Google Meet agent features. Requires a logged-in macOS session for full capability. - Rust core (
openhuman-core) — Headless JSON-RPC server on port 7788 (/rpc), handles Memory Tree writes, TokenJuice compression, tool dispatch, and model-routing calls to the TinyHumans backend. Can run locally or remotely viaOPENHUMAN_CORE_RPC_URL+ bearer token. - Managed services (default) — Account sign-in, LLM model routing, web search proxy, and Composio OAuth brokering go through
https://api.tinyhumans.aiunless you bring your own keys. Memory files stay on-device. - Integrations layer — 118+ connectors (Gmail, Notion, GitHub, Slack, Stripe, Calendar, Linear, Jira, …) exposed as typed tools; auto-fetch walks active connections every 20 minutes.
Optional local Ollama routing and TokenJuice compression (up to 80% token reduction on noisy payloads) reduce cloud exposure. Contributors should plan Node.js 24+, pnpm 10.10.0, and Rust 1.93.0. Hardware baseline: Apple Mac mini specifications.
OpenHuman vs OpenClaw: which agent fits your Mac mini?
NodeMac customers often run OpenClaw macOS install guide as a gateway-centric, MIT-licensed automation plane. OpenHuman targets a different persona: UI-first personal memory with managed model routing.
| Dimension | OpenClaw (MIT) | OpenHuman (GPL-3.0) |
|---|---|---|
| Onboarding | Terminal + openclaw onboard | GUI installer; Homebrew brew install openhuman |
| Memory model | Plugin/workspace files; you wire context | Memory Tree + Obsidian vault; auto-fetch fills it |
| Integrations | BYO MCP/skills | 118+ OAuth via Composio layer |
| Always-on sync | You build polling/webhooks | Built-in 20-min auto-fetch |
| Meeting/voice agent | Channel bots (Slack, Telegram, …) | Desktop mascot + Google Meet participant |
| Headless core | Gateway daemon is the product | openhuman-core serve optional; UI still macOS-native |
| License posture | Permissive MIT | Copyleft GPL-3.0—audit before commercial redistribution |
Recommended path: If your team needs Slack-triggered DevOps runbooks and MCP tool servers, start with OpenClaw on NodeMac. If you want a personal chief-of-staff that reads Gmail, Notion, and GitHub into a searchable vault before you type a prompt, provision OpenHuman on the same or adjacent M4. A 16GB host runs one primary agent comfortably; for OpenClaw gateway + OpenHuman desktop concurrently, budget 24GB RAM or separate NodeMac nodes. Review OpenHuman privacy docs before granting broad OAuth scopes on a dedicated tenant Mac.
Memory Tree and auto-fetch in practice
- Ingest — Each connected integration returns raw JSON/HTML; auto-fetch runs on a 20-minute cron inside
openhuman-core. - Canonicalize — Payloads become ≤3k-token Markdown chunks, scored and stored in SQLite under the workspace directory.
- Vault mirror — The same chunks land as
.mdfiles in an Obsidian-compatible vault you can browse offline. - Compress — TokenJuice rules strip boilerplate before model routing selects reasoning vs fast vs vision LLMs.
On a NodeMac M4, keep the workspace off iCloud-synced paths:
~/openhuman-workspace/
├── memory.db # SQLite Memory Tree
├── vault/ # Obsidian Markdown mirror
├── core.token # Bearer token if OPENHUMAN_CORE_TOKEN unset (avoid in prod)
└── config.toml # Backend URL, memory backend, CORS origins
Back up this directory nightly—losing it erases weeks of compressed context faster than losing chat logs. Pair with Understand-Anything graph builds on repos the agent already mirrored into context—two complementary views of your stack (business memory vs code graph).
Eight-step runbook: OpenHuman on NodeMac Mac mini M4
- Provision — Order an M4 16GB / 256GB node from NodeMac pricing; pick Tokyo or Singapore for APAC Gmail/GitHub latency, Virginia for US-East orgs. Published monthly plans start near $96.9.
- SSH baseline — Confirm macOS 15+ and Apple Silicon (
uname -m→arm64). Install Homebrew if missing. - Install OpenHuman —
brew tap tinyhumansai/openhuman && brew install openhumanor download the signed.dmgfrom GitHub Releases. - First login via VNC — Grant Accessibility, Screen Recording, and Microphone TCC permissions once via VNC—SSH alone cannot click these dialogs. See our OpenClaw VNC vs SSH matrix for the same break-glass pattern.
- Connect integrations — OAuth-link Gmail, Calendar, GitHub, and Notion first; wait one 20-minute auto-fetch cycle before expecting Memory Tree search to return inbox or repo context.
- Verify Memory Tree — Open the Obsidian vault path from Settings; confirm
.mdchunks appear. Test a prompt like Summarize unread Gmail threads about invoices this week. - Optional headless core — Export a stable bearer token and run
openhuman-core serveon port 7788; tunnel withssh -L 7788:127.0.0.1:7788. Never expose 7788 publicly without TLS and IP allowlists. - Backup and monitor — Tar
~/openhuman-workspace/weekly; watch RAM withmemory_pressure. If swap climbs above 2GB sustained, upgrade to 24GB or split agents per our three-plane routing matrix.
Troubleshooting
Auto-fetch returns empty Memory Tree after 30+ minutes
Symptom: Integrations show Connected but vault stays empty; logs mention Composio or OAuth refresh failures.
Fix: Re-authenticate the failing connector in the UI. Confirm outbound HTTPS to api.tinyhumans.ai is not blocked. Restart the core via LaunchAgent or relaunch from the desktop app.
401 Auth failed on remote core RPC
Symptom: Desktop client shows Auth failed when pointing at OPENHUMAN_CORE_RPC_URL.
Fix: Regenerate a single bearer token—do not mix OPENHUMAN_CORE_TOKEN env with core.token file paths across redeploys. Run scripts/print-core-token.sh --where on the server to align client and core.
Screen intelligence disabled after macOS update
Symptom: Mascot or screen-context tools fail; Privacy toggles reset.
Fix: Reconnect via VNC, re-enable Screen Recording and Accessibility for OpenHuman. This mirrors OpenClaw TCC regression patterns on rented Macs.
Operational implications
- Isolate users — Run OpenHuman under a dedicated macOS user account; never share Keychain or vault paths.
- Scope OAuth minimally — Connect five high-signal tools first (Gmail, Calendar, GitHub, Notion, Slack).
- Monitor disk — Memory Tree growth is roughly 50–200MB/month for heavy email + repo sync.
- Pair with automation — Use SSH on the same host to trigger Understand-Anything graph builds scans on mirrored repos.
For a self-hosted ChatGPT UI with local RAG on the same Mac, see our Open-WebUI local knowledge base setup guide —Docker, Ollama, 8 steps, and 5 FAQ for document-library workflows.
FAQ
Does OpenHuman replace OpenClaw on NodeMac?
No—they solve different problems. OpenClaw excels at gateway-mediated tool invocation; OpenHuman excels at pre-loaded personal memory via auto-fetch. Colocate both only on 24GB+ hosts.
Is all my data local if I use OpenHuman?
Memory Tree SQLite, Markdown vault, and workspace config stay on your machine. Default installs still use TinyHumans-managed services for sign-in, model routing, and Composio OAuth.
How much RAM do 118 integrations need?
Budget 16GB for 10–20 active connectors with TokenJuice compression; 24GB if you also run screen intelligence and local Ollama concurrently.
Can I run OpenHuman core on Linux while keeping the UI on Mac?
Yes—see cloud deploy docs. NodeMac's advantage is native macOS TCC for mascot, voice, and screen features.
Why NodeMac instead of running OpenHuman on my MacBook?
Uptime. OpenHuman's 20-minute auto-fetch assumes the host stays awake. A $96.9/month dedicated M4 keeps personal OAuth scopes off your daily driver.