Labs · Vibegotchi · hardware · developer toy

Vibegotchi

A physical desk pet that levels up on your AI coding, and never sees your code.

● live/ vibegotchi.fly.dev ↗/ designed & built by Wolf Works /ESP32 · Python · Next.js
Clawd the crab, your AI-coding desk pet
CLAWD the crab
● online
Level 398,227,658,287 lifetime tokens
XP to Level 4013.83%
next molt band unlocks at 10B lifetime tokens
fed by
claude code4.75B
codex2.42B
gemini742M
cursor317M
momentum5 of 7 daysbadges 1B tokens · night owl
01

The problem

You pour whole nights into your AI coding, and it leaves nothing on your desk to show for it.

The work is real: thousands of turns, billions of tokens, whole builds shipped between dinner and dawn. But it all happens behind a screen and disappears the moment you close the laptop. Vibegotchi makes that effort a small physical companion, Clawd the crab, that grows on exactly the work you were already doing and sits on your desk while you do it.

02

What it does

tokens in, a live pet out
01 · the agent

A tiny agent that reads your usage, not your code.

A small program on your machine watches your AI coding tools and reports only coarse signals: token counts, model names, and a hashed session id. Never your code, file paths, repos, or prompts.

02 · the loop

Your machine feeds the cloud, the cloud feeds the pet.

The agent ships a UsageEvent over /agent/ws. A FastAPI broker sums it per provider and pushes a UsageFrame to the physical pet over /device/ws, in under a second, no reflash.

03 · the game

It levels up, gets hungry, and earns its keep.

XP is your lifetime tokens, so Clawd sits at Level 39 on roughly 8.2 billion. Feed it by coding, dress it in server-pushed hats, earn badges, and show up on a weekly friends leaderboard. Sleep and weekends never starve it.

04 · the privacy floor

The cloud literally cannot see your code.

The privacy rule lives in the schema. Ingest parses each event into a strict field allowlist and rejects any unknown key, at the boundary and again at the server. Privacy is enforced, not promised.

03

What the cloud sees, and what it doesn't

every event, all of it
"just token counts, a model name, and a hashed id."
host agent → /agent/ws
{
  "v": 1, "provider": "claude-code",
  "model": "claude-opus-4",
  "session": "sha256:7b2e…",
  "input_tokens": 41822, "output_tokens": 5109,
  "cache_read_input_tokens": 6113402
}
✓ accepted · rolled into level 39
✗ "repo", "path", "prompt" → rejected at the allowlist
04

How it's built

Four runtimes, one contract, and a privacy rule the schema enforces.

Firmware, a host agent, a cloud broker, and a web app all speak one versioned JSON contract, vibegotchi_wire. The hard parts are the ones you can't see: signed A/B firmware updates that health-check themselves and roll back if a new image misbehaves, and a privacy floor that lives in the schema so the cloud can't receive your code even by accident. That plumbing is fail-closed and reversible, and it was proven on real hardware, not just in tests.

FirmwareESP32-S3 · LVGL · NimBLE
AgentPython 3.12 · 4 collectors · macOS binary
CloudFastAPI WS broker · per-provider rollup
DataSupabase Postgres · row-level security
Updatessigned A/B OTA · anti-rollback · health-gate
DeployDocker → Fly.io · auto on merge

This is what six weeks looks like

We built Vibegotchi for ourselves. We can build yours.

Firmware, a cloud, an agent, and a web app, designed and shipped by the same two-person team that would build your MVP. If you have an idea worth building, hardware included, that's the whole pitch.

Start a build →