简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية
Un panel tipo oficina pixel para colaboración multiagente: muestra en tiempo real qué hacen tus asistentes de IA (OpenClaw, Lobster, etc.) — quién está activo, qué pasó «ayer» y quién está en línea — para que las personas entiendan la situación de un vistazo.
Este repositorio es una implementación Node.js / Express de la idea Star-Office-UI original. Mantiene la misma apariencia y contrato HTTP para que agentes y scripts existentes casi no cambien, mientras el backend está pensado para servicios de larga ejecución, no un único script monolítico.
El proyecto ofrece cuatro estilos: Pixel, Soft, Night Blue y Paper; el predeterminado es Pixel.

src/, no un solo archivo gigante. Más fácil de revisar, probar y extender.engines, only-allow, engine-strict en .npmrc, comprobación en src/bootstrap/env-check.js). CI y onboarding se comportan igual en todas partes.SIGTERM / SIGINT (adecuado para Docker/K8s). GET /health para liveness y GET /ready tras inicializar la persistencia.memory/ (véase GET /yesterday-memo), convirtiendo diarios en un breve «qué hicimos la última vez».Los créditos del proyecto original están abajo; después se explica cómo ejecutar e integrar.
Gracias por publicar en abierto el concepto de oficina pixel, los recursos y el diseño de interacción.
Necesitas Node ≥ 20 y pnpm ≥ 9 (instala pnpm si hace falta).
git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git
cd Star-Office-UI-Node
pnpm install
pnpm start
URL por defecto: http://127.0.0.1:18791
Desarrollo con recarga:
pnpm dev
Si el puerto está ocupado:
PORT=18792 pnpm start
Archivo de entorno opcional:
cp .env.example .env
SKIP_PNPM_CHECK=1 solo está documentado para casos excepcionales en los que debas ejecutar node src/server.js sin pnpm — no se recomienda en producción.
docker compose up -d
Luego abre: http://127.0.0.1:18791
Establecer el estado del agente principal (ayuda CLI):
pnpm set-state writing "Drafting docs"
Salud y preparación:
curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready
GET /health — livenessGET /ready — readiness (tras comprobaciones de arranque)GET /status — estado del agente principalPOST /set_state — establecer estado del agente principalGET /agents — listar agentes (se aplica limpieza de invitados / lógica offline)POST /join-agent — unión de agente invitadoPOST /agent-push — envío de estado del agentePOST /leave-agent — salida del agentePOST /agent-approve / POST /agent-reject — aprobar o rechazar invitadoGET /yesterday-memo — memo derivado de memory/YYYY-MM-DD.mdGET /, /join, /invite — páginas web; recursos estáticos bajo /staticidle, writing, researching, executing, syncing, errorMapeo de compatibilidad:
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 de vida sugerido:
join-agent al arrancaragentId localmenteleave-agent en apagado ordenado403/404, dejar de enviar y volver a unirse o alertarSi este proyecto te ayuda, se agradece una estrella.
Made with ❤️ by wangmiaozero