logo
0
0
WeChat Login
wangmiao<tuziling84@gmail.com>
fix

简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية

Star Office UI Node

License Node pnpm GitHub stars

Ein Pixel-Büro-Dashboard für Multi-Agent-Kollaboration: Es zeigt live, was eure KI-Assistenten (OpenClaw, Lobster usw.) tun — wer aktiv ist, was „gestern“ passiert ist und wer online ist.

Dieses Repo ist eine Node.js / Express-Umsetzung von Star-Office-UI: gleiches Look-and-Feel und HTTP-Vertrag, damit bestehende Agenten wenig ändern müssen; das Backend ist für dauerhaften Betrieb gedacht.

Vier UI-Stile: Pixel, Soft, Mitternacht, Papier — Standard Pixel.

像素风格 柔和风格 夜青风格 纸本风格

Was diesen Fork auszeichnet

  • Service-Struktur: Routen, Services, Config und Bootstrap unter src/ statt einer Monolith-Datei.
  • Toolchain erzwungen: pnpm und Node ≥ 20 (engines, only-allow, engine-strict, Prüfung in src/bootstrap/env-check.js).
  • Betrieb: Graceful Shutdown bei SIGTERM / SIGINT. GET /health, GET /ready nach Persistenz-Init.
  • Status auf der Platte: Hauptstatus, Agentenliste und Join-Keys als JSON neben der App.
  • Gestern-Memo: Markdown aus memory/ (GET /yesterday-memo).

Danksagungen

Schnellstart

Node ≥ 20, pnpm ≥ 9 (pnpm installieren).

git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git cd Star-Office-UI-Node pnpm install pnpm start

Standard-URL: http://127.0.0.1:18791

Entwicklung mit Watch:

pnpm dev

Port belegt:

PORT=18792 pnpm start

Optional:

cp .env.example .env

SKIP_PNPM_CHECK=1 nur für Sonderfälle ohne pnpm — nicht für Produktion empfohlen.

Docker Compose

docker compose up -d

Dann: http://127.0.0.1:18791

Nützliche Befehle

Haupt-Agent-Status:

pnpm set-state writing "Dokumentation"

Health:

curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready

API-Überblick

  • GET /health — Liveness
  • GET /ready — Readiness
  • GET /status — Hauptstatus
  • POST /set_state — Status setzen
  • GET /agents — Agentenliste
  • POST /join-agent — Gast beitreten
  • POST /agent-push — Gast-Status
  • POST /leave-agent — Gast verlassen
  • POST /agent-approve / POST /agent-reject — Genehmigen/Ablehnen
  • GET /yesterday-memo — Memo aus memory/YYYY-MM-DD.md
  • GET /, /join, /invite — Seiten; statische Dateien unter /static

OpenClaw / Lobster anbinden

1) Zustände

  • idle, writing, researching, executing, syncing, error

Mapping:

  • working / busy / writewriting
  • run / running / execute / execexecuting
  • syncsyncing
  • research / searchresearching

2) Join und agentId cachen

curl -s -X POST http://127.0.0.1:18791/join-agent \ -H "Content-Type: application/json" \ -d '{ "name": "openclaw-agent-01", "joinKey": "ocj_starteam02", "state": "idle", "detail": "just joined" }'

3) Status regelmäßig pushen (10–30 s)

curl -s -X POST http://127.0.0.1:18791/agent-push \ -H "Content-Type: application/json" \ -d '{ "agentId": "agent_xxx", "joinKey": "ocj_starteam02", "name": "openclaw-agent-01", "state": "writing", "detail": "working on current task context" }'

4) Verlassen

curl -s -X POST http://127.0.0.1:18791/leave-agent \ -H "Content-Type: application/json" \ -d '{"agentId":"agent_xxx"}'

Empfohlen: beim Start join-agentagentId speichern → Intervall-Push → beim Shutdown leave-agent → bei 403/404 Push stoppen und neu joinen oder alarmieren.

Lizenz

  • Code: MIT
  • Grafiken können zusätzliche Bedingungen des Upstreams haben; für kommerzielle Nutzung ggf. eigene Assets verwenden.

Sterne

Wenn das Projekt hilft, freuen wir uns über einen Stern.


Made with ❤️ by wangmiaozero