diff --git a/README.md b/README.md index 59530df..533eb3d 100644 --- a/README.md +++ b/README.md @@ -19,16 +19,17 @@ ## Features -- **Dashboard** — System health, token usage, recent sessions at a glance +- **Dashboard** — System health, token usage, recent sessions with live refresh - **Insights** — Usage analytics with token breakdown, model/platform stats, top tools bar chart, activity heatmaps, notable sessions, and time period filtering (7/30/90 days or all time) -- **Sessions Browser** — Full conversation history with message rendering, tool call inspection, and full-text search (FTS5) +- **Sessions Browser** — Full conversation history with message rendering, tool call inspection, full-text search, rename, delete, and JSONL export - **Activity Feed** — Recent tool execution log with filtering by kind and session, detail inspector with pretty-printed arguments - **Live Chat** — Embedded terminal running `hermes chat` with full ANSI color and Rich formatting via [SwiftTerm](https://github.com/migueldeicaza/SwiftTerm), session persistence across navigation, resume/continue previous sessions, and voice mode controls -- **Memory Viewer/Editor** — View and edit Hermes's MEMORY.md and USER.md with live refresh -- **Skills Browser** — Browse all installed skills by category with file content viewer +- **Memory Viewer/Editor** — View and edit Hermes's MEMORY.md and USER.md with live file-watcher refresh +- **Skills Browser** — Browse all installed skills by category with file content viewer and file switcher +- **Tools Manager** — Enable/disable toolsets per platform (CLI, Telegram, Discord, etc.) with toggle switches, MCP server status - **Cron Manager** — View scheduled jobs, their status, prompts, and output -- **Log Viewer** — Real-time tailing of error and gateway logs with level filtering -- **Settings** — Read-only config display with raw YAML viewer and Finder path links +- **Log Viewer** — Real-time log tailing with level filtering and text search +- **Settings** — Configuration display with raw YAML viewer and Finder path links - **Menu Bar** — Status icon showing Hermes running state with quick actions ## Requirements @@ -63,11 +64,12 @@ scarf/ Features/ Self-contained feature modules Dashboard/ System overview and stats Insights/ Usage analytics and activity patterns - Sessions/ Conversation browser with detail view + Sessions/ Conversation browser with rename, delete, export Activity/ Tool execution feed with inspector Chat/ Embedded terminal via SwiftTerm with voice controls Memory/ Memory viewer and editor Skills/ Skill browser by category + Tools/ Toolset management per platform Cron/ Scheduled job viewer Logs/ Real-time log viewer Settings/ Configuration display @@ -88,8 +90,10 @@ Scarf reads Hermes data directly from `~/.hermes/`: | `gateway_state.json` | JSON | Read-only | | `skills/` | Directory tree | Read-only | | `hermes chat` | Terminal subprocess | Interactive | +| `hermes tools` | CLI commands | Enable/Disable | +| `hermes sessions` | CLI commands | Rename/Delete/Export | -The app **never writes** to `state.db` — it opens in read-only mode to avoid WAL contention with Hermes. +The app opens `state.db` in read-only mode to avoid WAL contention with Hermes. Management actions (tool toggles, session rename/delete/export) go through the Hermes CLI. ### Dependencies @@ -101,7 +105,11 @@ Everything else uses system frameworks: SQLite3 C API, Foundation JSON, Attribut ## How It Works -Scarf is a passive observer. It watches `~/.hermes/` for file changes and polls the SQLite database for new sessions and messages. The Chat tab spawns `hermes chat` as a subprocess in a pseudo-terminal, giving you the full interactive Hermes CLI experience with proper ANSI rendering. +Scarf watches `~/.hermes/` for file changes and queries the SQLite database for sessions, messages, and analytics. Views refresh automatically when Hermes writes new data. + +The Chat tab spawns `hermes chat` as a subprocess in a pseudo-terminal, giving you the full interactive CLI experience with proper ANSI rendering. Sessions persist across navigation — switch tabs and come back without losing your conversation. + +Management actions (renaming sessions, toggling tools, editing memory) call the Hermes CLI or write directly to the appropriate files, keeping Scarf and Hermes in sync. The app sandbox is disabled because Scarf needs direct access to `~/.hermes/` and the ability to spawn the Hermes binary.