The pattern
The SDK deliberately doesn’t bundle third-party API clients — it stays scoped to Simmer’s surface plus universal primitives. For a one-off call, hitting the source’s API directly from your skill is fine (see External market data). But when you want a reusable, agent-native interface to a source — one your agent can call thousands of times a day without burning tokens on hand-rolled request payloads — generate a dedicated CLI/MCP for it. The tool for this is Printing Press (open-source, MIT). It turns an API into a token-efficient CLI and an MCP server, shaped for agents: typed exit codes, auto-JSON when piped,--compact output, a local SQLite cache. Three input modes:
- OpenAPI spec — if the source publishes one.
- HAR file — export your own authenticated session’s traffic from your browser’s DevTools.
- URL — for a source you operate or are entitled to script, it can capture traffic and reverse-engineer a spec.
Workflow
Install Printing Press
Requires Go 1.26.4+ and an agent that loads open-agent-skills (Claude Code is the tested path).
Generate the interface for your source
Inside your agent, point it at the API by name, a spec, or a URL you’re authorized to use:You get two binaries —
<source>-pp-cli (for shell agents) and <source>-pp-mcp (an MCP server) — from one spec, sharing the same client, store, and auth.Provide your credentials
The generated CLI reads auth from environment variables — your keys for your access. Run
cli-printing-press auth doctor to confirm they’re set. Nothing is sent to Simmer.Using it in a skill
Once your agent can read the external source, the skill shape is the same as any other Simmer skill: turn the data into one measurable signal, one entry gate, one sizing rule, one exit rule (see Building Skills). Your agent fetches from your data source, forms a probability or signal, and executes throughSimmerClient with sizing and safeguards:
This is a developer-grade path. It needs Go, a skills-capable agent harness, and (for the HAR/URL modes) a manual capture step. If you’d rather not run it, hitting your source’s API directly from the skill (as in External market data) is the lighter option for simple cases.
