PipeForge

An AI CI/CD pipeline tool - describe your stack in plain English and get a production-ready GitHub Actions, GitLab CI, or CircleCI config streamed back in real time.

Every CI config I’ve ever written started the same way: copy a similar pipeline from another repo, then spend twenty minutes remembering the exact YAML for caching, matrix builds, or a Docker push step. I wanted to just describe what I needed and get a correct pipeline back - so I built a tool around Claude that does exactly that, for five different CI platforms.

Four modes, one editor

Generate pins action versions, always caches dependencies, reads secrets from environment variables instead of hardcoding them, and includes a test step by default - not because I told the model to remember those rules every time, but because they’re baked into the system prompt for that mode.

Streaming and caching

The generate, migrate, and debug endpoints stream via SSE, so the editor fills in as Claude writes rather than showing a spinner until the whole response lands. The explain endpoint uses Anthropic’s prompt caching on its system prompt - repeated explain calls against the same pipeline reuse the cached prefix instead of re-processing the same instructions every click.

There’s also an “extras” system: checkboxes for things like a Docker build/push step, Slack failure notifications, matrix testing, a Trivy/Snyk security scan, or auto-semver versioning. Checking one injects a structured requirement clause into the user message at request time rather than editing the system prompt itself, which keeps the cached prefix stable while still letting requirements vary per request.

The rest of the stack

A Fastify API handles /generate, /migrate, /debug, and /explain, plus a /configs endpoint for saved pipelines - generation history persists to libSQL via Drizzle ORM. The frontend is a React + Vite SPA with react-router-dom, consuming the SSE stream and appending YAML into a CodeMirror 6 editor as it arrives.

Key decisions

Built with