简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية
픽셀 오피스 대시보드로 멀티 에이전트 협업을 시각화합니다. OpenClaw, Lobster 등 AI 어시스턴트가 무엇을 하는지, 누가 활성 상태인지, “어제” 무엇이 있었는지, 누가 온라인인지 한눈에 볼 수 있습니다.
이 저장소는 상위 Star-Office-UI 아이디어를 Node.js / Express로 구현한 것입니다. 화면과 HTTP 계약을 유지해 기존 에이전트·스크립트 변경을 최소화하고, 백엔드는 장기 실행 서비스에 맞게 구성했습니다.
UI 스타일 4종: 픽셀, 소프트, 미드나잇, 페이퍼 — 기본은 픽셀입니다.

src/ 아래 라우트·서비스·설정·부트스트랩으로 분리.engines, only-allow, engine-strict, src/bootstrap/env-check.js).SIGTERM / SIGINT 정상 종료. GET /health, 초기화 후 GET /ready.memory/**의 Markdown을 읽습니다 (GET /yesterday-memo).Node ≥ 20, pnpm ≥ 9 (pnpm 설치).
git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git
cd Star-Office-UI-Node
pnpm install
pnpm start
기본 URL: http://127.0.0.1:18791
파일 감시 개발:
pnpm dev
포트 충돌 시:
PORT=18792 pnpm start
환경 변수 예:
cp .env.example .env
SKIP_PNPM_CHECK=1은 pnpm 없이 node src/server.js를 돌려야 할 때만 — 프로덕션에는 비권장입니다.
docker compose up -d
브라우저: http://127.0.0.1:18791
메인 에이전트 상태 설정:
pnpm set-state writing "문서 작성 중"
헬스·레디:
curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready
GET /health — 생존GET /ready — 준비 완료(시작 검사 후)GET /status — 메인 에이전트 상태POST /set_state — 메인 상태 설정GET /agents — 에이전트 목록(게스트 정리·오프라인 처리)POST /join-agent — 게스트 참가POST /agent-push — 게스트 상태 푸시POST /leave-agent — 게스트 퇴장POST /agent-approve / POST /agent-reject — 승인/거절GET /yesterday-memo — memory/YYYY-MM-DD.md 기반 메모GET /, /join, /invite — 웹 페이지; 정적 자원은 /staticidle, writing, researching, executing, syncing, error호환 매핑:
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"}'
권장 흐름: 시작 시 join-agent → agentId 로컬 저장 → 주기 agent-push → 정상 종료 시 leave-agent → 403/404 시 푸시 중단 후 재참가 또는 알림.
도움이 되었다면 스타를 부탁드립니다.
Made with ❤️ by wangmiaozero