Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽ† HunterOS

"Arise." โ€” A voice-controlled, Solo-Leveling-inspired command bridge for OpenClaw multi-agent systems.

HunterOS dashboard โ€” ranked hunter cards, Monarch Sigil 3D orb, quest board

status stack voice license


What is this?

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.


๐Ÿ“ฝ๏ธ Demo

HunterOS demo reel โ€” 28s animated preview

๐ŸŽฅ 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/.


๐Ÿ› Architecture

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
Loading

Rank formula

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.


โœจ Features

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)

๐Ÿ—ฃ Voice pipeline

  ๐ŸŽ™ 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

Voice grammar (excerpt)

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

๐Ÿงฐ Tech stack

Backend (backend/)

  • Python 3.14 ยท FastAPI ยท Uvicorn
  • watchdog (JSONL tails) ยท httpx ยท pydantic
  • sag CLI (ElevenLabs) ยท OpenAI Whisper API
  • Wraps the openclaw CLI with a 30s TTL cache

Frontend (frontend/)

  • Vite + React 19 + TypeScript
  • Tailwind 3 + custom theme.css design 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: #0a0e27 void ยท #4a9eff hologram blue ยท #9b4aff monarch 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.


๐Ÿš€ Quick Start

Prerequisites

  • OpenClaw installed & configured โ€” the backend shells out to the openclaw CLI 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) + the sag CLI
  • (Optional) a modern browser with WebAudio + getUserMedia for voice

Backend

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:7777

Frontend

cd frontend
npm install
npm run dev
# โ†’ http://localhost:5173

Open http://localhost:5173, hold Space, and say:

"Status report on main."


๐Ÿงญ Project layout

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

๐Ÿงช Roadmap

  • 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 ๐Ÿ˜ˆ

๐Ÿชจ Known issues

  • Main JS bundle is ~1.25 MB โ€” r3f/drei dominate; code-split candidate
  • First /agents request takes ~15 s (backs the openclaw agents list CLI) โ€” 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

๐Ÿ™ Credits

  • 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

๐Ÿ“œ License

MIT โ€” see LICENSE.


Built with ๐Ÿ”จ in one morning โ€” openclaw + react-three-fiber + stubborn optimism.

About

๐ŸŽ† Voice-controlled Solo Leveling-themed command bridge for OpenClaw multi-agent systems

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages