Meanwhile
August 13, 2026 · View on GitHub
Side quests from your AI.
Meanwhile gives a person one fitting, finite thing to do while a coding agent keeps working: a no-tab micro quest, relevant learning, a small game, a reset, or a useful reality check.
Made with Framecraft. Select the preview for the narrated 1080p video.
Product thesis
When the agent is busy, the human should get one optional invitation—not another dashboard to operate. Meanwhile is a skill plus a static website: the host agent chooses and sends the quest, while the site provides a browsable catalogue, pack pages, guides, and share cards.
It is not a separate agent, account, streak system, completion tracker, callback requirement, or human-in-the-loop work queue.

Launch status
- Website: https://vaddisrinivas.github.io/meanwhile/ (GitHub Pages verified).
- Repository: https://github.com/vaddisrinivas/meanwhile (public).
- Demo video:
assets/meanwhile-demo.mp4, with editable Framecraft source inlaunch/framecraft/.
Install
Requires Node.js 22 or newer.
npm run build
npm run check
node scripts/install.mjs --target all --scope user
Dry run:
node scripts/install.mjs --target all --scope user --dry-run
Host-native installs:
gemini extensions install https://github.com/vaddisrinivas/meanwhile --consent
claude plugin marketplace add vaddisrinivas/meanwhile
claude plugin install meanwhile@meanwhile
The universal Agent Skills copy at ~/.agents/skills/meanwhile supports Codex, Cursor, Gemini CLI, OpenCode, and GitHub Copilot. Claude Code reads ~/.claude/skills/meanwhile. Project-only installation is also available:
node scripts/install.mjs --target all --scope project --project-dir /path/to/project
Behavior and restraint
- The agent keeps doing the main task.
microis only for an opted-in 45–120 second wait;journeyneeds at least five unattended minutes.- The skill offers exactly one quest, at most once per session.
- It declines during active debugging, urgency, sensitive actions, required input, or focused work.
- After an ignored or declined offer, it does not retry that session; repeated declines disable implicit offers until explicit opt-in.
- It sends a direct resource when one exists, or the prompt in chat. Play and recovery need no reply.
- It infers an outcome only from the next chat message and never treats a click, open tab, elapsed time, or screenshot as completion proof.
Website
/— self-contained catalogue with embedded JSON./quests.json— canonical machine-readable catalogue./packs/<pack-id>/— seven curated packs./guides/<topic>/— five search-oriented guides./share/?quest=<id>— optional local share-card maker./go/?id=<quest-id>— static ID-to-destination redirect./schema.json— catalogue schema.
Architecture
quests.json Catalogue source
guides.json Guide source
schema.json Catalogue schema
src/*.template.html Static page templates
scripts/build.mjs Generator
scripts/validate.mjs Dependency-free validator
scripts/install.mjs Cross-agent installer
meanwhile/SKILL.md Canonical behavior contract
.agents/skills/meanwhile/ Generated universal skill copy
skills/meanwhile/ Generated Gemini/Claude plugin skill copy
.claude-plugin/plugin.json Claude plugin manifest
.claude-plugin/marketplace.json Claude marketplace manifest
gemini-extension.json Gemini CLI extension manifest
.github/workflows/pages.yml GitHub Pages deployment
launch/ Launch copy and video handoff
The optional Cloudflare Worker is intentionally not part of this launch repository. GitHub Pages mode remains fully static.
Privacy
GitHub Pages mode has no account, cookies, analytics, callback, fingerprinting, completion tracking, or user/session data collection. The catalogue is static JSON. Do not add advertising, affiliate links, cross-site identifiers, streaks, completion events, or sponsored quest ranking.
Contribute
Read CONTRIBUTING.md, edit the catalogue or templates, then run:
npm run check
node scripts/check-links.mjs
Open a focused pull request or use the new quest issue form. Keep quests finite, optional, respectful, and honest about what they prove.
License
MIT. See LICENSE.
