Skip to content

IvanWng97/pixtuoid

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

655 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

pixtuoid sprites

pixtuoid

Your AI coding agents, visualized as pixel-art coworkers in a terminal office.

pixel + tui + (agent-)oid

Stars Version License CI Coverage Built with Claude Code Buy Me a Coffee

pixtuoid animated demo

πŸ–₯︎ Live demo β†— Β Β·Β  Architecture Β Β·Β  Configuration Β Β·Β  Contributing


Why?

Running several coding agents means alt-tabbing between terminals to find out who's stuck, who's waiting on a permission prompt, and who finished ten minutes ago. pixtuoid puts them all in one tiny pixel-art office you can watch from above β€” every session is a character at a desk: typing while it works, raising a ? when it needs you, dozing off when it's done.

A little bit Black Mirror, a little bit The Sims β€” and the most glanceable multi-agent dashboard you'll ever use.

Quick Start

Pick one β€” Homebrew on macOS, or npm on any OS:

Homebrew (macOS):

brew install IvanWng97/pixtuoid/pixtuoid

npm (any OS):

npm install -g pixtuoid

Then launch:

pixtuoid

Press s to open the Sources panel and connect your agent CLI (Claude Code, Codex, Antigravity, Reasonix, …) β€” pixtuoid wires up the integration for you, no separate install step. In another terminal, start that coding agent. A character walks in from the elevator within a second; disconnect in the same panel and it walks back out. The panel also flags a source whose hooks are connected but broken (run pixtuoid doctor for the full health report).

Keyboard shortcuts: q quit Β· p pause Β· s sources (connect / health) Β· t themes Β· Tab agent dashboard Β· ? help Β· ↑↓/jk/PgUp/PgDn floors Β· click to pin tooltip

More ways to install β€” Cargo, prebuilt binaries, and Debian .debs β€” are on the install guide β†—. Upgrading from ascii-agents? See docs/MIGRATION.md.

Features

Feature Description
🏒 Multi-agent office Each agent session gets a desk; overflow agents auto-fill new floors
πŸ›— Multi-floor office PageUp/PageDown/↑↓/jk to navigate floors with slide transition
πŸͺŸ Floating desktop window pixtuoid floating opens a frameless, always-on-top desktop window of the office β€” not just a terminal TUI
🎭 Animated characters Typing, waiting (?), sleeping (z's), walking with A*-routed pathfinding
πŸ’‘ Per-tool monitor glow Edit = blue, Bash = orange, Read = cyan β€” scannable at a glance
🎨 Per-agent identity Deterministic shirt/hair/skin palette from session hash, 16 curated outfits
🦞 OpenClaw gateway mascot A live OpenClaw gateway shows up as a wandering lobster whose motion tracks gateway health
🌧️ Weather effects Rain, storm, snow, fog, overcast, windy β€” cycles every 10 min + sunset golden hour
πŸ”Ž Hover tooltips Hover an agent for session duration, tool-call count and active-time %; hover any furniture β€” desks, sofas, plants, vending machine, printer β€” for its name
🐾 Office pets A cat or dog (one per floor) roams desks, pantry, sofas; sleeps near idle agents. Click to pet β€” pixel-art hearts float up
πŸ›‘οΈ Hook-safe The shim always exits 0 β€” a stuck visualizer can never block your agent

β–Ά See every feature live β€” floors, themes, weather, pets, the office tour β†’

Supported Tools

Tool Runs on
Claude Code macOS Β· Linux Β· Windows*
Codex CLI macOS Β· Linux Β· Windows*

Also supported: Antigravity CLI, DeepSeek-Reasonix, CodeWhale, Copilot CLI, opencode, Cursor CLI, OpenClaw.

β†’ Full tool Γ— OS support matrix on the site

* experimental β€” limited testing, unsigned binaries.

Adding a new tool? Implement the Source trait β€” or, for a hook-only CLI, just a hook decoder + an install Target β€” then add a row to site/src/sources.json (its supported set is pinned to the code by a test). One file, one channel, done.

Themes & Configuration

Press t to cycle the built-in themes with live preview. Your choice persists across sessions:

built-in themes side by side

Settings live in ~/.config/pixtuoid/config.toml β€” theme, desk cap, custom pet names, and sprite packs. CLI flags override the file (pixtuoid run --theme dracula). See docs/CONFIGURATION.md for the full key reference (defaults, system-managed keys), the custom sprite-pack workflow, and logging / troubleshooting (the TUI writes warnings to ~/.cache/pixtuoid/log) β€” or browse it live at /config.

How It Works

Agent CLIs emit events two ways β€” a hook shim (a 200ms fire-and-forget write to a Unix socket, or a named pipe on Windows, that can never block your agent) and JSONL transcript watching. Both feed one channel; a reducer folds events into office state; the renderer draws it as half-block pixel art. Four Rust crates, zero terminal deps in the core.

Full architecture with diagrams β†’ Β· single source: docs/ARCHITECTURE.md

Privacy & Security

pixtuoid is local-only and telemetry-free β€” it makes no network connections, ships no analytics or "phone home", and reads your agent transcripts read-only to animate the office. Your session data never leaves your machine. The dependency set is audited for advisories daily (cargo-deny). For the trust boundaries (the hook shim, the owner-only socket, and how hook installation edits another tool's config), see SECURITY.md.

Contributing

PRs welcome β€” especially new themes, sprite/decoration polish, and Source adapters for agent CLIs we don't support yet (the nine already wired up are in Supported Tools). See CONTRIBUTING.md for the build/test workflow, conventions, the review process, and how to add a new agent CLI. Architecture and the load-bearing invariants live in CLAUDE.md.

Acknowledgments

Inspired by pixel-agents (VS Code), clawd-on-desk (desktop pet), and Claude Code's Buddy.

License

MIT

Star History

star history chart for IvanWng97/pixtuoid

Enjoying the little office? β˜• Buy me a coffee Β· ⭐ Star the repo