PetsPixel for VS CodeEnjoy animated pixel pets and mini games in VS Code's integrated Terminal panel. Dock it at the bottom with right alignment by default; side docking is also available.
Install and open
You can also run PetsPixel: Play Block Game, Play Two-Player Game, Play Space Game, or Show Tiny Pets directly from the Command Palette. VS Code 1.85 or newer is required. The extension identifier is Keyboard shortcuts
Both opening shortcuts automatically create or reveal the game terminal, dock it at the bottom with right alignment by default, focus it, and adjust its size. No shell command or manual terminal creation is needed. The game shortcut remembers your last game even if you switched to pets. A manually paused game stays paused; press p to resume. Customize these shortcuts in Keyboard Shortcuts by searching for PetsPixel: Open / Resume Game or PetsPixel: Show Tiny Pets. Panel position and sizeRun PetsPixel: Move Game Panel and choose Bottom Right, Bottom, Left, or Right. Bottom Right is the new default. If you previously saved another position, choose Bottom Right once to replace that preference. Bottom Right uses VS Code's bottom panel with right alignment. It still spans the editor area and extends toward the right edge; it is not a separate floating corner terminal. Docking affects the entire panel, including other terminals. See VS Code's panel layout controls. Pets are colored pixel art in four terminal rows by default. Choose Rex, dog, cow, duck, or readable 67 with n. The dog and cow use blocky pixel art with original details: a teal dog collar and a distinct cow coat pattern with a pink muzzle. Their menu names are simply dog and cow. s always selects the four-row small layout with 1× fine pixels and
collapses the menu. Pressing it again keeps that size. S shows the original
five-row artwork with the same fine pixels. Compact poses retain the original
palette and the pets' defining details, with no blur or automatic resampling.
Both versions remain available, and the choice is saved for this workspace.
Older saved appearances adopt the small default. The optional
The menu is collapsed on the right, with no baseline, title or separate menu row. Press Tab to expand or collapse it on the right. In a wide terminal, the expanded menu shows the pet/event and controls beside the artwork:
Press 1–4 to switch directly between modes without losing game progress. a breathes fire, n changes the pet, s selects small, and e summons a random space event. Labels shorten in narrow panels; ? shows full controls. The menu names the active event. The sky is a detailed sunset with a violet-to-rose gradient, peach-lit cloud ribbons, a glowing low sun, layered mountain silhouettes, and rippling water reflections. Old night settings automatically adopt this scene. Space events appear occasionally over the sunset: black holes with bright accretion disks, expanding supernova explosions, comets, flowing auroras, and ringed Saturn. Each lasts about seven seconds of active animation, with quiet intervals between automatic events. Press e to summon one immediately. The event sequence is randomized per workspace and preserved on reopening. Pets walk across the available terminal width, turn to face their direction, and animate their feet. The readable 67 keeps its numbers upright. m freezes movement, fire and space events while hidden; reopening resumes them.
Opening pets adjusts the bottom panel toward 4 rows, subject to VS Code's minimum size and resize increments. Opening a game expands it toward 28 rows. Left/right panels use a width target of 28 columns for pets and 72 columns for games. Switching modes through the menu also adjusts the size while preserving games. Expansion stops at the available window space. Optional VS Code settings:
The columns/rows settings control the game size; pets use the compact targets
above. Set Graphics use colored Unicode block characters in a native pseudoterminal. There are no webviews, browser pages, editor tabs, or canvas game surfaces. Use a terminal font with block-character support; the normal monospace default works. The block games automatically switch between compact half-block pixels and larger blocks. Competitive boards sit side by side in a wide panel and stack vertically in a narrow side panel. Resizing preserves the board. Below the minimum size, the game and audio suspend until the panel is enlarged.
ControlsClick inside the PetsPixel terminal before playing. Press ? for control help.
Two players share one keyboard, using lowercase letters for Player 1. Both get identical pieces and speed. Clearing 2 / 3 / 4 rows sends 1 / 2 / 4 garbage rows to the opponent. Incoming rows apply on the next piece lock and can be canceled by your line clears. The first top-out loses. + / - adjusts both speeds. m hides the panel and freezes the game. Run the same game command or Open / Resume Arcade to continue the same board. A manually paused game stays paused until you press p. The menu also preserves each game's board. Game state is saved in local workspace storage, including when the terminal is closed; reopen it with a PetsPixel command. q explicitly discards only the current game, and r restarts it. Changing the active terminal, changing the active editor, or switching away from the VS Code window suspends play. Reopening the arcade or pressing a game key restores focus. Use m when hiding the panel: VS Code's public terminal API does not report every panel-visibility or focus change. Optional musicPets and games include default music. Press M to toggle it. You can change the pet music in VS Code's Settings JSON:
Use the soundtrack settings in VS Code to change the music for each game.
Audio requires The Neovim audio environment is reused if present; otherwise Minimizing pauses the soundtrack and resumes it when reopened on Linux/macOS. Windows restarts playback when resuming. Closing the terminal stops audio. Audio runs only in trusted workspaces, on the extension host machine (the remote machine when using remote VS Code). Missing audio dependencies leave games playable. Development
Open this
The browser is only a test harness and is excluded from the extension package. The preview above shows that terminal renderer. Game state is stored locally; there is no telemetry. MIT covers the code; external music is not included in it. |



