# Hermes Dashboard — Status **Operational** · Updated: 2026-10-14 Goal: Single moldable mission-control screen on top of existing Hermes + Agent OS vault. ## Current state — ALL PHASES COMPLETE - **Phase 0–1:** Project scaffolded, WRITE_PROTOCOL in place, HOME.md boot order updated. - **Phase 2:** Streamlit dashboard at `~/Projects/hermes-dashboard/app.py` — 6 live cards. - **Phase 3:** Apollo persistent voice (`apollo_voice.py`) — local STT+TTS loop, barge-in. - **Phase 4:** Oracle content loop (`oracle_loop.py`) — ClearFeed → hooks + angles + social/blog drafts. - **Phase 5:** Search OS (`search_os.py`) — site analysis + parasite-SEO content generation. - **Phase 6:** Daily loop polish — launch.bat, daily note pattern, Chat card labeled. ## Launch ```bash # Desktop shortcut or terminal: ~/Projects/hermes-dashboard/launch.bat # Or direct: cd ~/Projects/hermes-dashboard streamlit run app.py ``` Runs on `http://localhost:8501`. ## Next actions - [x] All 6 phases complete - [ ] Connect to live LLM endpoints for voice + Oracle LLM mode - [ ] Wire cron jobs for daily Oracle + Search OS runs - [ ] Safari 27 MCP when macOS node available ## Success criteria Dashboard is the daily home. Every agent writes high-signal memory to the vault. Voice, Oracle, and Search OS are one click away. ## 2026-10-14 11:55 PT — Fix pass + mission-control rebuild **Fixed (verified):** - Apollo: detection now matches python processes whose CommandLine contains apollo_voice.py (psutil, falls back to Get-CimInstance); Start is blocked if already running; Stop does taskkill /PID /T /F with a timeout; real HTTP check of :1920 with st.error when down; Apollo stdout/stderr goes to apollo/apollo.log with a tail shown. - apollo_voice.py: removed the wrong /32768 scaling on float audio, added the missing nonlocal last_energy_time, and the "LLM unreachable" message now names the endpoint. - Chat link now points to http://127.0.0.1:8787 (Hermes WebUI). - Oracle: Run button runs oracle_loop.py with the venv python (300s timeout) and shows rc/stdout/stderr (tested rc 0); SAMPLE DATA badge; draft links replaced by full paths + download buttons. - Search OS: URL + keyword inputs, runs search_os.py (120s timeout), correct PowerShell command shown. - Video/Audit/Projects: disabled, labelled "not wired yet". - UI rebuilt: dark theme (.streamlit/config.toml), status bar, bordered cards, render_() + CARDS registry, cached vault scans. - Streamlit restarted on :8501; / and /_stcore/health both return 200. **Remaining blockers:** - No model is serving on :1920 (Apollo) or :8080 (Oracle --llm), so Apollo can only return an error and Oracle runs template mode only. - ClearFeed stories.json is the example.com sample fixture, so all Oracle output is fake data. - Apollo has not been mic-tested (Start was not clicked).