From fe39f4481681eb3330bf7b1a0d0ad6823daf6a96 Mon Sep 17 00:00:00 2001 From: opencode Date: Sun, 13 Sep 2026 04:36:19 -0400 Subject: [PATCH] docs: rewrite README to v2 quality bar, J1 branding, real screenshot Co-Authored-By: opencode --- README.md | 115 ++++++++++++------------------------------------------ 1 file changed, 26 insertions(+), 89 deletions(-) diff --git a/README.md b/README.md index 1a033cd..80dd9e7 100644 --- a/README.md +++ b/README.md @@ -1,27 +1,17 @@ -
- -![OpsCenter banner](docs/assets/banner.svg) - # OpsCenter -**A single-file, dependency-free operations dashboard for AI agent fleets — live agent state, a task board, session history, and system health in one dark-themed UI.** - -Stars -Last commit -License -Python 3.11+ -No dependencies -Docker Compose +> A single-file, dependency-free operations dashboard for AI agent fleets — live agent state, a task board, session history, and system health in one dark UI, for operators running Hermes agents. -
+[![License](https://img.shields.io/github/license/OneByJorah/OpsCenter?style=for-the-badge&color=FFB300&labelColor=0a0a09)](https://github.com/OneByJorah/OpsCenter) +[![Top Language](https://img.shields.io/github/languages/top/OneByJorah/OpsCenter?style=for-the-badge&color=FFB300&labelColor=0a0a09)](https://github.com/OneByJorah/OpsCenter) +[![Stars](https://img.shields.io/github/stars/OneByJorah/OpsCenter?style=for-the-badge&color=FFB300&labelColor=0a0a09)](https://github.com/OneByJorah/OpsCenter/stargazers) +[![Last Commit](https://img.shields.io/github/last-commit/OneByJorah/OpsCenter?style=for-the-badge&color=FFB300&labelColor=0a0a09)](https://github.com/OneByJorah/OpsCenter/commits) -![OpsCenter dashboard](docs/assets/screenshot.png) +![OpsCenter dashboard](docs/screenshots/dashboard.png) ## What This Is -OpsCenter gives you visibility into what your AI agents are doing right now. It reads the Hermes agent state directory (`gateway_state.json`, `state.db`, `agent-logs.db`, `kanban.db`) and renders agents, sessions, health, cron jobs, and a task board in a single real-time view. - -It is deliberately minimal: one Python file using only the standard library, serving a vanilla HTML/JS frontend. There are no pip dependencies to install and no build step. +OpsCenter shows what your AI agents are doing right now. It reads the Hermes agent state directory (`gateway_state.json`, `state.db`, `agent-logs.db`, `kanban.db`) and renders agents, sessions, health, cron jobs, and a task board in one real-time view. It is deliberately minimal: one Python file on the standard library serving a vanilla HTML/JS frontend — no pip installs, no build step. ## Quick Start @@ -31,92 +21,39 @@ cd OpsCenter python3 server.py ``` -Open **http://localhost:51763**. Or, for Docker: - -```bash -cp .env.example .env -docker compose up -d -``` - -> [!NOTE] -> OpsCenter reads agent state from `HERMES_HOME` (defaults to `../.hermes`). If that directory is absent the dashboard still starts and reports empty state. +Open `http://localhost:51763`. For Docker: `cp .env.example .env && docker compose up -d`. ## Features -- **Live agent monitoring** — current subagent status and activity pulled from Hermes state. -- **Kanban task board** — create, update, and delete tasks persisted in `board.db`. -- **Session tracking** — historical log of agent sessions and outcomes. -- **Token analytics** — LLM usage and cost visibility from gateway state. -- **System health** — server resource monitoring and threshold alerts. -- **Server-Sent Events** — `/events` streams snapshot changes to the UI in real time. -- **Content editor** — list, read, and save markdown files under the content directory. -- **Fleet visualization** — 3D topology view of distributed agent nodes. +- Live agent monitoring from Hermes state — subagent status and activity +- Kanban task board persisted in SQLite (`board.db`) +- Historical session log of agent runs and outcomes +- Token analytics — LLM usage and cost visibility from gateway state +- Server-Sent Events stream (`/events`) pushes snapshots to the UI in real time +- Markdown content editor with list/read/save endpoints +- 3D topology view of distributed agent nodes +- Optional API-key guard on write endpoints ## Architecture +```mermaid +%%{init: {'theme':'base','themeVariables':{'primaryColor':'#0a0a09','primaryTextColor':'#FFB300','lineColor':'#FFB300'}}}%% +graph LR + A[Browser - HTML/JS] -->|SSE / REST| B[Python stdlib server] + B --> C[(SQLite - board.db)] + B --> D[Hermes state - gateway_state.json, *.db] ``` -Browser (HTML/JS) ──SSE / REST──▶ Python stdlib server ──▶ SQLite (board.db) - │ - ▼ - Hermes state (gateway_state.json, *.db) -``` - -## Configuration -| Variable | Default | Description | -|----------|---------|-------------| -| `PORT` | `51763` | Dashboard server port | -| `BIND` | `127.0.0.1` | Server bind address | -| `HERMES_HOME` | `../.hermes` | Path to the Hermes agent home directory | -| `MISSION_CONTROL_API_KEY` | *(empty)* | API key protecting write endpoints (`X-API-Key` header) | -| `MISSION_CONTROL_CONTENT_DIR` | `./content` | Markdown content directory for the editor | +OpsCenter reads `HERMES_HOME` (default `../.hermes`) and starts with empty state if it is absent. -> [!WARNING] -> Set `MISSION_CONTROL_API_KEY` to protect the board and content write endpoints before exposing OpsCenter on a network. Keep `BIND` at `127.0.0.1` unless you intend remote access. +## Stack -## API Endpoints - -| Endpoint | Method | Description | -|----------|--------|-------------| -| `/` | GET | Main dashboard UI | -| `/api/snapshot` | GET | Full snapshot (agents, sessions, health, cron, board) | -| `/events` | GET (SSE) | Live snapshot stream | -| `/api/health` | GET | Liveness probe | -| `/api/board` | GET/POST | List / create tasks | -| `/api/board/update?id=` | POST | Update a task | -| `/api/board/delete?id=` | POST | Delete a task | -| `/api/content` | GET | List markdown content files | -| `/api/content/get?path=` | GET | Read a markdown file | -| `/api/content/save` | POST | Save a markdown file | - -## Use Cases - -1. **Agent operators** — watch subagent activity and intervene from the task board. -2. **Homelab AI stacks** — pair with Hermes to track sessions and token usage. -3. **Ops on a budget** — run a zero-dependency dashboard in an Alpine container. - -## Tech Stack - -Python 3.11 (standard library), `http.server`/`socketserver`, SQLite, SSE, vanilla HTML/CSS/JS, Docker Compose. - -## Screenshots - -| Dashboard | Agents | Tasks | -|---|---|---| -| ![Dashboard](docs/screenshots/dashboard.png) | ![Agents](docs/screenshots/agents.png) | ![Tasks](docs/screenshots/tasks.png) | - -A short `docs/assets/demo.gif` walkthrough is also included. +Python 3.11 standard library, http.server, SQLite, Server-Sent Events, vanilla HTML/CSS/JS, Docker Compose ## Contributing -Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md). [Open an issue](https://github.com/OneByJorah/OpsCenter/issues) to report a bug or request a feature. +Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md) and [open an issue](https://github.com/OneByJorah/OpsCenter/issues). ## License MIT — see [LICENSE](LICENSE). - -## Connect - -- [jorahone.com](https://jorahone.com) -- [GitHub Org](https://github.com/OneByJorah) -- [info@jorahone.com](mailto:info@jorahone.com)