English documentation is the default in this repository.
- Chinese documentation: README.zh-CN.md
OpenClaw Agent Orchestration UI is a practical control plane for teams running multi-agent systems with OpenClaw Gateway. It focuses on operational clarity, safe configuration changes, and visual orchestration understanding.
This project helps engineering teams answer real production questions:
- Which agent produced this response?
- Where did a cross-agent handoff happen?
- What changed in routing bindings or runtime configuration?
- Can we update config safely without blind overwrite?
The UI is designed for day-to-day usage by developers and operators, not only for demos.
- Why This Project
- Key Capabilities
- Architecture
- Project Structure
- Quick Start
- Environment Variables
- Server API Overview
- Flow Visualization Guide
- Development Scripts
- Engineering Notes
- FAQ
- Contributing
- License
In many agent platforms, the hard part is not sending one model request. The hard part is operations:
- Managing multiple agents and their identity files.
- Tracking agent-to-agent routing decisions.
- Editing bindings and config with low risk.
- Keeping a clear view of system state while moving fast.
OpenClaw Agent Orchestration UI provides one place to do all of this.
- List and select agents.
- Create, update, and delete agents.
- Edit runtime files directly, including
SOUL.md. - Separate views for overview, lifecycle actions, and files.
- Edit bindings JSON with format and save actions.
- Visualize sub-agent graph using React Flow.
- Highlight same-agent derivation vs cross-agent handoff.
- See ordered hop details to debug flow transitions.
- View metrics: node count, edge count, agent count, handoff count, depth.
- Support
config.get,config.schema,config.set,config.patch,config.apply. - Show raw config editor and schema view.
- Provide quick agent config update flow (model + file content).
- Respect
baseHashflow to reduce overwrite risk.
- Sidebar with grouped tabs.
- Module-level sub-tabs.
- Collapsible sidebar for dense workflows.
- Responsive layout for desktop and smaller screens.
- Fastify server with Zod validation.
- Unified adapter around
openclaw gateway call. - REST layer for the web client.
- Validation and error handling at API boundary.
- React 19 + TypeScript + Vite.
- React Query for data synchronization.
- React Flow for graph rendering and interaction.
- Structured tabs for operational workflows.
- Keep OpenClaw command execution in server scope.
- Keep UI focused on interaction and status visibility.
- Reduce coupling between rendering and CLI behavior.
apps/
server/ Fastify API + OpenClaw gateway adapter
web/ React UI + orchestration graph
tasks/
todo.md Task tracking and review notes
- Node.js 22+
- npm 10+
openclawavailable in local environment- A valid OpenClaw runtime/config setup
npm installnpm run devDefault endpoints:
- Web:
http://127.0.0.1:5173 - Server:
http://127.0.0.1:3001
npm run lint
npm run test
npm run buildOPENCLAW_BIN: OpenClaw executable path (default:openclaw)HOST: server host (default:127.0.0.1)PORT: server port (default:3001)VITE_API_BASE_URL: web API base (default:/api)
Gateway-aligned methods used by server:
agents.list,agents.create,agents.update,agents.deleteagents.files.list,agents.files.get,agents.files.setmodels.listsessions.listconfig.get,config.schema,config.set,config.patch,config.apply
Composed endpoints:
GET /api/orchestration/bindingsPUT /api/orchestration/bindingsGET /api/orchestration/subagents/tree
The graph view is intentionally built for debugging real routing behavior.
- Blue edge: same-agent derivation path.
- Orange edge: cross-agent handoff.
- Edge labels indicate derivation order or handoff type.
ROOTmarks the root session node.Lxshows depth level in the derivation tree.- Chips display agent id, node kind, and model when available.
- Ordered hop list from source to target.
- Quick visibility of where handoff occurs.
- Compact metadata for depth, kind, and model.
This makes it easier to answer:
- Where did the flow diverge?
- Which transition introduced a different agent?
- Is the current chain too deep for expected behavior?
From repository root:
npm run dev
npm run lint
npm run test
npm run buildRun sub-project scripts directly:
npm run dev -w @openclaw-ui/server
npm run dev -w @openclaw-ui/web- Code is the source of truth.
- Keep changes minimal and verifiable.
- Prefer explicit API boundaries over implicit coupling.
- Validate before commit (
lint/test/build). - Keep UI states explainable for operator workflows.
It is best for teams who already run OpenClaw-based agent workflows and want a clearer operational dashboard for routing, config updates, and agent maintenance.
No. The structure and UX target real development and operations workflows.
No. It complements CLI operations by adding visual control, discoverability, and easier status tracking.
Yes. Common extensions include authentication, audit logging, approvals, and environment-specific deployment policies.
Current layout is lightweight and readable for typical usage. Very large graphs may need advanced auto-layout integration in future versions.
Contributions are welcome.
- Fork the repository.
- Create a feature branch.
- Add changes with verification details.
- Open a pull request.
Recommended commit prefixes:
feat:new featurefix:bug fixrefactor:structural improvement without behavior changedocs:documentation update
MIT is a practical default for open-source usage. Adjust as needed for your organization.