Deploy your first AI agent in 5 minutes.
- Docker and Docker Compose v2 (install)
- Node.js 20+ (install)
- An Anthropic API key (for real AI chat — optional, demo mode works without it)
git clone https://github.com/urule-ai/urule.git
cd urule
make setupThis clones all ecosystem repos and installs dependencies.
# Start all backend services (PostgreSQL, NATS, registry, adapter, etc.)
make infra-up
# Start the Office UI
make dev-uiOpen http://localhost:3000 in your browser.
Click "Demo Login" on the login page. This bypasses Keycloak authentication and logs you in as a demo user with full access.
To chat with a real AI agent, you need an API key:
- Go to Settings (gear icon in sidebar)
- In the Model Providers section, click "Add Provider"
- Select Claude (Anthropic)
- Enter your Anthropic API key
- Click Save
Without an API key, you can still explore the UI, deploy agents, and manage approvals — the chat will just not have real AI responses.
- Click "Agents" in the sidebar
- Click "New Agent"
- Browse the template catalog (50+ agents across 7 categories)
- Click a template to see details, then "Select"
- Configure the agent name, thinking depth, and verbosity
- Click "Deploy Agent"
You'll see a celebration page with confetti.
- Click "Start Chat" from the agent success page (or go to Chat in the sidebar)
- Type a message and press Enter
- Watch the agent respond in real-time with streaming text
The agent has three built-in tools:
- hire_agent — hire specialist agents (requires your approval)
- create_task — create tracked tasks
- update_task_status — signal progress and request acceptance
| Goal | Where to Go |
|---|---|
| Explore the dashboard | /office — stats, agent activity, infrastructure |
| Manage approvals | /office/approvals — review AI agent requests |
| Create a project | /office/projects — timeline and kanban views |
| Connect tools | /office/integrations — Slack, GitHub, MCP servers |
| Customize theme | /office/settings — dark/light/system toggle |
| Build a widget | widget-sdk |
| Add an orchestrator | orchestrator-contract |
| Run tests | make test (unit) or make e2e-playwright (E2E) |
| Read the architecture | ARCHITECTURE.md |
| Browse the roadmap | ROADMAP.md |
# Check if ports are in use
lsof -i :3001 # registry
lsof -i :5500 # PostgreSQL
# Restart everything
make infra-down && make infra-upThe PackageHub service needs to be running with seeded data. Ensure make infra-up completed successfully and check http://localhost:3009/healthz.
These are likely root-owned files from previous Docker builds:
sudo rm -rf apps/office-ui/.next
sudo rm -rf apps/office-ui/node_modules
npm installCheck that the adapter service is running: curl http://localhost:3002/healthz. If using real AI, verify your API key is configured in Settings.
| Service | Port | URL |
|---|---|---|
| Office UI | 3000 | http://localhost:3000 |
| Registry | 3001 | http://localhost:3001/docs |
| Adapter | 3002 | http://localhost:3002/docs |
| Approvals | 3003 | http://localhost:3003/docs |
| State | 3007 | http://localhost:3007/docs |
| PackageHub | 3009 | http://localhost:3009/docs |
| PostgreSQL | 5500 | — |
| NATS | 4222 | http://localhost:8222 (monitor) |
Every service exposes Swagger docs at /docs.