CLI Factory for AI Agents
DuckTap prints agent-native CLIs, MCP servers, and skills from any OpenAPI spec, HAR file, or website. No bespoke code required.
Point at a spec or recorded browser traffic. DuckTap normalizes every endpoint into a clean, agent-friendly CLI.
No public API? No problem. Playwright drives the site, captures traffic, and reverse-engineers a CLI from the HAR.
Every printed CLI ships with a matching MCP server. Drop it into Claude Desktop, Cursor, or any MCP-aware agent.
Claude Code SKILL.md, Cursor .mdc rules, and a generic tools.json — every harness can invoke your CLI.
Via LiteLLM: Claude, GPT-4, Gemini, local Ollama, Groq, Azure. Pick your model with an env var.
Register discoverers and generators via Python entry points. Ship improvements as PyPI packages, not forks.
Parse an OpenAPI spec, a HAR file, or drive a headless browser through a website to capture its API.
All inputs collapse into one APISpec — DuckTap's intermediate model. Typed, validated, Pydantic.
Emit a Python CLI, an MCP server, and agent skill manifests — all from the same spec.
Run the scorecard and shipcheck. If it passes, pip install -e . and you're live.
pip install ducktap
git clone https://github.com/zanni098/DuckTap
cd DuckTap && pip install -e ".[dev]"
ducktap press https://petstore3.swagger.io/api/v3/openapi.yaml --out ./out
Same north star. Different priorities.
| Capability | Printing Press | DuckTap |
|---|---|---|
| Language | Go | Python |
| LLM support | Claude only | Claude / GPT / Gemini / Ollama / Groq / Azure |
| Agent skills | Claude Code | Claude + Cursor + generic tools.json |
| Web dashboard | — | FastAPI UI included |
| Plugin system | Source fork | Entry-point PyPI plugins |
| Browser sniff | Custom Go browser | Playwright + scriptable actions |
| Generated CLI | Single Go binary | Python (pip-installable, hackable) |
Both are MIT-licensed. Both print a CLI, an MCP server, and a skill. DuckTap optimizes for hackability and multi-agent reach; Printing Press optimizes for single-binary deployment.
Join the community. Add your API to the catalog, write a plugin, or just print your first CLI.