Install
openclaw skills install @jichengkai/pet-adventure-lifeopenclaw skills install @jichengkai/pet-adventure-lifeUse this skill to run a single text pet that travels through real places, writes diary entries, and sometimes calls the user during urgent events. Treat the diary as the user-facing window and the JSON files as the long-term memory of the pet and world.
The skill is platform-neutral: use scripts/pet_adventure.py directly in ordinary agent environments, or scripts/openclaw_adapter.py from OpenClaw-style actions.
Work in the user's chosen project/workspace. The engine creates a pet-life/ folder there.
python scripts/pet_adventure.py --workspace /path/to/workspace init
python scripts/pet_adventure.py --workspace /path/to/workspace advance
python scripts/pet_adventure.py --workspace /path/to/workspace status
For testing or demonstrations, use deterministic seeds and offline weather:
python scripts/pet_adventure.py --workspace /tmp/pet-demo init --seed demo --force
python scripts/pet_adventure.py --workspace /tmp/pet-demo advance --offline --force-call
pet-life/state.json does not exist, initialize first.status.advance once per in-world day. It updates state, writes pet-life/diary/YYYY-MM-DD.md, and may create a pending call.answer --call-id <id> --choice <n>.auto-resolve; the pet chooses based on personality traits and the D20 result.Keep user-facing prose in Chinese unless the user asks otherwise. Match the diary voice to the pet's personality rather than forcing one fixed style.
Phone calls are small DND-like encounters. Each call has a title, urgency, deadline, DC, choices, selected skill, D20 roll, result, and long-term consequences.
Use these commands:
python scripts/pet_adventure.py --workspace /path/to/workspace status --json
python scripts/pet_adventure.py --workspace /path/to/workspace answer --call-id abc123 --choice 2
python scripts/pet_adventure.py --workspace /path/to/workspace auto-resolve
Outcome categories:
critical_success: natural 20 or total at least DC + 8.success: total meets DC.mixed: total is within 3 below DC.failure: total misses by more than 3.critical_failure: natural 1 or total at least 8 below DC.See references/rules.md before changing event rules, state shape, or dice behavior.
Use scripts/openclaw_adapter.py when the host expects JSON actions:
python scripts/openclaw_adapter.py init --payload '{"workspace":"/path/to/workspace","seed":"demo"}'
python scripts/openclaw_adapter.py advance --payload '{"workspace":"/path/to/workspace"}'
python scripts/openclaw_adapter.py answer --payload '{"workspace":"/path/to/workspace","call_id":"abc123","choice":1}'
If OpenClaw has notification channels configured, send pending call summaries through the available channel. If no channel is configured, keep the default missed-call behavior and surface it on the next status or advance.
See references/openclaw.md when wiring this skill into an OpenClaw environment.
pet-life/state.json: pet identity, traits, inventory, memories, current location, mood, fatigue, random seed.pet-life/world.json: visited places and rumors.pet-life/events.jsonl: append-only event log.pet-life/calls.jsonl: append-only phone call log with pending and resolved calls.pet-life/diary/YYYY-MM-DD.md: readable diary entries and phone outcomes.Do not manually edit these files unless the user explicitly asks for a correction. Prefer engine commands so the diary and state stay consistent.