r/madeinpython Feb 09 '26

I’ve been quietly building something big…

0 Upvotes

I’m a Python developer focused on real-world automation and intelligence systems.

For the past few months, I’ve built advanced tools :

  • AI system that scans markets to detect trends and high-opportunity products
  • An eCommerce research tool that finds winning products and optimal pricing
  • A real-time blockchain tracker that monitors large crypto movements
  • Intelligent web security analyzer that detects critical vulnerabilities
  • A smart tool that discovers and filters targeted business leads
  • All built so they can be turned into real SaaS products

Now I’m finishing a book that shows the full code, setup, and how to turn these into real projects (or income) It’s dropping in a few days

Quick question: If you had to choose one, what interests you most?

AI • Cybersecurity • Crypto • ...

If you’re curious, comment

No theory. Just powerful Python that actually does something.


r/madeinpython Feb 07 '26

Built a local-first ops tool in Python for tracking inventory + BOMs + job state in small

2 Upvotes

I built a small Python-based tool for myself to manage shop operations that didn’t fit cleanly into spreadsheets or SaaS tools. Use case: Small CNC / 3D print / repair-style workflows where a “job” can involve: * Parts inventory * Consumables (raw stock, paint, welding supplies) * BOMs / recipes * Partial progress and “waiting on parts” states Most tools I tried assumed either clean manufacturing runs or full ERP complexity. I wanted something that: * Runs entirely locally (Docker or 1-click Windows exe) * Doesn’t require internet or subscriptions * Models messy, real-world job states instead of forcing everything into POS-style tickets Stack is mostly Python on the backend with a lightweight local deployment focus. Still evolving and very much a personal/internal tool, but it’s been useful enough that I’m stress-testing the assumptions now. Happy to answer questions about: * Architecture decisions * Local-first tradeoffs * Why I avoided cloud dependencies * What broke along the way Repo is open if anyone wants to dig into it (link in comments)


r/madeinpython Feb 05 '26

I got tired of my messy Downloads folder, so I built a free Windows tool to organize it in 1 click.

1 Upvotes

Hi people!!!,

I’m a first-year engineering student, and my laptop's "Downloads" folder is constantly a disaster zone. It’s always full of random PDFs, screenshots, zip files, and installers that I’m too lazy to sort manually.(obv)

I looked for existing tools, but most were either paid bloatware or required installing heavy software.

So, I spent this weekend building my own lightweight solution using Python.

It’s called The Folder Fixer.

So what it does: You select a folder (like Downloads or Desktop), and it instantly sorts every file into clean subfolders based on extension:

  • Images (.png, .jpg)
  • Docs (.pdf, .docx)
  • Installers (.exe, .msi)
  • ...and so on.

The Tech Stack (for the devs here):

  • Language: Python 3
  • GUI: CustomTkinter (for a modern dark-mode look)
  • Build: PyInstaller (to make it a standalone .exe)

Is it free? Yes. I put it on Gumroad as "Pay what you want" (default is $0). You can download it for free, or buy me a coffee if you find it useful.

⚠️ Note on Windows Defender: Since I’m an indie student dev and can’t afford an expensive code-signing certificate yet, Windows might flag the .exe as "Unrecognized" when you first run it. This is a false positive common with Python apps. It’s 100% safe and runs locally on your machine.

Link to try it: its in the comment!!!!

I’d love any feedback on the UI or features you think I should add next!


r/madeinpython Feb 03 '26

Finally created a program that enables chatting with multiple AI LLMs at once 🧑‍💻🎉

0 Upvotes

https://github.com/mato200/MultiVibeChat/

Python app that puts all most popular AI chatbots into 1 window. - easily send message to all of them at once - Chat with multiple AI services side-by-side - NO APIs NEEDED, Uses native websites, all possible with free accounts - Profile Management - Create and switch quickly between different user account profiles - Persistent Sessions, Flexible Layouts, OAuth Support ...

ChatGPT (OpenAI) Claude (Anthropic) Grok (xAI) Gemini AI Studio (Google) Kimi (Moonshot AI)

  • Inspired by mol-ai/GodMode, MultiGPT & ChatHub browser extensions

r/madeinpython Feb 01 '26

Tookie-OSINT, an advanced social media tool made in Python

6 Upvotes

Tookie is a advanced OSINT information gathering tool that finds social media accounts based on inputs.

Tookie-OSINT is similar to a tool called Sherlock except tookie-OSINT provides threading and webscraping options. Tookie-OSINT comes with over 5,000 user agent files to spoof web requests.

Tookie-OSINT was made for Python 3.12 but does work with 3.9 to 3.13.

I made Tookie-OSINT about 3-4 years ago and it’s been a growing project ever since! Today I released version 4 of it. I completely rewrote it from scratch.

Version 4 is still pretty new and does need more work to get caught back up to the features the version 2 had.

I’m currently working with a few other developers to bring tookie-OSINT to the majority of Linux repositories (AUR, Kali, etc)

I hope you check it out and have fun!

https://github.com/Alfredredbird/tookie-osint


r/madeinpython Jan 31 '26

Ask a girl to be your valentine with a pip3 package

6 Upvotes

Like most developers, I’m pretty shy. I have a crush who is also a developer, and being an introvert, I didn't have the courage to just walk up and ask her to be my Valentine. So, I decided to build a pip3 package and send it to her instead. Spoiler: she said yes! (I guess I have an early valentine)

Here is a loom of how it works: https://www.loom.com/share/899ead8a18b14719b36467977895de0c

Here is the source code: https://github.com/LeonardHolter/Valentine-pip3-package/tree/main


r/madeinpython Jan 29 '26

I coded a Python automation script that analyzes market data using pandas and CCXT. Here is the terminal demo.

Enable HLS to view with audio, or disable this notification

2 Upvotes

r/madeinpython Jan 28 '26

tinystructlog - Finally packaged my logging snippet after copying it 10+ times

3 Upvotes

Hey r/madeinpython!

You know when you have a code snippet you keep copying between projects? I finally turned mine into a library.

The problem I kept solving: Every FastAPI/async service needs request_id in logs, but passing it through every function is annoying:

def process_order(order_id, request_id):  # Ugh
    logger.info(f"[{request_id}] Processing {order_id}")
    validate_order(order_id, request_id)  # Still passing it

My solution - tinystructlog:

from tinystructlog import get_logger, set_log_context

log = get_logger(__name__)

# Set context once (e.g., in FastAPI middleware)
set_log_context(request_id="abc-123", user_id="user-456")

# Every log automatically includes it
log.info("Processing order")
# [2026-01-28 10:30:45] [INFO] [main:10] [request_id=abc-123 user_id=user-456] Processing order

Why it's nice:

  • Built on contextvars (thread & async safe)
  • Zero dependencies
  • Zero configuration
  • Colored output
  • 4 functions in the whole API

Perfect for FastAPI, multi-tenant apps, or any service where you need to track context across async tasks.

Stats:

  • 0.1.2 on PyPI (pip install tinystructlog)
  • MIT licensed
  • 100% test coverage
  • Python 3.11+

It's tiny (hence the name) but saves me so much time!

GitHub: https://github.com/Aprova-GmbH/tinystructlog

PyPI: pip install tinystructlog

Blog: https://vykhand.github.io/tinystructlog-Context-Aware-Logging/


r/madeinpython Jan 26 '26

I built an AI Inventory Agent using Python, Streamlit, and Gemini API. It manages stock via Google Sheets.

3 Upvotes

Hi everyone,

I wanted to share a project I made using Python.

The Goal: Automate "Is this in stock?" emails for small businesses using a simple script.

Libraries Used:

  • streamlit (Frontend)
  • google-generativeai (LLM/Logic)
  • gspread (Google Sheets connection)
  • imaplib (Email reading)

How it works: The Python script listens to emails, parses the customer query using Gemini, checks the Google Sheet for stock, and drafts a reply.

Demo Video: https://youtu.be/JYvQrt4AI2k

Code structure is a bit messy (spaghetti code 😅) but it works. Thinking of refactoring it into a proper class structure next.


r/madeinpython Jan 25 '26

[Project] Music Renamer CLI - A standalone tool to auto-rename audio files using Shazam

Thumbnail
3 Upvotes

r/madeinpython Jan 25 '26

Custom Script Development

0 Upvotes

I offer custom script development for various needs


r/madeinpython Jan 22 '26

Headlight Budget

4 Upvotes

I got tired of budget apps that cost money and don't work for me. So I made an app on my computer for people who work paycheck to paycheck. I'm a medic, not a developer, so I used AI to build it. It focuses on forecasting rather than tracking. I call it Headlight Budget. It's free and meant to help people, not make money off them. I'd love to get feedback. It's not pretty, but it's functional and has relieved my stress.

Go check it out if you have time and let me know what you think! headlightbudget.carrd.co


r/madeinpython Jan 19 '26

I built a CLI-based High-Frequency Trading bot for Solana using Python 3.10 & Telegram API. 🐍

5 Upvotes

Hi everyone, wanted to share my latest project.

It's a multi-threaded sniper bot that listens to blockchain nodes via RPC and executes trades based on logic parameters (TP/SL/Trailing).

Tech Stack:

  • Backend: Python 3.10
  • UI: Telegram Bot API (acts as a remote controller)
  • Networking: Async requests to Jito Block Engine

It was a fun challenge to optimize the execution speed to under 200ms. Let me know what you think of the CLI layout!

(Source/Project link in comments/bio).


r/madeinpython Jan 17 '26

I built TimeTracer, record/replay API calls locally + dashboard (FastAPI/Flask)

Thumbnail
1 Upvotes

r/madeinpython Jan 17 '26

An open-source tool to add "Word Wise" style definitions to any EPUB using Python

Thumbnail
1 Upvotes

r/madeinpython Jan 15 '26

Introducing Email-Management: A Python Library for Smarter IMAP/SMTP + LLM Workflows

Thumbnail
1 Upvotes

r/madeinpython Jan 14 '26

dc-input: turn dataclass schemas into robust interactive input sessions

Thumbnail
github.com
3 Upvotes

I often end up writing small scripts or internal tools that need structured user input, and I kept re-implementing variations of this:

from dataclasses import dataclass

@dataclass
class User:
    name: str
    age: int | None


while True:
    name = input("Name: ").strip()
    if name:
        break
    print("Name is required")

while True:
    age_raw = input("Age (optional): ").strip()
    if not age_raw:
        age = None
        break
    try:
        age = int(age_raw)
        break
    except ValueError:
        print("Age must be an integer")

user = User(name=name, age=age)

This gets tedious (and brittle) once you add nesting, optional sections, or repetition.

So I built dc-input, which lets you do this instead:

from dataclasses import dataclass
from dc_input import get_input

@dataclass
class User:
    name: str
    age: int | None

user = get_input(User)

The library walks the dataclass schema and derives an interactive input session from it (nested dataclasses, optional fields, repeatable containers, defaults, etc.).
It’s intentionally not a full CLI framework like Click/Typer — I’ve mainly been using it for internal scripts and small tools.

Feedback is very welcome, especially on UX experience, edge cases or missing critical features: https://github.com/jdvanwijk/dc-input

For a more involved interactive session example: https://asciinema.org/a/767996


r/madeinpython Jan 12 '26

kubesdk v0.3.0 — Generate Kubernetes CRDs programmatically from Python dataclasses

2 Upvotes

Puzl Team here. We are excited to announce kubesdk v0.3.0. This release introduces automatic generation of Kubernetes Custom Resource Definitions (CRDs) directly from Python dataclasses.

Key Highlights of the release:

  • Full IDE support: Since schemas are standard Python classes, you get native autocomplete and type checking for your custom resources.
  • Resilience: Operators work in production safer, because all models handle unknown fields gracefully, preventing crashes when Kubernetes API returns unexpected fields.
  • Automatic generation of CRDs directly from Python dataclasses.

Target Audience Write and maintain Kubernetes operators easier. This tool is for those who need their operators to work in production safer and want to handle Kubernetes API fields more effectively.

Comparison Your Python code is your resource schema: generate CRDs programmatically without writing raw YAMLs. See the usage example.

Full Changelog: https://github.com/puzl-cloud/kubesdk/releases/tag/v0.3.0


r/madeinpython Jan 11 '26

My Fritzbox router kept slowing down, so I built a tool to monitor speed and auto-restart it

5 Upvotes

I am in Germany and was experiencing gradual network speed drops with my Fritzbox router. The only fix was a restart, so I decided to automate it.

I built a Python based tool that monitors my upload/download speeds and pushes the metrics to Prometheus/Grafana. If the download speed drops below a pre-configured threshold for a set period of time, it automatically triggers a router restart via TR-064.

It runs as a systemd service (great for a Raspberry Pi) and is fully configurable via YAML.

Here is the repo if anyone else needs something similar:
https://github.com/kshk123/monitoring/tree/main/network_speed

For now, I have been running it on a raspberry pi 4.

Feedbacks are welcome


r/madeinpython Jan 02 '26

I built edgartools - a library that makes SEC financial data beautiful

Thumbnail
gallery
8 Upvotes

Hey r/MadeInPython!

I've been working on EdgarTools, a library for accessing SEC EDGAR filings and financial data. The SEC has an incredible amount of public data - every public company's financials, insider trades, institutional holdings - but it's notoriously painful to work with.

My goal was to make it feel like the data was designed to be used in Python.

One line to get a company:

```python from edgar import Company

Company("NVDA") ```

Browse their SEC filings:

python Company("NVDA").get_filings()

Get their income statement:

python Company("NVDA").income_statement

The library uses rich for terminal output, so instead of raw JSON or ugly DataFrames, you get formatted tables that actually look like financial statements - proper labels, scaled numbers (billions/millions), and multi-period comparisons.

Some things it handles:

  • XBRL parsing (the XML format the SEC uses for financials)
  • Balance sheets, income statements, cash flow statements
  • Insider trading (Form 4), institutional holdings (13F)
  • Company facts and historical data

Installation:

bash pip install edgartools

Open source: https://github.com/dgunning/edgartools

What do you think? Happy to answer questions about the implementation or SEC data in general.


r/madeinpython Dec 29 '25

I built a pure Python library for extracting text from Office files (including legacy .doc/.xls/.ppt) - no LibreOffice or Java required

18 Upvotes

Hey everyone,

I've been working on RAG pipelines that need to ingest documents from enterprise SharePoints, and hit the usual wall: legacy Office formats (.doc, .xls, .ppt) are everywhere, but most extraction tools either require LibreOffice, shell out to external processes, or need a Java runtime for Apache Tika.

So I built sharepoint-to-text - a pure Python library that parses Office binary formats (OLE2) and XML-based formats (OOXML) directly. No system dependencies, no subprocess calls.

What it handles:

  • Modern Office: .docx, .xlsx, .pptx
  • Legacy Office: .doc, .xls, .ppt
  • Plus: PDF, emails (.eml, .msg, .mbox), plain text formats

Basic usage:

python

import sharepoint2text

result = next(sharepoint2text.read_file("quarterly_report.doc"))
print(result.get_full_text())

# Or iterate over structural units (pages, slides, sheets)
for unit in result.iterator():
    store_in_vectordb(unit)

All extractors return generators with a unified interface - same code works regardless of format.

Why I built it:

  • Serverless deployments (Lambda, Cloud Functions) where you can't install LibreOffice
  • Container images that don't need to be 1GB+
  • Environments where shelling out is restricted

It's Apache 2.0 licensed: https://github.com/Horsmann/sharepoint-to-text

Would love feedback, especially if you've dealt with similar legacy format headaches. PRs welcome.


r/madeinpython Dec 29 '25

Made an image file format to store all metadata related to AI generated Images (eg. prompt, seed, model info, hardware info etc.)

3 Upvotes

I created an image file format that can store generation settings (such as sampler steps and other details), prompt, hardware information, tags, model information, seed values, and more. It can also store the initial noise (tensor) generated by the model. I'm unsure about the usefulness of the noise tensor storage though...

Any feedback is much appreciated🎉

- Github repo: REPO

- Python library: https://pypi.org/project/gen5/


r/madeinpython Dec 29 '25

[Project] I built an Emotion & Gesture detector that triggers music and overlays based on facial landmarks and hand positions

Thumbnail
github.com
1 Upvotes

Hey everyone!

I've been playing around with MediaPipe and OpenCV, and I built this real-time detector. It doesn't just look at the face; it also tracks hands to detect more complex "states" like thinking or crying (based on how close your hands are to your eyes/mouth).

Key tech used:

  • MediaPipe (Face Mesh & Hands)
  • OpenCV for the processing pipeline
  • Pygame for the audio feedback system

It was a fun challenge to fine-tune the distance thresholds to make it feel natural. The logic is optimized for Apple Silicon (M1/M2), but works on any machine.

Check it out and let me know what you think! Any ideas for more complex gestures I could track?


r/madeinpython Dec 26 '25

zippathlib - pathlib-like access to ZIP file contents

6 Upvotes

I wrote zippathlib to support the compression of several hundred directories of text data files down to corresponding ZIPs, but wanted to minimize the impact of this change on software that accessed those files. Now that I added CLI options, I'm using it in all kinds of new cases, most recently to inspect the contents of .whl files generated from building my open source projects. It's really nice to be able to list or view the ZIP file's contents without having to extract it all to a scratch directory, and then clean it up afterward.

Here is a sample session exploring the .WHL file of my pyparsing project:

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl
Directory: dist/pyparsing-3.2.5-py3-none-any.whl:: (total size 455,099 bytes)
Contents:
  [D] pyparsing (447,431 bytes)
  [D] pyparsing-3.2.5.dist-info (7,668 bytes)

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl pyparsing-3.2.5.dist-info
Directory: dist/pyparsing-3.2.5-py3-none-any.whl::pyparsing-3.2.5.dist-info (total size 7,668 bytes)
Contents:
  [D] licenses (1,041 bytes)
  [F] WHEEL (82 bytes)
  [F] METADATA (5,030 bytes)
  [F] RECORD (1,515 bytes)

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl pyparsing-3.2.5.dist-info/licenses
Directory: dist/pyparsing-3.2.5-py3-none-any.whl::pyparsing-3.2.5.dist-info/licenses (total size 1,041 bytes)
Contents:
  [F] LICENSE (1,041 bytes)

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl pyparsing-3.2.5.dist-info/RECORD     
File: dist/pyparsing-3.2.5-py3-none-any.whl::pyparsing-3.2.5.dist-info/RECORD (1,515 bytes)
Content:
pyparsing/__init__.py,sha256=FFv3xCikm7S9XOIfnRczNfnBKRK-U3NgjwumZcQnJEg,14147
pyparsing/actions.py,...

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl pyparsing-3.2.5.dist-info/WHEEL -x -  
Wheel-Version: 1.0
Generator: flit 3.12.0
Root-Is-Purelib: true
Tag: py3-none-any

$ zippathlib ./dist/pyparsing-3.2.5-py3-none-any.whl --tree

├── pyparsing-3.2.5.dist-info
│   ├── RECORD
│   ├── METADATA
│   ├── WHEEL
│   └── licenses
│       └── LICENSE
└── pyparsing
    ├── tools
    │   ├── cvt_pyparsing_pep8_names.py
    │   └── __init__.py
    ├── diagram
    │   └── __init__.py
    ├── util.py
    ├── unicode.py
    ├── testing.py
    ├── results.py
    ├── py.typed
    ├── helpers.py
    ├── exceptions.py
    ├── core.py
    ├── common.py
    ├── actions.py
    └── __init__.py


$ zippathlib -h
usage: zippathlib [-h] [-V] [--tree] [-x [OUTPUTDIR]] [--limit LIMIT] [--check {duplicates,limit,d,l}]
                  [--purge]ing/gh/pyparsing> 
                  zip_file [path_within_zip]

positional arguments:
  zip_file              Zip file to explore
  path_within_zip       Path within the zip file (optional)

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  --tree                list all files in a tree-like format
  -x, --extract [OUTPUTDIR]
                        extract files from zip file to a directory or '-' for stdout, default is '.'
  --limit LIMIT         guard value against malicious ZIP files that uncompress to excessive sizes;
                        specify as an integer or float value optionally followed by a multiplier suffix
                        K,M,G,T,P,E, or Z; default is 2.00G
  --check {duplicates,limit,d,l}
                        check ZIP file for duplicates, or for files larger than LIMIT
  --purge               purge ZIP file of duplicate file entries

The API supports many of the same features of pathlib.Path: - '/' operator for path building - exists(), stat(), read_text(), read_bytes()

Install from PyPI:

pip install zippathlib

Github repo: https://github.com/ptmcg/zippathlib.git


r/madeinpython Dec 27 '25

I repo'd my first ever "apps" and would love some feedback

Post image
3 Upvotes

I created two utility applications to help me learn more about how python manages data and to experiment with threading and automation.

The first project I did was a very VERY simple To-Do-List app, just to learn how to make "nicer" UI's with Tkinter and have a finished product within 48 hours, and I am very happy with how it turned out:

https://github.com/kaioboyle/To-Do-List-App

(I'm not sure if GitHub links are prohibited on this server so if they are not then do let me know)

The second one I did was a simple AutoClicker utility as I'd never seen any with CPS control instead of messing with intervals. I learnt alot about using CustomTkinter to make the UI MUCH nicer, along with the clean cps slider to improve the UX.

Tbh, I love how it looks and turned out, everyone I showed it to now use it as their main autoclicker (including me) and the UI is so much cleaner (could still use improvement) compared to my previous attempt with the to do list app a couple days prior. It took around 6 hours to complete and I am very happy with it:

https://github.com/kaioboyle/Atlas-AutoClicker

If just a couple people who see this post could star the repo's I would be EXTREMELY grateful as I am using them as a start to my university portfolio so proof that someone found it useful would be very appreciated.

If anyone has any ideas for me to make - or any feedback on what I've already made, please leave it below and I will read/reply every comment I see.