# Overview

OpenHuman is open source under GPLv3 at [github.com/tinyhumansai/openhuman](https://github.com/tinyhumansai/openhuman). This section is for contributors and anyone running OpenHuman from source.

If you just want to use the app, head to [Getting Started](/openhuman/overview/getting-started.md). If you're here to read the architecture, hack on a feature, or land a PR, you're in the right place.

***

## Where things live

| Path        | What's there                                                                                                      |
| ----------- | ----------------------------------------------------------------------------------------------------------------- |
| `app/`      | pnpm workspace `openhuman-app`. Vite + React frontend (`app/src/`) and the Tauri desktop host (`app/src-tauri/`). |
| `src/`      | Rust crate `openhuman_core` and the `openhuman-core` CLI binary. Domains, JSON-RPC, MCP routing.                  |
| `gitbooks/` | This site (the public-facing docs).                                                                               |
| `docs/`     | Older deep references not yet migrated to GitBook (memory pipeline diagrams, agent flows, etc.).                  |

`CLAUDE.md` at the repo root is the source of truth for AI agents working on the codebase. Same rules apply to humans.

***

## Start here

If it's your first time pulling the repo:

1. [**Getting Set Up**](/openhuman/developing/getting-set-up.md). Toolchain, dependencies, the vendored Tauri CLI, sidecar staging - everything `pnpm dev` needs to actually start.
2. [**Building the Rust Core**](/openhuman/developing/building-rust-core.md). Fresh-machine setup for the repo-root Rust crate only: pinned toolchain, OS packages, and exact `cargo` commands.
3. [**Architecture**](https://github.com/tinyhumansai/openhuman/blob/main/gitbooks/developing/architecture.md). How the desktop app, the Rust core sidecar, the JSON-RPC bridge, and the dual sockets fit together. Read this before you make non-trivial changes.
4. [**Frontend**](/openhuman/developing/architecture/frontend.md) and [**Tauri Shell**](/openhuman/developing/architecture/tauri-shell.md). The React app and the desktop host that wraps it.

***

## Testing

OpenHuman ships with three test layers. Know which one your change belongs in:

* [**Testing Strategy**](/openhuman/developing/testing-strategy.md). When to write Vitest vs cargo tests vs WDIO.
* [**E2E Testing**](/openhuman/developing/e2e-testing.md). WDIO/Appium specs, dual-platform setup (Linux tauri-driver, macOS Appium Mac2), and how to run a single spec locally.
* [**Agent Observability**](/openhuman/developing/agent-observability.md). The artifact-capture layer that makes E2E and agent runs debuggable after the fact.

PRs must clear the **≥ 80% coverage on changed lines** gate. Add tests for new behavior, not just the happy path.

***

## Shipping

* [**Release Policy**](/openhuman/developing/release-policy.md). Version policy, release cadence, OAuth + installer rules.
* [**Cloud Deploy**](/openhuman/features/cloud-deploy.md). Backend/cloud-side deployment when a change crosses the desktop boundary.

***

## Going deeper

* [**Coding Harness**](broken://pages/RRYmjibvEbtqRSPntgPX). The agent's code-focused tool surface and how to extend it.
* [**Chromium Embedded Framework**](/openhuman/developing/cef.md). How embedded provider webviews work, why they don't run injected JS, and what the per-provider scanners do instead.

For features still being built, the [Subconscious Loop](/openhuman/features/subconscious.md) page covers the background task evaluation system end-to-end.

***

## Contributing

* Open issues and PRs at [tinyhumansai/openhuman](https://github.com/tinyhumansai/openhuman).
* PRs target `main`. Push to your fork, not upstream.
* Follow [`CONTRIBUTING.md`](https://github.com/tinyhumansai/openhuman/blob/main/CONTRIBUTING.md) and the issue/PR templates.
* Keep changes focused. A bug fix doesn't need surrounding cleanup; a one-shot operation doesn't need a helper.

Help building toward AGI doesn't have to mean shipping a kernel - bugfixes, docs, integrations, and tests all move the bar.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tinyhumans.gitbook.io/openhuman/developing/developing.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
