Manage Pi coding sessions with a Tauri desktop app, browser-accessible server mode, and a standalone static demo page.
Releases · Documentation · 中文文档 · Preview
- Session browser with list/project/kanban views, favorites, tags, rename, delete, and export.
- Full-text search via SQLite FTS + Tantivy-backed indexing/search flows.
- In-session message search with inline highlights, current-match navigation, and keyboard-friendly close/reset behavior.
Cmd/Ctrl + Fbehavior is configurable (search vs. sidebar toggle). - Built-in terminal (PTY) and one-click resume of Pi sessions.
- Multi-protocol runtime: Tauri IPC, WebSocket, HTTP, SSE.
- Rich demo data engine and dedicated static demo page build mode.
- i18n packs:
en-US,zh-CN,ja-JP,de-DE,fr-FR,es-ES.
| Home | Session Page |
|---|---|
![]() |
![]() |
| Session Tree | Kanban |
![]() |
![]() |
| Mode | Entry | Network behavior |
|---|---|---|
| Desktop GUI | pi-session-manager |
GUI + backend services; default settings include WS 52130, HTTP 52131 |
| Headless in main binary | pi-session-manager --cli / --headless |
Single-port HTTP + WS(/ws) on http_port (default 52131) |
| Standalone CLI crate | pi-session-cli |
Single-port HTTP + WS(/ws) (default 52131) |
| Static demo page | dist-demo/index.html |
No backend required, forced demo data |
- Node.js 20+
- Rust stable (via
rustup) - Platform toolchains for Tauri (Xcode / WebView2 / WebKitGTK)
git clone https://github.com/Dwsy/pi-session-manager.git
cd pi-session-manager
pnpm install
# or: npm install| Command | Purpose |
|---|---|
npm run dev |
Frontend dev server |
npm run dev:demo |
Frontend dev server in demo mode context |
npm run build |
Production frontend build to dist/ |
npm run build:demo |
Static demo build to dist-demo/ (default page is demo mode) |
npm run tauri:dev |
Full desktop dev (frontend + Rust) |
npm run tauri:build |
Desktop production bundle |
npm run build:cli |
Build standalone pi-session-cli binary |
./pi-session-manager./pi-session-manager --cli
# or
./pi-session-manager --headless
# Override port/bind
./pi-session-manager --cli -p 18080 -b 0.0.0.0CLI flags:
-p, --port <PORT>: shared HTTP+WS port in CLI mode-b, --bind <ADDR>: bind address--auth/--no-auth: enable/disable auth--token <TOKEN>: runtime-only token for current process
./pi-session-cli
./pi-session-cli -p 18080 -b 0.0.0.0Default auth behavior:
- Auth is enabled by default.
- Loopback clients are exempt.
- Non-loopback clients must provide a valid token.
POST /apicommand endpointGET /wsWebSocket endpointGET /api/eventsand/v1/eventsSSE eventsGET /healthhealth checkGET /embedded frontend (server modes)
npm run dev
# open http://localhost:1420/demo.htmlnpm run build:demo
# output: dist-demo/index.htmldist-demo/index.html bootstraps app settings with:
advanced.demoMode = truelanguage.locale = en-US
So it always opens with rich English demo data and does not require backend services.
| Path | Description |
|---|---|
~/.pi/agent/sessions/ |
Session directory |
~/.pi/agent/sessions/sessions.db |
SQLite DB (sessions, settings, tags, favorites, auth tokens) |
~/.pi/agent/session-manager-config.toml |
Scanner config (session_paths, FTS, intervals, etc.) |
~/.pi/agent/skills/ |
Pi skills |
~/.pi/agent/prompts/ |
Pi prompts |
~/.pi/agent/settings.json |
Pi settings |
~/.config/pi-session-manager.json |
Standalone pi-session-cli config |
cargo fmt --all --check
cd src-tauri && cargo clippy -- -D warnings
cargo clippy -p pi-session-cli -- -D warnings
cd src-tauri && cargo test


