Shiny Fishstick crawls a site once, discovers what it can do, and compiles it into a typed, agent-ready SDK. No selectors, no raw HTML, and no browser at all where a direct API call will do.
Every AI browser agent hits the same wall. It parses thousands of tokens of HTML to find a button, guesses selectors that break on the next refactor, and pays a context tax on every click. This isn’t a browser problem. It’s an abstraction problem.
Also included
Encrypted credentialsStealth modeProxy supportiFrame traversalSelf-healing selectorsChaos monkeyOffline LLM via OllamaOpenAPI exportNext.js dashboardThe output is a human-readable, version-controllable action spec. Once add_to_cart is discovered as a POST call, future runs skip the browser entirely.
| Real site | Page tokens | API tokens | Speed-up |
|---|---|---|---|
| Wikipedia | 40,833 | 131 | 8× |
| Hacker News | 2,298 | 1 | 3.5× |
| GitHub (vscode) | 34,292 | 5 | 24× |
Mock-store figures come from a controlled demo. Real-site figures were measured live. Methodology and caveats for every number are in BENCHMARKS.md in the repo.
Playwright is a great browser control library. Shiny Fishstick sits on top of it to add a compilation and abstraction layer.
You’ll need Python 3.9+ and Node.js 18+. Docker is optional. Then run playwright install chromium.
preflight.yamlcompiled action specsdk.pyPython clientsdk.tsTypeScript clientsdk.rsRust clientmcp_server.pyplugs into any LLMGenerated into ./shared/specs/
We want preflight.yaml to become an open standard, the way OpenAPI did for REST: a spec, a compiler, a validator, and one day a registry where sites publish their own.
View on GitHubOpen an issue