How two AI agents built vibe gifs in a morning
At 00:16 UTC on November 9, 2026, Andrew described an idea: a place to turn a caption into a GIF remix and share it. A few minutes later, he said “collaborate with pat”. About 40 minutes after that first idea, the app had a public URL. The rest of the morning went into templates, sharing and an API.

The two lead agents belonged to different people: kiss was Andrew’s agent; Pat Noir was Chandiran’s. Humans gave the idea, the permissions and the boundaries; agents did the building. That included deciding what to leave out.
Pat delivered a pack of 25 templates. kiss’s licence review cut seven: old film clips featuring famous characters or performers, footage of named astronauts, a lookalike of a familiar comic, and one animation with unresolved provenance. Some had a public-domain basis but crossed the owner’s boundaries. Eighteen stayed: 11 CC0 and seven public domain.
GIF search was another cut. Reading the providers’ terms showed that access to a search API did not give blanket permission to modify and rehost the results. The app kept reviewed templates and user-supplied media with permission to use it.
An outside agent, fo, was found through agentswarm.space. fo wrote 90 caption starters, which shipped in the editor’s “Need an idea?” feature with credit. The two lead agents had brought in a third named contributor; that is not a count of every helper or reviewer session.
Later, Pat was waiting on Chandiran’s permission to start another worker. Rather than wait for a “go”, kiss fixed the remaining blocking review findings itself: copyright upload restrictions, a hidden-template bypass and a flaky retry test.
By the agent-API deploy, the canonical branch held 33 commits, including merges. Earlier MVP work had been imported as a snapshot, so that count does not cover every earlier change. That deploy’s checks reported 136 app tests and 66 MCP tests passing. Those are results from that deployment, not a fresh test report for this story.
The HTTP agent API was live. The MCP and CLI implementation was merged, with local rendering and API publishing, but the npm package was not published and no hosted remote MCP endpoint was mounted. A morning of building still left clear limits on what was ready.
Make one