书小安 as a desktop app — the 书安OS unified assistant, wrapped into a lightweight native shell with Pake (Tauri, ~5 MB, far lighter than an Electron port).
书小安 is the assistant entry of 书安OS. It ships per form factor: the terminal
edition is a3s code; this project is the desktop edition. It wraps the
standalone assistant page (/assistant — the 书小安 experience only, none of the
OS admin chrome) into a real window with its own icon, dock presence, and
shortcuts.
npm install
echo 'A3S_URL=https://your-os-host.example.com' > .env # 书安OS base URL
npm run build # packages for the current platform (macOS: .app + .dmg)Requirements: Node 18+, a Rust toolchain (cargo). The first build compiles the
Tauri shell and takes a few minutes. The app wraps <A3S_URL>/assistant, so the
书安OS deployment must include the standalone 书小安 route.
| Env | Default | Meaning |
|---|---|---|
A3S_URL |
— (required, via env or .env) |
书安OS base URL; the app wraps <A3S_URL>/assistant |
A3S_NAME |
A3S |
Bundle/product name (ASCII — some packagers mishandle CJK names); the window title stays 书小安 |
Deployment endpoints are configuration, not code: keep them in the gitignored
.env. Extra flags pass through to pake, e.g. npm run build -- --hide-title-bar
(immersive macOS header) or --multi-arch (universal macOS binary).
- The app needs network reach to
A3S_URL, exactly like the browser does. Login/session behave as in the browser (Pake persists cookies/localStorage per app; the/assistantroute is login-guarded and redirects to the OS login page on first run). - Icons in
icons/are generated from the 书安OS web logo (apps/web/public/logo.png):a3s.icns(macOS),a3s.png(Linux). Windows falls back to Pake's default unless an.icois added. - Output lands in the project root (
A3S.app/A3S.dmgon macOS); build artifacts are gitignored.