Hey HN — I kept seeing developers describe the same frustration: the commit-push-wait-read-logs cycle when debugging CI pipelines. So I built PipeStep.
PipeStep parses your GitHub Actions YAML, spins up the right Docker container, and gives you a step-through debugger for your run: shell commands.
You can: 1. Pause before each step and inspect the container state. 2. Shell into the running container mid-pipeline (press I). 3. Set breakpoints on specific steps (press B). 4. Retry failed steps or skip past others.
It deliberately does not try to replicate the full GitHub Actions runtime — no secrets, no matrix builds, no uses: action execution. For full local workflow runs, use act. PipeStep is for when things break and you need to figure out why without pushing 10 more commits. Think of it as gdb for your CI pipeline rather than a local GitHub runner.
pip install pipestep (v0.1.2) · Python 3.11+ · MIT · Requires Docker
Would love feedback, especially from people who've hit the same pain point. Known limitations are documented in the README + have some issues in there that I'd love eyeballs on!
This is a compelling idea, but it doesn't seem to work. Running it on a yml I'm working on currently, it skipped all my setup actions and then failed because the dependencies it needed weren't set up (why did you think I wrote them?) There doesn't seem to be a way to force-run a skipped step.
Thank you so much! Huge bug. Action steps (uses:) were silently skipped, which meant any workflow relying on setup actions would just fail.
This should be fixed in v0.1.3. Action steps now pause instead of auto-skipping, and PipeStep offers to run a local equivalent when one exists. It also parses with: inputs, so setup-node with node-version: 18 actually installs Node 18 in the container. Currently supported: checkout, setup-node, setup-python, setup-go, setup-java, cache, upload/download-artifact. Anything unrecognized gives you a clear pause to run commands manually.
Would genuinely appreciate it if you gave it another shot (pip install --upgrade pipestep) and if you hit anything else, issues on GitHub would be incredibly helpful. The "why did you think I wrote them?" line was exactly the kind of thing I want more of.
Friend. You gotta write your own comments. It feels so gross to get a response that’s so obviously from an llm, I would rather you not have replied to me at all. I will not be using your app.
Fully understandable, it's an AI minefield out there! I wrote everything except the technical summary of what I'd updated, just so you know...Claude only helped me there to explain what had changed.
I wouldn't used the hell out of this the last time I was beginning a GitHub action.
I'm going to assume you meant "would've" hah. Would love to know how I could improve it!
ENH: record the debugging session to a script for reuse and writing tests
Love this idea — just shipped it. PipeStep now records every step you run/skip/shell-into and saves a bash script on quit (pipestep-session-YYYYMMDD-HHMMSS.sh). Should be useful for reproducing debugging sessions and as a starting point for tests.
[flagged]
Good question, thanks. PipeStep is specifically for debugging CI pipelines, not general LLM/flow orchestration. The target user is someone staring at a failing GitHub Actions run who's tired of the commit-push-wait-read-logs cycle. You point your existing workflow YAML at it, it spins up the same Docker container, and you step through interactively. It's more like gdb for CI than a pipeline framework — no new DSL, no lock-in, you just debug your existing workflow and push the fix.
[flagged]