pixtuoid

agent
Guvenlik Denetimi
Gecti
Health Gecti
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Community trust — 80 GitHub stars
Code Gecti
  • Code scan — Scanned 12 files during light audit, no dangerous patterns found
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

Terminal pixel-art office for AI coding agents — watch your Claude Code sessions type, walk, and nap in a coworking lounge. Half-block rendering, A* pathfinding, per-tool monitor glow. Pure Rust, runs over SSH.

README.md

pixtuoid sprites

pixtuoid

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

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

pixtuoid animated demo

Quick Start · Features · Supported Tools · Themes & Configuration · How It Works


Why?

Running multiple AI agents in the terminal is like managing a sweatshop you can't see. They type, they wait, they finish — and you have no idea who's doing what unless you scroll through logs like a bureaucrat.

pixtuoid puts them all in a tiny pixel-art office you can watch from above. A little bit Black Mirror, a little bit The Sims — and somehow the most intuitive multi-agent dashboard you'll ever use.

Quick Start

brew install IvanWng97/pixtuoid/pixtuoid
pixtuoid install-hooks
pixtuoid

In another terminal, start a Claude Code session. A character walks in from the elevator within a second.

Keyboard shortcuts: q quit · p pause · t themes · ↑↓/jk/PgUp/PgDn floors · click to pin tooltip

More install methods

Pre-built binaries

Download from GitHub Releases:

Platform Tarball
macOS (Apple Silicon) pixtuoid-v*-aarch64-apple-darwin.tar.gz
macOS (Intel) pixtuoid-v*-x86_64-apple-darwin.tar.gz
Linux (x86_64, static) pixtuoid-v*-x86_64-unknown-linux-musl.tar.gz
Linux (ARM64) pixtuoid-v*-aarch64-unknown-linux-gnu.tar.gz

Cargo

cargo install pixtuoid

From source

git clone https://github.com/IvanWng97/pixtuoid && cd pixtuoid
cargo build --release

Features

Feature Description
🏢 Multi-agent office Each CC session gets a desk; overflow agents auto-fill new floors
🛗 Multi-floor office PageUp/PageDown/↑↓/jk to navigate floors with slide transition
🎭 Animated characters Typing, thinking (···), 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
🌧️ Weather effects Rain, storm, snow, fog, overcast, windy — cycles every 10 min + sunset golden hour
📊 Tooltip stats Hover any agent to see session duration, tool call count, and active time %
🏷️ Furniture tooltips Hover any item — desks, sofas, plants, vending machine, printer — to see its name
🐱 Office cat Roams desks, pantry, sofas; sleeps near idle agents. Click to pet — pixel-art hearts float up
Coffee run Idle agents visit the pantry, carry a cup back to their desk. Cup stays while you work; taken on exit
💬 Pantry chitchat 2+ idle agents at the same waypoint trigger speech bubbles with dev-humor snippets
🪴 Desk personalization Plant (30min), photo frame (1hr) appear over time
🛡️ Hook-safe The shim always exits 0 — a stuck visualizer can never block Claude Code

Supported Tools

Tool Status Notes
Claude Code ✅ Supported Hook shim + JSONL watcher
Antigravity CLI ✅ Supported JSONL watcher
Codex CLI 🔜 Planned Same hook pattern as CC
Copilot CLI 🔜 Planned Identical event names
OpenCode 🔜 Planned Any LLM (DeepSeek / GPT / Claude / Gemini)
Cursor CLI 🔜 Planned NDJSON stream

Adding a new tool? Implement the Source trait — one file, one channel, done.

Themes & Configuration

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

6 themes: Normal, Cyberpunk, Dracula, Tokyo Night, Catppuccin, Gruvbox

Settings are stored in ~/.config/pixtuoid/config.toml (respects $XDG_CONFIG_HOME):

theme = "cyberpunk"
max-desks = 8
pack-dir = "~/.config/pixtuoid/packs/robot"
Key Default Description
theme "normal" Color theme — normal, cyberpunk, dracula, tokyo-night, catppuccin, gruvbox
max-desks auto Cap desks per floor. If unset, auto-computed from terminal size. Excess agents overflow to additional floors.
pack-dir Custom sprite pack directory. Supports ~ expansion.

CLI flags override config: pixtuoid run --theme dracula

Custom Sprite Packs

Create your own character sprites:

pixtuoid init-pack ./my-pack     # extract skeleton template
# edit the .sprite files in ./my-pack
pixtuoid validate-pack ./my-pack # check for missing animations
pixtuoid run --pack-dir ./my-pack

A robot pack ships as an example at sprites/robot/. See the sprite format docs for palette keys and animation requirements.

How It Works

Architecture
CC tool call ──► CC fires hook ──► pixtuoid-hook (shim)
                                         │ JSON over Unix socket
                                         ▼
                                  /tmp/pixtuoid-{uid}.sock
                                         │
                       HookSocketListener ─────► ┐
                                                 │ (Transport, AgentEvent)
                       JsonlWatcher       ─────► ┤ shared mpsc channel
                                                 ▼
                       Reducer ──► SceneState (watch channel)
                                         │
                       TuiRenderer ──► draw_scene @ ~30fps
                       (pose → pixel_painter → RgbBuffer → half-block → ratatui)

Three Rust crates:

Crate Role
pixtuoid-core Headless library — no terminal deps. Source trait, reducer, pose, layout, sprites.
pixtuoid TUI binary — ratatui + crossterm + tokio. Half-block rendering + theme system.
pixtuoid-hook Tiny shim CC invokes from hooks. 200ms timeout, always exits 0.

Migrating from ascii-agents (v0.3.0 → v0.4.0)

v0.4.0 renames the project from ascii-agents to pixtuoid — pix(el) + tu(i) + (agent-)oid.

What changed

Before (v0.3.x) After (v0.4.0)
ascii-agents binary pixtuoid
ascii-agents-hook shim pixtuoid-hook
~/.config/ascii-agents/ ~/.config/pixtuoid/
~/.cache/ascii-agents/ ~/.cache/pixtuoid/
/tmp/ascii-agents-{uid}.sock /tmp/pixtuoid-{uid}.sock
_ascii_agents hook key in settings.json _pixtuoid

Upgrade steps

  1. Install the new version:

    brew untap IvanWng97/ascii-agents 2>/dev/null
    brew install IvanWng97/pixtuoid/pixtuoid
    # or: cargo install pixtuoid
    
  2. Re-register hooks (replaces old ascii-agents-hook entries automatically):

    pixtuoid install-hooks
    
  3. Migrate config (optional — only if you customized config.toml):

    mkdir -p ~/.config/pixtuoid
    mv ~/.config/ascii-agents/config.toml ~/.config/pixtuoid/config.toml
    

GitHub links: The old IvanWng97/ascii-agents URL automatically redirects to IvanWng97/pixtuoid. Existing bookmarks and stars carry over.

Contributing

See CLAUDE.md for architecture and conventions. PRs welcome — especially new themes and Source adapters for other agent CLIs (Codex, Cursor, Gemini).

Adding a new agent CLI

Implement the Source trait and plug in via SourceManager::with_source():

#[async_trait]
pub trait Source: Send + 'static {
    fn name(&self) -> &str;
    async fn run(self: Box<Self>, tx: TaggedSender) -> anyhow::Result<()>;
}

Acknowledgments

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

Support

If you enjoy pixtuoid, consider buying me a coffee :)

License

MIT

Yorumlar (0)

Sonuc bulunamadi