Skip to main content
pikopod is a sandbox for the APIs you depend on. It is built from the provider’s spec, and it fails on purpose. When production fails anyway, pikopod replays that failure into the same sandbox, so you fix it on a laptop and keep the fix as a test.
One static Go binary. Runs locally. No accounts, no telemetry, no cloud. pikopod demo needs no configuration: it stands up a fake provider, sends traffic through it, changes the provider’s responses behind your back, and prints the alerts, in about a second.

Three things, one tool

Your tests point at the sandbox with a test credential pikopod issues. Your real app points at the agent with your real provider credentials, and the agent forwards. The sandbox and the observer are one tool on purpose. You cannot ask a provider’s sandbox to return that exact 503, with that body, at that point in your state machine. pikopod can, because the same tool recorded it and owns the sandbox.

Why pikopod

  • Their sandbox only knows how to succeed. A provider’s sandbox has never declined a charge in a way you did not ask for, never timed out halfway through, never delivered the same webhook twice. pikopod’s sandbox does all of that on request.
  • Eleven failure stories that bind themselves to your API. When a story cannot bind, pikopod names the missing fact instead of inventing a test.
  • A CI gate with nothing installed in your request path. pikopod spec-diff fails the build on a breaking spec change, with severity derived by one fixed rule.
  • An observing agent that cannot slow your traffic. It serves first and observes afterwards, never retries, and redacts before anything touches disk.

Example use cases

  • Payments and fintech integrations. Rehearse declines, partial failures and duplicate webhooks before the retry path runs against real money.
  • Catching a provider’s breaking change before merge. One line in CI diffs the published spec against your pinned copy and annotates the pull request.
  • Contract drift in production. A status value that was always success starts arriving as succeeded. The agent notices, fingerprints it, and hands you a replayable test.
  • Offline regression suites. Recorded traffic and generated scenario packs gate builds with no network and no provider account.
  • Agent-written integrations. A coding agent verifies what it wrote against what the provider actually sends, and gets an honest verdict.

Minimal example

Import a spec, ask which failure stories your API supports, and run two of them. Every line of output below came from running the real binary against the examplepay spec that ships with the repository.
No proxy, no account, nothing in your request path, and nothing to author. The one story that cannot bind says which fact was missing: the spec declares no webhook event, so there is nothing to deliver twice.

Next steps

Quickstart

Install, import a spec, run a failure, and gate a build in ten minutes.

The loop

How gate, sandbox, observe, reproduce and regress feed each other.

Catch a breaking change in CI

The usual on-ramp. One line, no proxy, no account.

CLI reference

Every command, every flag, every exit code.