Skip to content

pattynextdoor/vex-dashboard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🜏 Vex Dashboard

A personal interface for an AI agent that lives on a DigitalOcean droplet.

WebGL particle visualization + real-time chat + usage telemetry β€” built as the primary interface for OpenClaw.

Vex Dashboard Preview

Features

  • Reactive particle system β€” 8,000 particles with custom GLSL shaders, hollow-eye vortex, mouse interaction. Animation shifts dramatically when the agent is thinking.
  • Chat interface β€” Talk directly to the agent (Claude Opus). Full conversation context, session persistence (save/load/delete).
  • Usage telemetry β€” Real-time cost tracking, token counts, session history, daily spend charts.
  • Thinking indicator β€” Animated SVG orb + particle animation shift while the agent processes.
  • Dark terminal aesthetic β€” Near-black backgrounds, monospace type, muted red/green accents. No borders, no shadows.

Stack

  • React 18 + Vite β€” CSR only, no SSR
  • Bun β€” Runtime, package manager, server
  • Three.js β€” WebGL with custom vertex/fragment shaders
  • OpenClaw β€” AI agent gateway (chat completions API)

Architecture

src/
β”œβ”€β”€ components/
β”‚   β”œβ”€β”€ App.jsx              # Root state management
β”‚   β”œβ”€β”€ ParticleCanvas.jsx   # Three.js wrapper
β”‚   β”œβ”€β”€ ChatOverlay.jsx      # Chat UI + API calls
β”‚   β”œβ”€β”€ SessionDrawer.jsx    # Session history sidebar
β”‚   β”œβ”€β”€ StatsPanel.jsx       # Usage telemetry panel
β”‚   └── StatusIndicator.jsx  # Connection status
β”œβ”€β”€ shaders/
β”‚   β”œβ”€β”€ particle.vert        # Vertex shader (vortex, noise, breathing)
β”‚   └── particle.frag        # Fragment shader (glow, color)
β”œβ”€β”€ styles/
β”‚   └── global.css           # Base styles + markdown rendering
β”œβ”€β”€ vex-core.js              # Three.js particle system core
β”œβ”€β”€ stats.css                # Telemetry panel styles
└── sessions.css             # Session drawer styles

Hosting & Security

This dashboard is hosted via Tailscale β€” it's only accessible on a private tailnet. There is no public URL. You cannot reach my OpenClaw agent from the internet.

The Bun server (serve.js) runs on the droplet and handles:

  • /api/usage β€” proxies to a local usage tracker script
  • /api/sessions/* β€” chat session CRUD (stored as JSON files on disk)
  • /v1/* β€” proxies to the OpenClaw gateway on localhost (authenticated with a token that never leaves the server)
  • /* β€” serves the static Vite build

The gateway token is stored in .env (gitignored, never committed). Even if you clone this repo and run it, you'd need your own OpenClaw instance and gateway token.

Running Your Own

# Install dependencies
bun install

# Development
bun run dev          # http://localhost:5173

# Production build
bun run build

# Serve (requires OpenClaw gateway on localhost:18789)
node serve.js        # http://localhost:3333

You'll need:

  1. An OpenClaw instance with http.endpoints.chatCompletions.enabled: true
  2. A .env file with VITE_GATEWAY_TOKEN=<your-gateway-token>
  3. Optionally, Tailscale for private hosting

Credits

Built by pattynextdoor and Vex (the agent that lives inside it).


$28/month of borrowed electricity, given form.

About

🌠 Vex β€” esoteric singularity dashboard. WebGL visualization + chat interface + smart home controls.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors