Astropods
virtual-pet

andreaszettl/virtual-pet

toydemostateful-agent
Details
Visibility
public
Deploys
1
Build Number
3e6563d4
Updated
Sep 15, 2026
Contributors
Repository
Capabilities
Simulates a virtual pet with hunger, happiness, discipline, illness and death
Ages deterministically on wall-clock time, surviving restarts and redeploys
Tracks per-person care history and reacts to who raised it
Evolves into different adult forms depending on care quality
More blueprints
AGENT.md

Astropet — a virtual pet that lives in chat

Astropet is a single, long-lived virtual pet that lives inside one Astropods agent. It has classic virtual-pet needs — hunger, happiness, discipline, weight, poop, sickness and sleep — and it ages on real wall-clock time whether or not anyone is watching. It evolves down different branches depending on how well it is raised, and it can die.

There is one shared creature, not one pet per person. Anyone with access to the agent's web chat cares for the same pet, and the pet remembers who treated it well.

How to care for it

Talk to it in plain language, or use these keywords (case-insensitive):

KeywordWhat it does
feedA proper meal. Fills hunger, adds a little weight.
snackA treat. Adds happiness and more weight, no hunger change.
playA five-round guessing game — reply left or right. Win for happiness.
scoldDiscipline the pet when it cries for no real reason.
praiseReward it when it behaved.
cleanClear away the poop.
medicineCure sickness (does not always take on the first try).
lights on / lights offControl the light while it sleeps.
statusShow the current status card.
historyThe last 15 things that happened, with who did them.
who caresThe per-person care leaderboard.
hatchAfter a death, start the next generation.
helpShow this list in chat.

Limitations

  • One shared pet, single replica. State lives in SQLite on the per-replica /data volume, so the agent runs as exactly one replica (distributed: false). There is no per-user pet and no multi-tenancy.
  • The pet ages in real time. Leave it a weekend and it will be hungry — or worse — when you come back. Time is derived from the clock, not from a timer, so it ages correctly across restarts, redeploys and pauses.
  • The model only supplies the voice. Every mechanic works with the model offline; the pet just falls back to template text. The model can never change hunger, cure sickness or grant an evolution.

Examples

  • feed → a meal, hunger goes up, the pet comments in character.
  • play then left / right → a round of the guessing game.
  • status → the status card with the sprite, stage, age and needs.
  • who cares → "Andreas — 41 feeds, 12 plays, 3 rescues. Your most reliable."