简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية
Una dashboard d’ufficio in pixel per la collaborazione multi-agente: mostra in tempo reale cosa stanno facendo i tuoi assistenti IA (OpenClaw, Lobster, ecc.) — chi è attivo, cosa è successo «ieri» e chi è online — così le persone capiscono la situazione a colpo d’occhio.
Questo repository è un’implementazione Node.js / Express dell’idea Star-Office-UI a monte. Mantiene lo stesso aspetto e contratto HTTP così che agenti e script esistenti cambino poco o nulla, mentre il backend è strutturato per servizi a lunga esecuzione, non un unico script monolitico.
Il progetto offre quattro stili: Pixel, Soft, Night Blue e Paper; predefinito è Pixel.

src/ invece di un unico file. Più facile da revisionare, testare ed estendere.engines, only-allow, engine-strict in .npmrc, controllo in src/bootstrap/env-check.js). CI e onboarding si comportano allo stesso modo ovunque.SIGTERM / SIGINT (adatto a Docker/K8s). GET /health per liveness e GET /ready dopo l’inizializzazione della persistenza.memory/ (vedi GET /yesterday-memo), trasformando i diari in un breve «cosa abbiamo fatto l’ultima volta».I crediti del progetto originale sono sotto; poi come eseguire e integrare.
Grazie per aver reso open source il concetto di ufficio pixel, gli asset e il design delle interazioni.
Servono Node ≥ 20 e pnpm ≥ 9 (installa pnpm se necessario).
git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git
cd Star-Office-UI-Node
pnpm install
pnpm start
URL predefinito: http://127.0.0.1:18791
Sviluppo con watch:
pnpm dev
Se la porta è occupata:
PORT=18792 pnpm start
File di ambiente opzionale:
cp .env.example .env
SKIP_PNPM_CHECK=1 è documentato solo per casi limite in cui devi eseguire node src/server.js senza pnpm — non consigliato in produzione.
docker compose up -d
Poi apri: http://127.0.0.1:18791
Imposta lo stato dell’agente principale (helper CLI):
pnpm set-state writing "Drafting docs"
Salute e readiness:
curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready
GET /health — livenessGET /ready — readiness (dopo i controlli di avvio)GET /status — stato dell’agente principalePOST /set_state — imposta stato dell’agente principaleGET /agents — elenco agenti (pulizia ospiti / logica offline applicata)POST /join-agent — ingresso agente ospitePOST /agent-push — invio stato agentePOST /leave-agent — uscita agentePOST /agent-approve / POST /agent-reject — approva o rifiuta ospiteGET /yesterday-memo — memo derivato da memory/YYYY-MM-DD.mdGET /, /join, /invite — pagine web; asset statici sotto /staticidle, writing, researching, executing, syncing, errorMappatura di compatibilità:
working / busy / write → writingrun / running / execute / exec → executingsync → syncingresearch / search → researchingcurl -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"
}'
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"
}'
curl -s -X POST http://127.0.0.1:18791/leave-agent \
-H "Content-Type: application/json" \
-d '{"agentId":"agent_xxx"}'
Ciclo di vita suggerito:
join-agent all’avvioagentId in localeleave-agent allo shutdown graduale403/404, smetti di inviare e rientra o avvisaSe questo progetto ti è utile, una stella è apprezzata.
Made with ❤️ by wangmiaozero