Meatbag solves a specific annoyance in agent workflows: an agent walks you through generating a client secret, the instructions get buried in chat history, and now you’re not sure how to hand the secret back safely. Instead, the agent drives a shared to-do list. It creates items, nests them, and requests structured inputs; you work through them in a local web UI and check them off. The instructions live in the list, not in the scrollback.
How it works
- Agent-driven, human-completed. The agent runs
meatbagfrom its shell to build lists and request inputs. You fill inputs, approve permission-gated steps, and mark items done in the web UI. - Typed inputs. Items can ask for text, file uploads, secrets, or approval of a gated action, each with its own schema so the form is exactly what the step needs.
- Event-driven, no polling.
meatbag waitlets the agent register listeners before it prompts, so it wakes the instant you change something rather than polling for updates. - Local-first storage. List state is plain YAML under
~/.meatbag/, uploads are content-addressed blobs on disk, and secrets go to the macOS Keychain or0600files on headless Linux - the backend is chosen at build time.
Notes
It ships as a Go binary with an embedded React UI and a background daemon; make install does an atomic swap and restarts the daemon so upgrades are live. Any
agent can pick it up: meatbag agent snippet prints a short markdown blurb you
paste into your agent config so it knows the tool exists.
snapshot
reflects meatbag@8fab7a3captured Aug 12, 2026