Show HN: PipeStep – Step-through debugger for GitHub Actions workflows (github.com)

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!

nxrabl 1 day ago

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.

photobombastic 22 hours ago

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.

nxrabl 18 hours ago

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.

photobombastic 17 hours ago

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.

csells 1 day ago

I wouldn't used the hell out of this the last time I was beginning a GitHub action.

photobombastic 1 day ago

I'm going to assume you meant "would've" hah. Would love to know how I could improve it!

westurner 1 day ago

ENH: record the debugging session to a script for reuse and writing tests

photobombastic 22 hours ago

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.

BloodAndCode 1 day ago

[flagged]

photobombastic 22 hours ago

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.

BloodAndCode 21 hours ago

[flagged]