"Arise." โ A voice-controlled, Solo-Leveling-inspired command bridge for OpenClaw multi-agent systems.
HunterOS turns your OpenClaw agent fleet into a Solo-Leveling System interface:
- ๐ฅ Each OpenClaw agent is a Hunter with an E โ S rank, level, HP/MP, class, and signature skill โ derived from live session activity, model power, and elevated privileges.
- ๐ Every cron is a Quest on the board with schedule, payload, last-run telemetry, and one-click dispatch.
- ๐ฎ The Monarch Sigil at the center is a real-time 3D voice orb (r3f + GLSL fresnel shader + 320-particle cloud) that reacts to your voice, listens when you hold Space, and speaks back through ElevenLabs.
- ๐ Destructive intents (
kill,cron.rm) require confirmation through a holographic Approval Modal โ the System stops your Shadow Soldiers from doing anything stupid. - โ๏ธ When a Hunter ranks up, the log flashes monarch-violet. When you summon a new agent, an "Arise" impulse radiates from the sigil across every Hunter card.
Voice-first orchestration dashboard. Built in a single morning hackathon sprint.
๐ฅ Full MP4 (1920ร1080, 28s, 5.3 MB):
snaps/demo.mp4
Sample TTS clip (ElevenLabs "Harry โ Fierce Warrior" as the System voice):
โถ snaps/arise.mp3 โ "Arise. HunterOS online. Nine hunters registered."
Rendered with Remotion โ scripted in demo-video/src/Composition.tsx. Full source in demo-video/.
flowchart LR
subgraph Client["๐ฅ Frontend โ localhost:5173"]
UI["React + TS + Tailwind<br/>framer-motion"]
R3F["r3f / Three.js<br/>Monarch Sigil + particles"]
MIC["PressToTalk<br/>(hold Space / button)"]
WS_C["WebSocket client<br/>auto-reconnect"]
UI --- R3F
UI --- MIC
UI --- WS_C
end
subgraph Backend["โ Backend โ :7777 FastAPI"]
REST["REST<br/>/agents ยท /crons ยท /sessions"]
WSS["WS /stream<br/>snapshot + firehose"]
VOICE["/voice/command<br/>multipart audio"]
INT["Intent Router<br/>regex + LLM fallback"]
BRIDGE["openclaw_bridge<br/>(CLI + event tails)"]
TAIL["watchdog JSONL<br/>events.jsonl tails"]
REST --- BRIDGE
WSS --- BRIDGE
VOICE --> INT
INT --> BRIDGE
TAIL --> WSS
end
subgraph External["โ Providers"]
WHISPER["OpenAI Whisper<br/>STT"]
EL["ElevenLabs<br/>TTS (via sag)"]
OC["openclaw CLI<br/>agents ยท crons ยท sessions"]
end
WS_C <-->|JSON events| WSS
UI -->|REST| REST
MIC -->|audio blob| VOICE
VOICE -->|transcribe| WHISPER
INT -->|speak| EL
BRIDGE -->|shell out| OC
OC -.->|writes| TAIL
classDef client fill:#0a1a3f,stroke:#4a9eff,color:#e8f0ff
classDef backend fill:#0a0e27,stroke:#9b4aff,color:#e8f0ff
classDef ext fill:#1a0e27,stroke:#ff8a4a,color:#e8f0ff
class UI,R3F,MIC,WS_C client
class REST,WSS,VOICE,INT,BRIDGE,TAIL backend
class WHISPER,EL,OC ext
rank = clamp(
base(model_power) // 1-5 based on model tier
+ ceil(sessions_7d / 10) // +1 every 10 recent sessions
+ (elevated ? 1 : 0), // +1 if privileged
[E, D, C, B, A, S]
)
Opus 4.7 + active daily use โ S-rank. Sonnet + quiet โ C-rank.
| Feature | What it does | |
|---|---|---|
| ๐๏ธ | Press-to-talk voice | Hold Space (or the header button) โ RMS level meter โ Whisper transcribes โ intent routes โ result TTS'd back via ElevenLabs |
| ๐๏ธ | Live hunter cards | Rank badge, class, level, HP/MP bars, skill tree, elevated glyph; updates over WS with no refresh |
| ๐ | Quest Board | All crons with schedule, enabled flag, next-run, last-result, one-click dispatch |
| ๐ | Monarch Sigil (3D) | r3f procedural orb with fresnel shader, noise-driven vertex displacement, additive particle cloud, "Arise" impulse column |
| โK | Command Palette | Fuzzy keyboard-first console for everything the voice understands |
| ๐ก๏ธ | Approval Modal | Destructive intents pause for confirmation โ no accidental kills |
| ๐ก | System Log | Typewriter-rendered live event stream (tail of all workspace events.jsonl files) |
| ๐ | Rank-up FX | Detects rank promotions across ticks and pulses the card + log in monarch violet |
| ๐ | Status Window | Tap a Hunter โ full dossier (model, workspace, routing, skills, last-touched) |
๐ mic
โ WebM/opus blob
โผ
POST /voice/command
โ form-data: audio, autoSpeak=1
โผ
openai/whisper-1 (STT)
โ transcript
โผ
intent router โ regex grammar, LLM fallback
โ { intent, slots, destructive? }
โผ
openclaw_bridge (spawn | kill | status | crons | dispatch | snapshot | theme โฆ)
โ result JSON
โผ
ElevenLabs via `sag` CLI (TTS โ voice: Harry "Fierce Warrior")
โ mp3 path
โผ
frontend <audio> โ VoiceOrb enters "speaking" state
status report on <agent> โ status
who's online โ presence
show quests โ crons
run quest <id|name> โ cron.run
arise, spawn a <agent> โ spawn (triggers Arise FX)
dispatch <agent> to <task> โ dispatch
kill <session> โ kill ๐ needs confirmation
remove quest <id> โ cron.rm ๐ needs confirmation
snapshot <node> โ snapshot
theme monarch / shadow โ theme
Backend (backend/)
- Python 3.14 ยท FastAPI ยท Uvicorn
- watchdog (JSONL tails) ยท httpx ยท pydantic
sagCLI (ElevenLabs) ยท OpenAI Whisper API- Wraps the
openclawCLI with a 30s TTL cache
Frontend (frontend/)
- Vite + React 19 + TypeScript
- Tailwind 3 + custom
theme.cssdesign system - Framer Motion ยท zustand ยท clsx
@react-three/fiber+ drei + Three.js +simplex-noise- Custom GLSL fresnel + noise displacement shader
Design
- Solo Leveling dark-void aesthetic:
#0a0e27void ยท#4a9effhologram blue ยท#9b4affmonarch violet ยท quest gold ยท danger crimson - Anthropic-warm accent: Fraunces serif for display, mono for telemetry
- 12 keyframe animations (flicker, scanlines, caret, rank-pulse, arise-radial, โฆ)
See docs/DESIGN_SYSTEM.md (21 kB) and docs/3D_HERO.md (10 kB) for the full spec.
- OpenClaw installed & configured โ the backend shells out to the
openclawCLI for agents/crons/sessions - Python 3.11+, Node 18+, npm
- OpenAI API key for Whisper (
OPENAI_API_KEY) - ElevenLabs API key for TTS (
ELEVENLABS_API_KEY) + thesagCLI - (Optional) a modern browser with WebAudio + getUserMedia for voice
cd backend
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
export OPENAI_API_KEY=sk-...
export ELEVENLABS_API_KEY=...
export HUNTEROS_TTS_VOICE="Harry" # optional; any ElevenLabs voice name
python main.py
# โ http://127.0.0.1:7777cd frontend
npm install
npm run dev
# โ http://localhost:5173Open http://localhost:5173, hold Space, and say:
"Status report on main."
hunteros/
โโ backend/
โ โโ main.py # FastAPI app, WS /stream, REST, voice endpoint
โ โโ openclaw_bridge.py # shells out to `openclaw`, caches agents, tails JSONL
โ โโ intents.py # regex-first intent router (+ LLM fallback hook)
โ โโ voice.py # Whisper STT + `sag` TTS glue
โ โโ requirements.txt
โโ frontend/
โ โโ src/
โ โ โโ App.tsx # layout + REST + WS + voice + approval gate
โ โ โโ store.ts # zustand store; rank-up detection; arise impulse
โ โ โโ theme.css # design tokens + keyframes + utilities
โ โ โโ lib/{api,ws,rank,format}.ts
โ โ โโ components/
โ โ โโ HunterCard.tsx + HunterGrid
โ โ โโ RankBadge.tsx ยท StatBar.tsx ยท SkillTree.tsx ยท StatusWindow.tsx
โ โ โโ QuestBoard.tsx
โ โ โโ SystemLog.tsx ยท SystemNotification.tsx
โ โ โโ VoiceOrb.tsx (r3f + fresnel shader + particle cloud + AriseColumn)
โ โ โโ PressToTalk.tsx (hold-Space + RMS meter)
โ โ โโ CommandPalette.tsx (โK)
โ โ โโ ApprovalModal.tsx
โ โโ tailwind.config.js
โโ docs/
โ โโ DESIGN_SYSTEM.md # tokens, type scale, motion, a11y, 12-component inventory
โ โโ 3D_HERO.md # Monarch Sigil procedural r3f concept + GLSL + fallback
โ โโ HANDOFF.md
โโ snaps/ # screenshots + sample TTS
โโ SPEC.md # original vision doc
- Web-first MVP โ voice + dashboard + 3D sigil
- Destructive intent approval gate
- Rank-up detection & "Arise" impulse FX
- Code-split r3f/drei (main bundle still >500 kB)
- Offline STT fallback (whisper.cpp) for <300 ms turnaround
- Electron wrapper + system tray + global hotkey
- Theme variants: Shadow Monarch / Frost Queen / Blaze Sage
- Per-Hunter XP curves from actual token usage
- Sound design pass โ ElevenLabs Music for quest-complete stings
- Dungeon drill-down: live message view for any session from the Dungeon list
- Gate-scan mini-game: weekly boss = biggest-cost agent ๐
- Main JS bundle is ~1.25 MB โ r3f/drei dominate; code-split candidate
- First
/agentsrequest takes ~15 s (backs theopenclaw agents listCLI) โ cached 30 s afterwards - If you run OpenClaw with the plugin allowlist excluding
events, JSONL tailing still works (falls back to the filesystem), but some live telemetry won't populate - The dashboard assumes a single local gateway at
127.0.0.1โ multi-gateway coming later
- OpenClaw โ the multi-agent runtime this sits on top of
- Solo Leveling by Chugong โ UI spiritual ancestor (vibe only, no copyrighted assets)
- Anthropic Claude โ Opus 4.7 drove the full design system & 3D hero pass
- ElevenLabs โ the voice of the System (Harry "Fierce Warrior")
- OpenAI Whisper โ STT
MIT โ see LICENSE.
Built with ๐จ in one morning โ openclaw + react-three-fiber + stubborn optimism.

