Wire hermit_getenv across the engine, rebrand WebUI/systemd/docs, and add apps/desktop (Tauri 2 + React) with a DeepSeek-Harness-like UI. Qt app/ is frozen; full libcstcore FFI is scaffolded behind --features engine. Co-authored-by: Cursor <cursoragent@cursor.com>
58 lines
1.2 KiB
Markdown
58 lines
1.2 KiB
Markdown
# Hermit Desktop (Tauri 2)
|
|
|
|
Cross-platform shell for Hermit. Visual layout follows DeepSeek Harness
|
|
(session rail · chat · tool timeline · composer); the agent engine is the
|
|
in-process C core (`libcstcore`), not a Cordis/plugin runtime.
|
|
|
|
## Stack
|
|
|
|
- **Tauri 2** + Rust host
|
|
- **React 19** + Vite + TypeScript UI
|
|
- FFI to `libcstcore` (same embed path as the legacy Qt app)
|
|
|
|
## Dependencies
|
|
|
|
| Platform | Needs |
|
|
|----------|--------|
|
|
| All | Rust (stable), Node 20+, `pnpm` or `npm` |
|
|
| Linux | `webkit2gtk-4.1`, `libgtk-3`, `librsvg`, `patchelf`, pkg-config, curl |
|
|
| Windows | WebView2 runtime |
|
|
| macOS | Xcode CLT |
|
|
|
|
Nix example:
|
|
|
|
```bash
|
|
nix-shell -p rustc cargo nodejs_22 pkg-config webkitgtk_4_1 gtk3 librsvg openssl curl
|
|
```
|
|
|
|
## Develop
|
|
|
|
```bash
|
|
cd apps/desktop
|
|
npm install
|
|
npm run tauri dev
|
|
```
|
|
|
|
Without a full engine link yet, the UI runs against the mock bridge
|
|
(`HERMIT_DESKTOP_MOCK=1` or automatic when FFI is unavailable).
|
|
|
|
## Build
|
|
|
|
```bash
|
|
npm run tauri build
|
|
```
|
|
|
|
Artifacts land in `src-tauri/target/release/bundle/`.
|
|
|
|
## Layout
|
|
|
|
```
|
|
apps/desktop/
|
|
src/ React UI (DSH-like)
|
|
src-tauri/ Rust + Tauri + FFI
|
|
README.md
|
|
```
|
|
|
|
The legacy Qt front end under `/app` is frozen and will be archived once
|
|
desktop feature parity lands.
|