You are browsing as a guest. Sign up (or log in) to start making projects!

ZeroG-KIT

  • 6 Devlogs
  • 22 Total hours

Toolkit to help on a daily basis and make life easier

Ship #1 Pending review

ZeroG-KIT is a Windows CLI toolkit that includes 20 tools divided into five categories: system cleanup, utilities, security, network, and text/data tools. It is built in Python and automatically gains admin access when launched, so no GUI is required.

One challenge was maintaining consistency across the 20 tools in five separate modules. Every tool that interacts with files, the network, or system calls needed solid error handling. This meant using try/except blocks to prevent crashes with bad input. During the project, I also reorganized the code from a single utilities.py into a proper module structure. It took time, but it made the codebase much cleaner.

I’m proud of the final scope. What began as a few basic tools has grown into a toolkit I actually use. It now includes a process killer, a firewall check, AES encryption, a LAN scanner, all in one place.

To test it, clone the repo, run pip install -r requirements.txt, and then run python main.py. It only works on Windows and will prompt for admin access on launch. Check out the network scanner, the encryption tool, or the process killer; those are the most interesting features.

Try project → See source code →
Open comments for this post

2h 11m 31s logged

Three more tools went in, plus a structural change that’s probably the bigger story this time.
The regex tester is straightforward, take a pattern, take a text, run re.findall(), wrapped in a try/except to catch re.error for bad patterns instead of crashing. Nothing fancy but it’s the kind of utility that earns its keep.
Lorem ipsum generator was a chance to use random.choices() properly, a fixed word bank, pick k words at random with replacement, join with spaces. Simple, but it’s the first tool that leans on random instead of secrets.
Process killer is the one I’m happiest with. It pulls every running process via psutil.process_iter(), sorts by memory usage, and prints a clean top-30 table. A second function, kill_process(), takes a process name, loops through and terminates matches, with try/except for NoSuchProcess and AccessDenied so it doesn’t blow up on protected system processes. Eventually want a GUI version of this with a red kill button next to the list, but that’s a later project, not blocking this one.
The bigger change: split the single utilities.py into proper modules. utilities.py now holds system/image/QR/password/unit-convert/process tools, security.py has hashing, password checking, encryption, vuln scanning, and firewall checks, network.py has the network tools, and text_tools.py has base64, JSON, case conversion, regex, and lorem ipsum. main.py got restructured into category submenus (System, Utilities, Security, Network, Text & Data) instead of one flat list. Toolkit is sitting at 20 tools now and the codebase is a lot easier to navigate.
Only thing left before this ships: menu polish, colorama for color, cleaner separators, and a version number in the header.

0
0
2
Open comments for this post

9h 26m 16s logged

Three more tools implemented and the toolkit is now at 17.

Base64 encode/decode was the simplest one. Python has it built in with the base64 module, so it was mostly about building a clean submenu and making sure the output was readable instead of raw bytes. Same pattern as the encryption tool, encode() on the way in and decode() on the way out.

The JSON formatter took a bit more. It reads a file path from the user, opens it, parses the JSON, and prints it back with 4-space indentation. The important part was wrapping the whole thing in a try/except — if the file doesn’t exist or the JSON is malformed it gives a clear error message instead of crashing. Something I’ve been doing more naturally now without thinking about it.

Text case converter was probably the most fun. UPPER and lower are trivial, Title Case is one method call, but camelCase and snake_case required actually thinking through the logic, split by spaces, transform each word, join with different separators. Doing snake_case first made camelCase easier to see.

19 hours in. Still have regex tester, lorem ipsum, process killer, and menu polish left before this is ready to ship.

0
0
8
Open comments for this post

2h 1m 46s logged

The network section kept growing faster than I expected.

After the ping checker and IP viewer, I added a port checker. You provide a host and a port, and it tries to connect with a 3-second timeout. It tells you if the port is open or closed. It’s simple, but I actually use this. It’s much quicker than Googling “how to check if port X is open” every time. I had to wrap it in try/except because if the port is closed, the connection throws an exception and crashes everything. I learned that the hard way.

Building the IP scanner was the most satisfying part. It grabs your local IP and removes the last number to get the network prefix. Then, it pings every address from 1 to 255. The first version printed the full ping output for every single address, resulting in 255 walls of text. I fixed this by switching from os.system to os.popen, which allowed me to capture the output and show only the IPs that actually replied. I ran it on my network and discovered 5 devices. One of them I didn’t even know was connected.

Now, I have 15 tools total. The network section is done.

0
0
3
Open comments for this post

3h 12m 37s logged

The security section is done, network tools are in, and the program now handles admin privileges on its own.The security section is done, network tools are in, and the program now handles admin privileges on its own.
For the network side I added two things. A ping checker that sends 4 packets to whatever host you type in, and an IP viewer that shows your local IP using Python’s socket module and your public IP by calling curl ifconfig.me. Both are things I actually use all the time and was tired of opening a separate terminal for.
The firewall assistant checks if all three Windows profiles are active and whether port 3389 is exposed. That last one matters — leaving Remote Desktop open is one of the most common security mistakes on Windows machines.
The self-elevation part was probably the most satisfying to figure out. Some tools need admin rights to work properly, and instead of making the user remember to right-click and run as admin, the script checks on startup and relaunches itself elevated if needed. My machine has auto-UAC so I don’t see the popup, but it works.
14 tools now. Ready to submit.

0
0
3
Open comments for this post

3h 49m 17s logged

The toolkit kept growing faster than I expected. After the first batch of tools, I started getting into stuff I hadn’t touched before — cryptography, QR codes, and digging into Windows internals.
First I added the QR code generator. Honestly easier than I thought — create a QRCode object, feed it data, save the image. Done in a few lines.
Then I moved into the security section, which ended up being the most interesting part of this devlog. The password strength checker evaluates five criteria and returns a rating. The vulnerability scanner reads a .py file and flags dangerous patterns like eval(), exec(), and pickle.loads() — each one is a separate if so it catches everything, not just the first issue it finds.
The encryption tool was the trickiest one. I used Python’s cryptography library with AES via Fernet. The user’s key gets hashed with SHA-256 to get a proper 32-byte key, then Fernet handles the rest. The annoying part was the output — Python was printing b’…’ around the encrypted string which broke the decryption input. Fixed it with .decode().
The firewall assistant uses netsh advfirewall to check if the firewall is active on all three Windows profiles and whether Remote Desktop port 3389 is open. Something I’ll actually use.
13 tools now. Security section is done.

0
0
5
Open comments for this post

1h 8m 25s logged

ZeroG-KIT started as a simple idea — instead of opening a bunch of different tools or googling converters every time, why not have everything in one place from the terminal?
The name comes from zero gravity, no resistance, no friction, things just flow.
I built the main menu first, a while loop with a bordered ASCII interface to keep it clean. From there I added the first batch of features. A temp file cleaner that wipes %TEMP%, Windows\Temp, and Prefetch in one go, a clipboard viewer, and a batch image converter using Pillow that handles format issues like RGBA to JPG automatically.
For the utilities side I added a password generator using Python’s secrets module for actual cryptographic randomness, a SHA-256 text hasher, and a full unit converter covering temperature, weight, length, and data size. Those live in a separate utilities.py to keep the main file readable.
6 out of 6 planned tools are working. Next up is system info and some polish.

0
0
5

Followers

Loading…