* refactor(deep-link): streamline OAuth handling and skill setup process - Removed the RPC call for persisting setup completion, now handled directly in the preferences store. - Updated comments in the deep link handler to clarify the sequence of operations during OAuth completion. - Enhanced the `set_setup_complete` function to automatically enable skills upon setup completion, improving user experience during skill activation. This refactor simplifies the OAuth deep link handling and ensures skills are automatically enabled after setup, enhancing the overall flow. * feat(skills): enhance SkillSetupModal and snapshot fetching with polling - Added a mechanism in SkillSetupModal to sync the setup mode when the setup completion status changes, improving user experience during asynchronous loading. - Updated the useSkillSnapshot and useAllSkillSnapshots hooks to include periodic polling every 3 seconds, ensuring timely updates from the core sidecar and enhancing responsiveness to state changes. These changes improve the handling of skill setup and snapshot fetching, providing a more seamless user experience. * fix(ErrorFallbackScreen): update reload button behavior to navigate to home before reloading - Modified the onClick handler of the reload button to first set the window location hash to '#/home' before reloading the application. This change improves user experience by ensuring users are directed to the home screen upon reloading. * refactor(intelligence-api): simplify local-only hooks and remove unused code - Refactored the `useIntelligenceApiFallback` hooks to focus on local-only implementations, removing reliance on backend APIs and mock data. - Streamlined the `useActionableItems`, `useUpdateActionableItem`, `useSnoozeActionableItem`, and `useChatSession` hooks to operate solely with in-memory data. - Updated comments for clarity on the local-only nature of the hooks and their intended usage. - Enhanced the `useIntelligenceStats` hook to derive entity counts from local graph relations instead of fetching from a backend API, improving performance and reliability. - Removed unused imports and code related to backend interactions, resulting in cleaner and more maintainable code. * feat(intelligence): add active tab state management for Intelligence component - Introduced a new `IntelligenceTab` type to manage the active tab state within the Intelligence component. - Initialized the `activeTab` state to 'memory', enhancing user experience by allowing tab-specific functionality and navigation. This update lays the groundwork for future enhancements related to tabbed navigation in the Intelligence feature. * feat(intelligence): implement tab navigation and enhance UI interactions - Added a tab navigation system to the Intelligence component, allowing users to switch between 'Memory', 'Subconscious', and 'Dreams' tabs. - Integrated conditional rendering for the 'Analyze Now' button, ensuring it is only displayed when the 'Memory' tab is active. - Updated the UI to include a 'Coming Soon' label for the 'Subconscious' and 'Dreams' tabs, improving user awareness of upcoming features. - Enhanced the overall layout and styling for better user experience and interaction. * refactor(intelligence): streamline UI text and enhance OAuth credential handling - Simplified text rendering in the Intelligence component for better readability. - Updated the description for subconscious and dreams sections to provide clearer context on functionality. - Refactored OAuth credential handling in the QjsSkillInstance to utilize a data directory for persistence, improving credential management and recovery. - Enhanced logging for OAuth credential restoration and persistence, ensuring better traceability of actions. * fix(skills): update OAuth credential handling in SkillManager - Modified the SkillManager to use `credentialId` instead of `integrationId` for OAuth notifications, aligning with the expectations of the JS bootstrap's oauth.fetch. - Enhanced the parameters passed during the core RPC call to include `grantedScopes` and ensure the provider defaults to "unknown" if not specified, improving the robustness of the skill activation process. * fix(skills): derive modal mode from snapshot instead of syncing via effect Avoids the react-hooks/set-state-in-effect lint warning by deriving the setup/manage mode directly from the snapshot's setup_complete flag. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * refactor(ErrorFallbackScreen): format reload button onClick handler for improved readability - Reformatted the onClick handler of the reload button to enhance code readability by adding line breaks. - Updated import order in useIntelligenceStats for consistency. - Improved logging format in event_loop.rs and js_helpers.rs for better traceability of OAuth credential actions. --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
OpenHuman
The age of super intelligence is here. OpenHuman is your Personal AI super intelligence. Private, Simple and extremely powerful.
Discord • Reddit • X/Twitter • Docs
"The Tet. What a brilliant machine" — Morgan Freeman as he reminisces about alien superintelligence in the movie Oblivion
Early Beta — Under active development. Expect rough edges.
OpenHuman is an open-source agentic assistant that is designed to integrate with you in your daily life. Here's what makes OpenHuman special:
-
One subscription, many providers — One assistant wired to skills and backend models so you are not juggling a separate subscription stack for every integration surface.
-
Incredible memory — Rust-side memory (store / recall / namespaces) plus optional TinyHumans Neocortex-backed context when configured, so the agent can retain and retrieve more than a single chat window. Channels and ongoing conversations feed the same loop so day-to-day context does not reset every session.
-
Screen intelligence — Regular screen capture (on a cadence or when triggered) feeds an on-device pipeline that understands what is on screen, distills it into memory (facts, UI state, workflows), and can propose actions the agent executes for you. OS permissions and capture APIs vary by platform; the goal is your machine first, not shipping raw frames to the cloud by default.
-
Voice & meetings — A Local-model speech stack (listen / TTS) let the assistant talk back and capture or work with meeting audio with a privacy-first default when you route inference locally. Transcripts and summaries land in the same memory + agent loop so OpenHuman can follow up: tasks, drafts, calendar nudges, or skill-backed workflows—without treating a meeting as a one-off chat.
-
Memory-aware autocomplete — Keyboard autocomplete is built for right-context suggestions: it consults memory namespaces and recent context so completions stay aligned with you, your workspace, and prior sessions—not a blank model every keystroke.
-
Runs a local AI model — The Rust core exposes local AI paths (and the desktop bundle can ship local/bundled runners where applicable) for the workloads above—vision snippets, speech helpers, summarization, tooling—so sensitive steps can stay off the cloud when you choose.
-
Simple or advanced — Skill setup wizards and defaults for common tools, with room to go deeper via settings, credentials, and core RPC when you need control and privacy.
Architecture: docs/ARCHITECTURE.md. Contributor orientation: CONTRIBUTING.md.
Download
Early Beta — Under active development. Expect rough edges.
You can download the latest desktop build from the website at tinyhuman.ai/openhuman. You can also grab it from the latest GitHub release, which includes all current artifacts (.dmg, .deb, .AppImage, .app.tar.gz, and more).
If you need an older version, browse all releases.
If you want to build from source, see docs/BUILDING.md.
Install with one command:
curl -fsSL https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.sh | bash
On Windows, use PowerShell:
irm https://raw.githubusercontent.com/tinyhumansai/openhuman/main/scripts/install.ps1 | iex
What setup does:
- Resolves the latest stable release for your OS/arch
- Verifies release digest when available
- Installs locally without requiring system-wide admin rights by default
- macOS: installs
OpenHuman.appin~/Applications - Linux: installs
openhumanAppImage in~/.local/bin/openhumanand creates a desktop entry - Windows: installs from latest release MSI/EXE in per-user mode where supported
Under the hood (Architecture)
OpenHuman is a desktop monorepo: Rust owns business logic and execution; the UI owns interaction, layout, and OS integration.
Rust (openhuman / openhuman_core). The repo root src/ crate is the brain: JSON-RPC over HTTP (core_server), domain modules (auth, config, memory, skills, channels, screen intelligence, local AI, cron, …), and a QuickJS runtime for sandboxed JavaScript skills. The openhuman binary is built and staged next to the Tauri app so the desktop shell can spawn it as a sidecar. Heavy work—SQLite, sockets, crypto, skill lifecycle—runs there under Tokio, not in the WebView.
UI (app/). Vite + React (TypeScript) implements screens, onboarding, settings, and realtime UX. Redux Toolkit holds client state; Socket.io and the MCP-style client stack stay in sync with the core’s realtime surface. Tauri v2 (app/src-tauri/) is a thin Rust host: windowing, filesystem hooks where needed, and core_rpc_relay—forwarding JSON-RPC from the WebView to the openhuman process so the UI never re-implements domain rules.
Controllers and the RPC surface. Features are exposed as registered controllers: each domain declares schemas (namespace, function name, parameter shapes) and a handler. At runtime, calls are validated, dispatched by method name (e.g. openhuman.auth_get_state, openhuman.local_ai_agent_chat), and return structured outcomes. CLI and HTTP share the same controller catalog, so automation, tests, and the app all hit one contract.
What ties it together: one registry of controllers, one sidecar process for execution, Tauri IPC for shell-only capabilities, and HTTP JSON-RPC for everything else—plus skills and dual-socket behavior documented in the architecture guide.
Read more: docs/ARCHITECTURE.md · Frontend tree: docs/src/README.md · Tauri commands: docs/src-tauri/README.md
Star us on GitHub
Building toward AGI and artificial consciousness? Star the repo and help others find the path.
Contributors Hall of Fame
Show some love and end up in the hall of fame
