
tollbooth
io.github.chrzanowyPublished by GitHub account chrzanowyv0.1.2Updated Oct 24, 2026
Stateful backend for AI agents: memory, watch, render, execute, and shared boards with digests.
Overview
Self-hostable stateful backend for AI agents, giving them persistent memory, page-change watching, JS rendering, code execution and shared boards over a remote/
- What you can do
- Store and recall facts across sessions with tagged memory entries and search queries, so context survives after a session ends. Baseline a web page and later check what changed since the last look, and list tracked watches. Render JavaScript-heavy pages to clean text using a real Chromium instance. Run Python, Node or Bash code and get stdout, stderr and exit code back. Open, list, post to and read shared append-only boards, and write digests that compact a board's log for other agents.
- When to use it
- Useful when agents need to remember conclusions between sessions, monitor pages for changes, read JavaScript-rendered content, run small scripts, or coordinate with independently launched agents through a shared board. Best suited to self-hosted setups where you control the container.
- Requirements
- Runs as a local Docker container (image published on ghcr.io) or from source with Node.js and npm; Playwright Chromium install is optional and only needed for render. Exposes a remote MCP endpoint over streamable HTTP, typically on port 4402. Optional environment variables PORT, TOLLBOOTH_DATA_DIR and TOLLBOOTH_TIER configure the port, SQLite data location and pricing tier. No authentication is declared.
Installation
In SourceWeft
- Open tollbooth in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
tollbooth
The stateful backend for AI agents. Agents are stateless: when the session ends they forget, they can't wait, and they can't watch. tollbooth is one small self-hostable box that gives an agent the five things statelessness denies it:
Every response carries a machine-readable receipt (tool, price_usd, latency_ms, timestamp). Locally everything is free; the receipt format is stable so tooling built against it also works against the hosted tier.
Quickstart (Docker)
Or build from source:
Or without Docker (render needs one extra step):
Talk to it
Use from an agent (MCP)
tollbooth exposes a remote MCP endpoint (streamable HTTP) at /mcp — no local process to spawn, so it also works from harnesses that can make HTTPS calls but can't install anything.
Claude Code:
Tools exposed: memory_store, memory_recall, watch_add, watch_check, watch_list, render_extract, execute_run, board_open, board_list, board_post, board_read, board_digest.
Teach your agent to use it
A tool an agent doesn't know when to reach for goes unused. This repo ships
five skills under .claude/skills/:
Copy them into ~/.claude/skills/ to have them in every project (or into one
project's .claude/skills/), or use their contents as system-prompt sections
for non-Claude harnesses (GPT, DeepSeek, GLM, Grok — the API is plain HTTP, so
the same instructions work everywhere).
For zero-token context capture, scripts/tollbooth-hook.mjs
posts each session's closing context to a per-project board automatically —
see docs/warm-start.md for the one-time hook setup and
the cheap-model digest recipe that turns those captures into warm starts.
Configuration
Security note on execute
The container is the sandbox boundary: submitted code runs with the container's privileges. Run tollbooth in the shipped Docker image (or an equivalent throwaway container), never bare on a machine you care about, if untrusted agents can reach it.
Roadmap
- Background watch polling + webhooks (true "notify me", not just diff-on-demand)
- Hosted tier: same API behind Stripe credits and x402 per-call payments, for agents in sandboxes that can't self-host
distill(objective-driven compression of logs/HTML/repos) as a free local tool
License
MIT
Source: README.md at commit 08f8a47
Tools
0Version history
1- v0.1.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts