OpenHuman: The Personal AI That Treats the Browser, Desktop, and Camera as One Surface

A deep dive into the Rust core, CEF shell, local memory vault, and the fake-camera trick that lets an assistant show up inside your workflow instead of beside it.

10 to 12 min read • View on GitHub • More from tinyhumansai

A laptop glows on a desk while a translucent video-call frame hovers above it, showing a tiny mascot as if it were a live camera feed. Beneath the desk, the machine is exposed as layered software parts, which explains how OpenHuman turns meeting presence into a software problem instead of a hardware one.
OpenHuman’s most surprising move is not chat or memory. It is the decision to synthesize presence in software and let the assistant enter the meeting stack like another app surface.
Key Takeaways

The assistant that can appear in the meeting

OpenHuman’s sharpest trick is also its clearest thesis. It can manufacture a video presence in software, which means the assistant does not stop at reading the room. It can show up in the room. That is a different category from a chat sidebar or a browser extension, because presence becomes another output surface for the system to control.

The repo’s architecture makes that possible. A Rust core coordinates state, browser automation, local storage, and OS-level actions. A CEF-based shell gives the project a consistent browser runtime. Together, they let OpenHuman treat the browser, the desktop, and the call stack as connected layers instead of separate products.

A browser window is shown in close-up as ordinary Gmail, WhatsApp, and Slack tabs remain visible, while thin control tendrils and protocol links enter the frame and pull structured signals into a local vault. The image explains how OpenHuman treats websites as mutable workflow surfaces rather than sealed apps.
OpenHuman does not wait for official APIs to do the work. It reaches into browser surfaces, extracts what matters, and stores the result locally for later action.

Why local-first matters here

The local-first argument is not ideological decoration. It is what makes the system believable. If an assistant is allowed to read email, chats, desktop state, and meeting context, then where that data lives matters as much as what the model can say about it.

OpenHuman leans into that with a local SQLite vault, a Rust core, and on-device processing. The result is an assistant that can observe a lot without immediately turning every interaction into cloud dependency. That matters for trust, but it also matters for latency, battery, and failure modes.

While most AI projects remain locked in the cloud with subscriptions and data harvesting, OpenHuman build by @senamakel and @tinyhumansai takes a different approach. OpenHuman is a fully open-source, local AI desktop superintelligence that runs privately on your own computer

Honey badger, @honeybdger88 on X · @honeybdger88 on X

The important sequence is not chat to answer. It is intent to orchestration to browser action to local memory to visible presence.

DimensionCloud-first assistantOpenHuman
Data localityMostly remoteLocal vault plus on-device coordination
Browser controlOften API-led or extension-ledCEF and CDP can reach into web surfaces
OS presenceUsually app-levelDesktop, browser, and meeting surfaces
Meeting presenceExternal bot or no presenceSoftware-generated fake camera feed
Power behaviorNot always laptop-awareBattery-aware scheduling is part of the design

The split-brain architecture

The architecture is deliberately split. The UI is React and TypeScript. The shell is Tauri-based Rust. The core is also Rust, but it lives as the serious part of the system: storage, orchestration, background work, and provider integrations. That separation matters because it keeps the interface light while the control plane stays close to the metal.

UI layer: React + TypeScript
Shell layer: Tauri + CEF
Core layer: Rust orchestration
Storage: SQLite local vault
Transport: JSON-RPC over WebSockets/HTTP

That split also explains why the repo feels larger than a normal assistant app. It is not one interface bolted to one model. It is an attempt to make intelligence portable across surfaces, with the browser and desktop treated as interchangeable actuators.

How OpenHuman turns websites into workflows

The browser story is where the project stops looking polite. Instead of waiting for every service to expose a clean API, OpenHuman can work directly against the rendered web surface. Gmail, WhatsApp, and other sites become mutable workspaces. The assistant can inspect them, extract what matters, and shape the next action locally.

That is why the CEF choice matters. A stable Chromium-based shell plus CDP hooks gives the project a predictable way to automate web contexts. The point is not clever scraping for its own sake. The point is to turn websites into control surfaces the assistant can inhabit.

TaskTraditional browser botOpenHuman
Gmail triageOften script-heavy and brittleBrowser context plus local memory
Chat app interactionUsually plugin or API dependentDirect surface control through CEF
Presence in callsSeparate toolchainFake camera path inside the same system
State managementScattered across servicesStored in one local vault

The memory and battery philosophy

There is a more practical kind of ambition here. The repo is careful about how it handles text extraction, because the developers clearly do not want the memory layer to become the bottleneck. A linear-time stripper beats a heavy HTML pipeline when the input is messy and the assistant has to keep moving.

Battery awareness sits in the same bucket. A background assistant that drains a laptop is a failed product, no matter how smart it sounds in a demo. OpenHuman’s battery gating is the sort of detail that makes the whole project feel like it expects to live on a real machine, not just in a benchmark.

The agent layer that helps maintain the agent

The `.claude/agents/` directory is a clue about how the project thinks. It is not only shipping an assistant. It is embedding procedures for maintaining the assistant. That turns the repo into a meta-system, where specialized agent roles can help shape future work inside the same codebase.

LayerWhat it doesWhy it matters
User-facing UIHosts the visible assistant experienceKeeps interaction simple
Core agentsHandle specialty tasks and maintenanceMakes the repo self-supporting
Memory vaultStores local contextLets the assistant persist without cloud dependence

What OpenHuman is really competing with

OpenHuman is not trying to beat a generic chatbot on chat. It is competing with three different product categories at once. Cloud assistants promise convenience. Browser automation tools promise execution. Virtual camera hacks promise presence. OpenHuman wants all three, while keeping the center local.

CategoryStrengthWeakness
Cloud-first assistantsConvenient and familiarData locality and control
Browser automation toolsGood at task executionWeak on memory and identity
Virtual camera or meeting botsCan appear in callsOften brittle or isolated
OpenHumanUnified local control planeAmbitious and complex to ship

That is why the project feels bigger than its footprint. The GPL-3.0 license, the Rust-heavy stack, and the unusually broad surface area all point in the same direction. This is not a small utility with one clever feature. It is an attempt to define a local operating layer for personal automation.

Why this project feels larger than its current footprint

The ambition is disproportionate to the public surface area, and that is part of the appeal. The repo reads like a category draft. It assumes that personal AI should be able to watch, remember, act, and appear across the tools people already use, without surrendering the whole stack to a cloud provider.

If that thesis holds, the fake camera is not a gimmick. It is a symbol. It says the assistant is no longer beside your workflow. It can step into the workflow itself.