r/PythonProjects2

I built Stepfork, an open-source tool that turns failed AI agent runs into pytest regression tests
▲ 4 r/PythonProjects2+3 crossposts

I built Stepfork, an open-source tool that turns failed AI agent runs into pytest regression tests

Hey everyone!

I've been working on an open-source Python project called Stepfork, and I wanted to share it with the community.

GitHub: https://github.com/utsab345/stepfork

While building AI agents, I kept running into the same problem: an agent fails, I fix the issue, but reproducing the original failure is difficult because LLM responses and tool outputs can change between runs.

So I built Stepfork to make those failures reproducible.

What it does:

  • Records instrumented LLM responses and tool calls.
  • Saves executions locally as .sftrace bundles.
  • Replays the recorded responses without making those instrumented external calls again.
  • Compares agent behavior before and after a fix.
  • Exports pytest regression tests to catch the same failure in the future.

Install:

pip install --pre stepfork

The repository includes three offline demos covering a missed order notification, an incorrect flight booking, and a wrongly denied refund.

It's still an early alpha. Replay only freezes instrumented boundaries, and native framework integrations are not available yet.

The project is Apache-2.0 licensed, and I'm actively improving it.

I'd love to hear what other developers think, especially those building AI agents. If you spot a bug, have an idea for an integration, or want to contribute, feel free to open an issue or PR.

GitHub Issues: https://github.com/utsab345/stepfork/issues

Thanks for checking it out!

u/Low-Cut-528 — 6 days ago
▲ 1 r/PythonProjects2+1 crossposts

I'm 11, and I built a multi-threaded, cross-platform hardware profile scanner in Python! Meet BoardLens v0.5.4.

Hey everyone!

Over the last few weeks, I’ve been working really hard on a project called BoardLens. It is a cross-platform hardware detection utility written completely in Python using Tkinter for a clean, modern dark-mode GUI.

I wanted to build something that could accurately grab system specs no matter what OS a person is running. To make it work, I had to dive deep into platform-specific commands. It runs:

* Windows: Custom PowerShell CimInstance queries

* macOS: Native parsing of `system_profiler` logs

* Linux: Processing `/proc/cpuinfo`, `/proc/meminfo`, and automated `lsblk` blocks

Some technical challenges I had to solve:

  1. Multi-threading: Running hardware scans on the main thread was freezing my Tkinter GUI, so I migrated the scanner to a background thread using Python’s `threading` library so the UI stays responsive.

  2. Packaging: I managed to compile it into a native `.exe` for Windows, a `.dmg` for macOS (which I built on my upgraded 2011 MacBook Pro!), and I'm currently setting up a native `.deb` package for Debian/Ubuntu distributions.

Right now, Linux can be run directly from source (working on Debian & Ubuntu for now).

How to run from source on Linux:

  1. Download the source code from my repository's Releases page.

  2. Open your terminal and navigate to the extracted folder.

  3. Run the command: `python3` `main.py` (make sure Python 3 is installed on your system!)

The project is completely free and open-source. I would absolutely love it if you could check out the repository, run it on your own hardware, and let me know if it detects your components correctly! If you find any bugs or edge cases, please drop them in the comments or open an issue.

Check out the project here: GitHub - https://github.com/CodeAnd-Copper/BoardLens

Check out my YouTube Channel: https://www.youtube.com/@CodeAndcopper1

Thank you so much for reading and for any feedback

reddit.com
u/Equivalent-Stress307 — 9 days ago

Local WiFi Check-In System

What My Project Does:
This is a Python-based local WiFi check-in system. People scan a QR code or open a URL, enter their name, and get checked in. It supports a guest list, admin approval for unknown guests, and shows a special message if you’re the first person to arrive.

Target Audience:
This is meant for small events, parties, or LAN-based meetups. It’s a toy/side project, not for enterprise use, and it runs entirely on a local network.

Comparison:
Unlike traditional check-in apps, this is fully self-hosted, works on local WiFi. It’s simple to set up with Python and can be used for small events without paying for a cloud service.

https://gitlab.com/abcdefghijklmateonopqrstuvwxyz-group/abcdefghijklmateonopqrstuvwxyz-project

u/Sufficient_Coach_334 — 11 days ago
▲ 2 r/PythonProjects2+1 crossposts

I built pyrig: scaffold a fully configured Python project with one command, and keep it in sync

Every new Python project needs the same setup: linting, type checking, tests, pre-commit hooks, CI/CD, docs, release workflow, repo protection. I got tired of copying it between projects and watching the copies drift as the tools changed, so I built pyrig (written in Python).

What it does

pyrig init generates a complete, working project:

  • project layout, pyproject.toml, README, LICENSE and other standard files

  • dev tooling configured out of the box: ruff, ty, pytest, prek hooks, deptry, bandit, zizmor and more

  • GitHub Actions CI/CD and GitHub branch protection rules

  • a working CLI for your project (pyrig mk cmd <name> adds commands)

  • test skeletons that mirror your source tree

    uv init my-project --python 3.12 cd my-project uv add pyrig --dev uv run pyrig init

How it works

Every file pyrig manages is a Python class that declares the state the file should have. pyrig sync creates or updates the files to match, so the project doesn't drift when tools change. You customize by subclassing (pyrig mk subcls), not with flags or template edits. A small plugin system, pyrig-runtime, discovers your subclasses automatically across installed packages, so any behavior can be changed, removed or extended.

Trade-offs

It's deliberately opinionated: no on/off toggles (you override a class instead), GitHub only, signed commits and linear history on the generated branch rules, and it adopts new tools like ty and zensical quickly, so expect rough edges. pyrig rm pyrig removes it, and most generated files keep working without it. Full list: https://winipedia.github.io/pyrig/drawbacks

Links

I'd like feedback on which defaults you'd disagree with and what's missing for your workflow.

reddit.com
u/Win_ipedia — 12 days ago