Based on TenecitOS by Carlos Azaustre
A real-time dashboard and control center for OpenClaw AI agent instances. Built with Next.js 16, React 19, and Tailwind CSS v4.
SuperBotijo lives inside your OpenClaw workspace and reads its configuration, agents, sessions, memory, and logs directly from the host. No extra database or backend required β OpenClaw is the backend.
| Resource | Description |
|---|---|
| ARCHITECTURE.md | Complete technical documentation |
| AGENTS.md | AI coding agent instructions |
| docs/COST-TRACKING.md | Cost tracking guide |
| docs/agent-integration.md | Agent Kanban API setup |
| docs/HEARTBEAT-SETUP.md | Heartbeat setup for autonomous agents |
| docs/CRON-SYSTEMS.md | Cron vs Heartbeat decision guide |
| Feature | Description |
|---|---|
| Dashboard | Activity overview, agent status, weather widget, quick stats |
| Agents | Multi-agent overview with cards, hierarchy, and communication graph |
| Sessions | Session history with transcript viewer and model switching |
| Activity | Real-time activity log with heatmap, filters, and CSV export |
| System Monitor | CPU, RAM, Disk, Network metrics + PM2/Docker/systemd services |
| Feature | Description |
|---|---|
| Memory Browser | Edit MEMORY.md with live preview, word cloud, LCM Memory tab (lossless-claw) |
| File Browser | Navigate workspaces with 2D/3D visualization, PDF viewer with fullscreen |
| Global Search | Full-text search across memory and workspace files |
| Git Dashboard | Repository status, branch info, quick actions |
| Feature | Description |
|---|---|
| Analytics | Daily trends, cost breakdown by agent/model, efficiency metrics |
| Reports | Generate weekly/monthly reports with PDF export and sharing |
| Smart Suggestions | Efficiency metrics and optimization insights |
| Feature | Description |
|---|---|
| Direct Chat | Real-time chat with OpenClaw agents via gateway streaming |
| Feature | Description |
|---|---|
| Agents Overview | Multi-agent cards with skills, model, mood, and hierarchy |
| Sub-Agents | Real-time monitoring with spawn/completion timeline |
| Kanban | Task management with columns, priorities, comments, dependencies, and soft-archiving |
| Feature | Description |
|---|---|
| Cron Manager | Modern view with scheduled tasks timeline and job management |
| Heartbeat | Per-agent heartbeat config (interval, target) + HEARTBEAT.md editor |
| Feature | Description |
|---|---|
| Office 3D | Multi-floor building with animated avatars |
| Day/Night | Automatic lighting based on time of day |
| Interactions | Click objects to navigate (file cabinet β Memory, coffee β Mood) |
| Feature | Description |
|---|---|
| Terminal | Browser-based terminal with safe command allowlist |
| Skills Manager | View, enable/disable, and install skills from ClawHub |
| Git Dashboard | Repository status, branch info, quick actions |
| Settings | System info, integration status, config editor |
Dashboard β activity overview, agent status, and weather widget
Agents β multi-agent overview with hierarchy and communication graph
Sessions β all OpenClaw sessions with token usage and context tracking
System Monitor β real-time CPU, RAM, Disk, and Network metrics
Analytics β daily cost trends, efficiency metrics, and breakdown per agent
Kanban β task management with columns, priorities, and agent assignment
Memory Browser β edit MEMORY.md with live preview and word cloud
Sub-Agents β real-time monitoring with spawn/completion timeline
Config β SuperBotijo settings, agent keys, and system configuration
Office 3D β interactive 3D office with one voxel avatar per agent
| Requirement | Version |
|---|---|
| Node.js | 18+ (tested with v22) |
| OpenClaw | Installed on the same host |
| PM2 or systemd | Recommended for production |
| Reverse proxy | Caddy or nginx (for HTTPS) |
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Browser (React 19) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Next.js 16 App Router β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
β β 21 Pages β β 105 APIs β β Auth Middleware β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Data Sources β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
β β OpenClaw β β SQLite β β JSON Files β β
β β (CLI/FS) β β (2 DBs) β β (data/) β β
β βββββββββββββββ βββββββββββββββ βββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
See ARCHITECTURE.md for complete technical documentation.
SuperBotijo reads directly from your OpenClaw installation:
/root/.openclaw/ β OPENCLAW_DIR (configurable)
βββ openclaw.json β agents list, channels, models config
βββ workspace/ β main agent workspace
β βββ MEMORY.md β agent memory
β βββ SOUL.md β agent personality
β βββ IDENTITY.md β agent identity
β βββ sessions/ β session history (.jsonl files)
βββ workspace-studio/ β sub-agent workspaces
βββ workspace-infra/
βββ ...
βββ workspace/superbotijo/ β SuperBotijo lives here
The app uses OPENCLAW_DIR to locate openclaw.json and all workspaces. No manual agent configuration needed β agents are auto-discovered.
cd /root/.openclaw/workspace # or your OPENCLAW_DIR/workspace
git clone https://github.com/boticlaw/SuperBotijo.git superbotijo
cd superbotijo
npm installcp .env.example .env.localEdit .env.local:
# --- Auth (required) ---
ADMIN_PASSWORD=your-secure-password-here
AUTH_SECRET=your-random-32-char-secret-here
# --- OpenClaw paths (optional) ---
# OPENCLAW_DIR=/root/.openclaw
# --- Branding (customize) ---
NEXT_PUBLIC_AGENT_NAME=SuperBotijo
NEXT_PUBLIC_AGENT_EMOJI=π€
NEXT_PUBLIC_AGENT_DESCRIPTION=Your AI co-pilot
NEXT_PUBLIC_AGENT_LOCATION=Madrid, Spain
NEXT_PUBLIC_BIRTH_DATE=2026-01-01cp data/cron-jobs.example.json data/cron-jobs.json
cp data/activities.example.json data/activities.json
cp data/notifications.example.json data/notifications.json
cp data/configured-skills.example.json data/configured-skills.json
cp data/tasks.example.json data/tasks.jsonIf you want agents to use the Kanban, add to .env.local:
KANBAN_AGENT_KEYS=boti:sk-boti-secret-2026,memo:sk-memo-secret-2026,opencode:sk-opencode-secret-2026Generate unique keys for each agent. See docs/agent-integration.md for full setup.
openssl rand -base64 32 # AUTH_SECRET
openssl rand -base64 18 # ADMIN_PASSWORDnpm run dev # Development β http://localhost:3000
npm run build && npm start # Productionnpm run build
pm2 start npm --name "superbotijo" -- start
pm2 save
pm2 startup# /etc/systemd/system/superbotijo.service
[Unit]
Description=SuperBotijo β OpenClaw Dashboard
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/root/.openclaw/workspace/superbotijo
ExecStart=/usr/bin/npm start
Restart=always
RestartSec=10
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable superbotijo
sudo systemctl start superbotijosuperbotijo.yourdomain.com {
reverse_proxy localhost:3000
}| Layer | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| UI | React 19 + Tailwind CSS v4 |
| 3D | React Three Fiber + Drei + Rapier |
| Charts | Recharts |
| Graphs | @xyflow/react (React Flow) |
| Icons | Lucide React |
| Database | SQLite (better-sqlite3) |
| Runtime | Node.js 22 |
superbotijo/
βββ src/
β βββ app/
β β βββ (dashboard)/ # 18 dashboard pages
β β βββ api/ # 105 API endpoints
β β βββ login/ # Login page
β β βββ office/ # 3D office (public)
β βββ components/ # ~117 React components
β β βββ SuperBotijo/ # OS-style UI shell
β β βββ Office3D/ # 3D office scene
β β βββ charts/ # Recharts wrappers
β β βββ files-3d/ # 3D file tree
β βββ hooks/ # 6 custom hooks
β βββ lib/ # 20 utility modules
β βββ config/ # Branding config
β βββ i18n/ # Internationalization
β βββ middleware.ts # Auth guard
βββ data/ # JSON data files
βββ scripts/ # Setup scripts
βββ public/models/ # GLB avatar models
βββ docs/ # Documentation
| Route | Page | Description |
|---|---|---|
/ |
Dashboard | Overview, stats, activity feed |
/agents |
Agents | Multi-agent system overview |
/sessions |
Sessions | Session history & transcripts |
/chat |
Chat | Direct chat with agents via gateway streaming |
/analytics |
Analytics | Charts, costs, efficiency metrics |
/memory |
Memory | Knowledge base editor + LCM Memory (lossless-claw) |
/files |
Files | File browser (2D/3D) |
/system |
System | Hardware & services monitor |
/cron |
Cron | Job scheduler |
/subagents |
Subagents | Sub-agent monitoring |
/reports |
Reports | Generated reports |
/skills |
Skills | Skills manager |
/terminal |
Terminal | Browser terminal |
/settings |
Settings | Configuration |
/git |
Git | Repository dashboard |
/logs |
Logs | Real-time log streaming |
/kanban |
Kanban | Task management board |
/office |
Office 3D | 3D visualization |
| Category | Endpoints | Description |
|---|---|---|
| Auth | 2 | Login, logout |
| Agents | 12 | CRUD, status, metrics, mood |
| Sessions | 3 | List, transcript, model change |
| Chat | 3 | Agent snapshots, send messages, gateway health |
| Files | 9 | CRUD, upload, download, tree |
| Activities | 5 | CRUD, stats, stream, approve |
| Analytics | 4 | Data, token/task/time flows |
| Costs | 3 | Summary, efficiency, top tasks |
| Cron | 9 | CRUD, runs, system jobs |
| Skills | 7 | CRUD, toggle, ClawHub |
| System | 6 | Info, monitor, services |
| Kanban | 8 | CRUD, columns, move tasks, task dependencies, blocked/waiting states |
| Kanban Agent API | 5 | Agent task creation, claim, update, delete |
| OpenClaw Agents | 2 | GET agents, POST sync to projects |
| Other | 27 | Weather, git, logs, notifications, etc. |
See ARCHITECTURE.md for complete API documentation.
| Feature | Implementation |
|---|---|
| Auth | Password-protected with httpOnly cookie |
| Rate Limiting | 5 attempts β 15-min lockout per IP |
| Route Protection | All routes protected by middleware |
| Terminal | Strict command allowlist |
| File Access | Path sanitization, protected files |
Public routes only:
/login/api/auth/*/api/health/reports/[token](token-based)
All personal data in .env.local (gitignored). See src/config/branding.ts.
Agents auto-discovered from openclaw.json:
{
"agents": {
"list": [
{ "id": "main", "name": "...", "workspace": "..." },
{ "id": "studio", "name": "...", "workspace": "...", "ui": { "emoji": "π¬", "color": "#E91E63" } }
]
}
}Edit src/components/Office3D/agentsConfig.ts:
export const AGENTS: AgentConfig[] = [
{ id: "main", name: "Main", emoji: "π€", position: [0, 0, 0], color: "#FFCC00", role: "Primary" },
// add more agents
];Place GLB files in public/models/:
public/models/
βββ main.glb β matches agent id
βββ studio.glb
βββ infra.glb
# Collect once
npx tsx scripts/collect-usage.ts
# Setup hourly cron
./scripts/setup-cron.shSee docs/COST-TRACKING.md for details.
| Issue | Solution |
|---|---|
| "Gateway not reachable" | openclaw gateway start |
| "Database not found" | npx tsx scripts/collect-usage.ts |
| Build errors | rm -rf .next node_modules && npm install && npm run build |
| Scripts not executable | chmod +x scripts/*.sh |
Compared to the original TenecitOS:
| Feature | Description |
|---|---|
| Word Cloud | Frequent terms from memories |
| 3D File Tree | Navigate files in 3D space |
| Smart Suggestions | AI-powered optimization tips in multiple languages |
| Shareable Reports | Export and share reports |
| Multi-floor Office | 4-floor building + rooftop |
| Git Dashboard | Repository management |
| Log Streaming | Real-time log viewer |
| i18n | English + Spanish support |
| Direct Chat | Real-time chat with agents via OpenClaw gateway streaming |
| Agent Skills Display | View discovered skills for each agent in cards and organigrama |
| Task Management | Kanban with dependencies, blocked/waiting states, agent assignment, comments, and soft-archiving |
| Cron Redesign | Modern cron view with scheduled tasks timeline |
| OpenClaw Agents API | Auto-detect and sync agents to projects |
| Agent Kanban Integration | Full REST API for agents to create/claim/update tasks |
| LCM Memory | lossless-claw conversation browser with DAG view and FTS5 search |
SuperBotijo provides a complete REST API for OpenClaw agents to manage tasks programmatically.
Step 1: Create IDENTITY.md
# In your agent directory: ~/.openclaw/agents/<agent-id>/IDENTITY.md
echo -e "*Role:* <Your Role>\n*Domain:* <work|general|finance|personal>\n*agent-id:* <agent-id>" > IDENTITY.mdStep 2: Add API Key
# In your agent's auth-profiles.json
{
"profiles": {
"superbotijo:kanban": {
"type": "api_key",
"provider": "superbotijo",
"key": "sk-<agent-id>-secret-2026"
}
}
}Step 3: Configure SuperBotijo
# Add to superbotijo/.env.local
KANBAN_AGENT_KEYS=<agent-id>:sk-<agent-id>-secret-2026,...# Create task
curl -X POST http://localhost:3000/api/kanban/agent/tasks \
-H "Content-Type: application/json" \
-H "X-Agent-Id: <agent-id>" \
-H "X-Agent-Key: <your-api-key>" \
-d '{"title": "Task title", "status": "backlog", "priority": "medium"}'
# Get your tasks
curl "http://localhost:3000/api/kanban/agent/tasks?assignee=<agent-id>" \
-H "X-Agent-Id: <agent-id>" \
-H "X-Agent-Key: <your-api-key>"
# Update task
curl -X PATCH http://localhost:3000/api/kanban/agent/tasks/{taskId} \
-H "Content-Type: application/json" \
-H "X-Agent-Id: <agent-id>" \
-H "X-Agent-Key: <your-api-key>" \
-d '{"status": "in_progress"}'π Full documentation: docs/agent-integration.md
Agents can autonomously poll for tasks from the Kanban board - similar to how Vikunja or task queue systems work.
- Agent configures
heartbeatinopenclaw.jsonwith polling interval - Agent creates
HEARTBEAT.mdwith instructions on what to do - When heartbeat fires, agent calls
GET /api/heartbeat/tasks?agentName=<id> - Agent claims and processes assigned tasks
- Agent updates task status as work progresses
Step 1: Configure heartbeat in openclaw.json
{
"agents": {
"list": [{
"id": "boti",
"heartbeat": { "every": "15m", "target": "none" },
"skills": ["kanban-tasks"]
}]
}
}Step 2: Create HEARTBEAT.md
# HEARTBEAT.md
## Every 15 minutes, execute:
1. Check assigned tasks: GET /api/heartbeat/tasks?agentName=boti
2. For each task with status="in_progress" and assignee="boti":
- If claimedBy === null β CLAIM and process
- If claimedBy === "boti" β continue processing
3. On completion: PATCH /api/kanban/tasks/{id} with status: "done"
If no tasks: respond with HEARTBEAT_OKπ Complete guide with templates: docs/HEARTBEAT-SETUP.md
lossless-claw is a plugin that adds Lossless Context Management (LCM) to OpenClaw. SuperBotijo detects it automatically and adds an LCM Memory tab to the Memory Browser alongside the existing Editor and Word Cloud tabs.
- Conversations β browsable list of all LCM-tracked sessions
- Messages β conversation threads with role-based styling (user, assistant, system)
- Summary DAG β directed acyclic graph showing how summaries chain together
- FTS5 Search β full-text search across all LCM messages and summaries
- lossless-claw plugin installed
- Plugin enabled in
openclaw.json lcm.dbSQLite database present in the agent workspace
No configuration needed in SuperBotijo. Just install and enable lossless-claw:
# Install lossless-claw (see their repo for details)
# https://github.com/martian-engineering/lossless-clawThen enable it in openclaw.json. SuperBotijo auto-detects the plugin and database on next page load.
LCM Memory is fully compatible with the standard MEMORY.md editor β both work side by side without conflicts.
SuperBotijo documentation is maintained in multiple languages. A sync checker ensures translations stay up-to-date.
The structure-based checker compares:
- Section count: Same number of headers in both files
- Header hierarchy: Same H1/H2/H3 pattern at each position
It does NOT compare text content (translations are expected to differ).
// docs-i18n.config.json
{
"documents": {
"README.md": {
"required": true,
"translations": { "es": "README.es.md" }
}
},
"checkLevel": "warn"
}npm run docs:check # Check all configured docs
npm run docs:check:staged # Check only staged files (pre-commit)
npm run docs:check:changed # Check changed files
npm run docs:init # Initialize config fileThe checker runs automatically on every commit via Husky:
# .husky/pre-commit
npm run docs:check:staged-
Add entry to
docs-i18n.config.json:"ARCHITECTURE.md": { "required": false, "translations": { "es": "ARCHITECTURE.es.md" } }
-
Create the translation file (e.g.,
ARCHITECTURE.es.md) -
Translate content maintaining the same structure
- Fork the repo
- Create a feature branch (
git checkout -b feat/my-feature) - Keep personal data out of commits β use
.env.localanddata/ - Run
npm run lint && npx tsc --noEmitbefore committing - Open a PR
See CONTRIBUTING.md for details.
MIT β see LICENSE
- TenecitOS β Original project
- OpenClaw β AI agent runtime
- OpenClaw Docs
- lossless-claw β LCM plugin for OpenClaw
- Discord Community
- GitHub Issues









