# 平台与可用性

OpenHuman 是原生桌面应用，不是浏览器扩展，也不是 Electron 封装。基于 **React + Tauri v2** 并配有 **Rust 核心**，它体积小、启动快，并且不会妨碍你的使用。

***

## 支持的平台

| 平台          | 架构                  | 发行方式                                     |
| ----------- | ------------------- | ---------------------------------------- |
| **macOS**   | Intel、Apple Silicon | `.dmg` 安装器、Homebrew                      |
| **Windows** | x64、ARM64           | `.msi` 安装器                               |
| **Linux**   | x64                 | AppImage、 `.deb`，AUR 配方（`openhuman-bin`) |

### Linux AppImage 说明

Linux AppImage 适用于 x64 桌面，并且是 curl 安装器默认选择的资源。在较新的发行版上，尤其是那些收紧无特权用户命名空间或 AppArmor 默认设置的构建版本中，AppImage 可能会在 OpenHuman 触发其自身崩溃报告器之前启动失败。已知症状包括：

* `unshare: write failed /proc/self/uid_map: 不允许的操作`
* `找不到解释器！`
* `无法执行二进制文件`

当这种情况发生时，Debian/Ubuntu 系统请优先使用 `.deb` 软件包。对于 Fedora、openSUSE 和其他非 Debian 发行版，在报告问题时请附上发行版版本、内核版本、GPU/驱动栈，以及准确的 AppImage 文件名，以便维护者区分主机限制和打包不佳的 AppImage 运行时。

***

## 为什么原生很重要

OpenHuman 作为原生应用而非网页封装构建，主要有三个原因。

**占用小。** 体积只有典型通信工具的一小部分。启动不到一秒，内存占用极低。

**启动快。** 无需初始化浏览器引擎。可立即接受请求。

**操作系统级安全。** 凭据保存在平台的安全钥匙串中：macOS Keychain、Windows Credential Manager、Linux Secret Service。敏感数据绝不会存放在浏览器存储或纯文本文件中。本地 Memory Tree 的 SQLite 数据库位于你的工作区文件夹中，由你拥有。

***

## 架构一览

```
┌──────────────────────────────────────────────────┐
│ Tauri 外壳 - 窗口管理、操作系统集成 │
└──────────────────────────────────────────────────┘
 │ JSON-RPC ↕
┌──────────────────────────────────────────────────┐
│ Rust 核心（`openhuman` sidecar）│
│ • Memory Tree、集成、自动抓取 │
│ • 模型路由器、TokenJuice、本地工具 │
│ • 语音（STT 输入，TTS 输出，Meet 代理）│
└──────────────────────────────────────────────────┘
 │
┌──────────────────────────────────────────────────┐
│ React 前端 - 页面、导航 │
└──────────────────────────────────────────────────┘
```

外壳只是一个交付载体（窗口管理、进程生命周期、IPC）。所有产品逻辑都在 Rust 核心中。React 前端通过 JSON-RPC 与核心通信。完整情况请参见 [架构](/openhuman/zh/kai-fa/architecture.md) 。

***

## 远程/无头使用

Linux 服务器可以在没有桌面会话的情况下托管 Rust 核心。生产形态是一个远程 `openhuman-core` JSON-RPC 服务，以及一个本地桌面客户端，配置为使用该核心 URL 和 bearer token。

在开发/预览时，可以通过提供 Vite 前端并将其指向远程核心来实现私有浏览器界面，但这不能完全替代桌面外壳。原生深度链接、托盘控制、OS 钥匙串访问、CEF 账户扫描器以及屏幕/窗口集成仍然需要 Tauri 应用。请参见 [云部署](/openhuman/zh/gong-neng/cloud-deploy.md#remote-ui-choices) 了解当前的远程 UI 设置。

***

## 实时通信

桌面应用会与 OpenHuman 后端保持持久连接。响应会在生成时流式返回；输出会逐步显示，而不是等到结束后才出现。如果网络中断，应用会以指数退避的方式自动重连。

***

## 离线行为

你的本地状态会保留在设备上。偏好设置、配置和已连接的源配置在离线时仍可使用。本地 Memory Tree 可完全访问，你可以浏览 [Obsidian vault](/openhuman/zh/gong-neng/obsidian-wiki.md) 并在没有任何网络连接的情况下阅读你现有的笔记。

自动抓取和实时 LLM 调用需要联网。网络恢复后，下一次 20 分钟的轮询会从中断处继续。

***

## 自动更新

桌面外壳会通过 Tauri 的更新插件，依据发布在 GitHub Releases 上的清单自动更新。OpenHuman 核心 sidecar 随同打包在同一个 bundle 中，因此外壳更新会同时升级两者。


---

# 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/zh/gong-neng/platform.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.
