简体中文 | English | 한국어 | Français | Deutsch | 日本語 | Русский | Español | Português | Italiano | Tiếng Việt | العربية
Một bảng điều khiển văn phòng pixel cho cộng tác đa tác tử: hiển thị theo thời gian thực các trợ lý AI (OpenClaw, Lobster, v.v.) đang làm gì — ai đang hoạt động, «hôm qua» đã xảy ra gì, ai đang trực tuyến — để con người nắm tình huống một cái nhìn.
Kho lưu trữ này triển khai Node.js / Express theo ý tưởng Star-Office-UI gốc. Giữ nguyên giao diện và hợp đồng HTTP để tác tử và script hiện có gần như không đổi, trong khi backend được tổ chức cho dịch vụ chạy lâu dài — không phải một script khổng lồ đơn lẻ.
Dự án hỗ trợ bốn kiểu: Pixel, Soft, Night Blue và Paper; mặc định là Pixel.

src/ thay vì một file duy nhất. Dễ review, test và mở rộng.engines, only-allow, engine-strict trong .npmrc, kiểm tra trong src/bootstrap/env-check.js). CI và onboarding nhất quán mọi nơi.SIGTERM / SIGINT (thích hợp Docker/K8s). GET /health cho liveness và GET /ready sau khi khởi tạo persistence.memory/ cùng cấp (xem GET /yesterday-memo), biến nhật ký thành đoạn «lần trước chúng ta đã làm gì».Phần ghi công dự án gốc ở dưới; sau đó là cách chạy và tích hợp.
Cảm ơn đã mã nguồn mở khái niệm văn phòng pixel, tài nguyên và thiết kế tương tác.
Cần Node ≥ 20 và pnpm ≥ 9 (cài pnpm nếu cần).
git clone https://github.com/wangmiaozero/Star-Office-UI-Node.git
cd Star-Office-UI-Node
pnpm install
pnpm start
URL mặc định: http://127.0.0.1:18791
Phát triển có watch:
pnpm dev
Nếu cổng bận:
PORT=18792 pnpm start
Tệp môi trường tùy chọn:
cp .env.example .env
SKIP_PNPM_CHECK=1 chỉ ghi nhận cho trường hợp hiếm khi phải chạy node src/server.js không qua pnpm — không khuyến nghị cho production.
docker compose up -d
Sau đó mở: http://127.0.0.1:18791
Đặt trạng thái tác tử chính (CLI tiện ích):
pnpm set-state writing "Drafting docs"
Sức khỏe và sẵn sàng:
curl -s http://127.0.0.1:18791/health curl -s http://127.0.0.1:18791/ready
GET /health — livenessGET /ready — readiness (sau kiểm tra khởi động)GET /status — trạng thái tác tử chínhPOST /set_state — đặt trạng thái tác tử chínhGET /agents — danh sách tác tử (dọn khách / logic offline)POST /join-agent — tác tử khách tham giaPOST /agent-push — đẩy trạng thái tác tửPOST /leave-agent — tác tử rờiPOST /agent-approve / POST /agent-reject — duyệt hoặc từ chối kháchGET /yesterday-memo — memo từ memory/YYYY-MM-DD.mdGET /, /join, /invite — trang web; tài nguyên tĩnh dưới /staticidle, writing, researching, executing, syncing, errorÁnh xạ tương thích:
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"}'
Vòng đời gợi ý:
join-agent khi khởi độngagentId cục bộleave-agent khi tắt an toàn403/404, ngừng đẩy và tham gia lại hoặc cảnh báoNếu dự án hữu ích, một sao là động viên lớn.
Made with ❤️ by wangmiaozero