--- title: "Projects - EDM115" canonical_url: "https://edm115.dev/projects" last_updated: "2026-08-30T03:11:50.552Z" meta: description: "A list of all my interesting projects" "og:description": "A list of all my interesting projects" "og:title": "Projects - EDM115" --- Home # My projects [Find all my projects on my GitHub](https://github.com/EDM115) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/unzip-bot.webp)unzip-bot](https://edm115.dev/projects/unzip-bot) [

unzip-bot

unzip-bot](https://edm115.dev/projects/unzip-bot) A Telegram bot deployable to Heroku/VPS that can extract every archive ! With support for split archives, password protected, download from URL, file rename, thumbnail changer, ... +40k users, complete rewrite coming soon™ (been in the works for 4 years at this point), my main project. [More info](https://edm115.dev/unzip) [Open in GitHub](https://github.com/EDM115/unzip-bot) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/monorepo-hash.webp)monorepo-hash](https://edm115.dev/projects/monorepo-hash) [

monorepo-hash

monorepo-hash](https://edm115.dev/projects/monorepo-hash) A CLI tool to generate hashes for the workspaces of a monorepo, created during an intership and over-engineered afterwards for fun. [View on npmx](https://www.npmx.dev/package/monorepo-hash) [Open in GitHub](https://github.com/EDM115/monorepo-hash) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/spendly.webp)Spendly](https://edm115.dev/projects/spendly) [

Spendly

Spendly](https://edm115.dev/projects/spendly) A budget tracking webapp with tables, stats and charts. Made for my gf, my first website where you can actually signup and use it (and there's even a demo). [Demo](https://spendly.edm115.dev) [Open in GitHub](https://github.com/EDM115/Spendly) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/miniproto.webp)miniproto](https://edm115.dev/projects/miniproto) [

miniproto

miniproto](https://edm115.dev/projects/miniproto) A very fast MTProto library to interact with Telegram, written in Python with Rust speedups \[ALPHA] [Documentation](https://miniproto.edm115.dev) [View on PyPI](https://pypi.org/project/miniproto/) [View on crates.io](https://crates.io/crates/miniproto) [Open in GitHub](https://github.com/EDM115/miniproto) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/mpgram.webp)MPGram](https://edm115.dev/projects/mpgram) [

MPGram

MPGram](https://edm115.dev/projects/mpgram) Best & fastest Python Telegram framework, the reference implementation of miniproto (not started yet) [View on PyPI](https://pypi.org/project/mpgram/) [Open in GitHub](https://github.com/EDM115/MPGram) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/unrar-alpine.webp)UnRAR Alpine](https://edm115.dev/projects/unrar-alpine) [

UnRAR Alpine

UnRAR Alpine](https://edm115.dev/projects/unrar-alpine) I needed UnRAR for Alpine Linux (cf. the unzip-bot) and now other people depend on it. RAR's creator approved it ! [Open in GitHub](https://github.com/EDM115/unrar-alpine) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/better-maps.webp)Better Maps](https://edm115.dev/projects/better-maps) [

Better Maps

Better Maps](https://edm115.dev/projects/better-maps) Google Maps but there's customizable pins on the map and some filters/search. Made for my gf again, but no public version because the API ain't free. [Open in GitHub](https://github.com/EDM115/better-maps) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/skills.webp)skills](https://edm115.dev/projects/skills) [

skills

skills](https://edm115.dev/projects/skills) Skills for AI agents that I wrote because nobody else made them [More info](https://skills.sh/EDM115/skills) [Open in GitHub](https://github.com/EDM115/skills) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/thoughts.webp)THOUGHTS](https://edm115.dev/projects/thoughts) [

THOUGHTS

THOUGHTS](https://edm115.dev/projects/thoughts) A skill & Codex plugin to keep what context forgets (so your agents don't get lost) [More info](https://www.skills.sh/edm115/thoughts/thoughts) [Open in GitHub](https://github.com/EDM115/THOUGHTS) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/codex-usage-tool.webp)Codex usage tool](https://edm115.dev/projects/codex-usage-tool) [

Codex usage tool

Codex usage tool](https://edm115.dev/projects/codex-usage-tool) Visualize your Codex usage in a nice report, includes tokens used, estimated API cost, ROI, skills/plugins usage, models & surfaces breakdown and much much more [Open in GitHub](https://github.com/EDM115/codex-usage-tool) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/cline-usage-tool.webp)Cline usage tool](https://edm115.dev/projects/cline-usage-tool) [

Cline usage tool

Cline usage tool](https://edm115.dev/projects/cline-usage-tool) Visualize your ClinePass usage in a nice report, includes tokens used, estimated API cost, limits, models breakdown and much more [Open in GitHub](https://github.com/EDM115/cline-usage-tool) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/website.webp)edm115.dev](https://edm115.dev/projects/website) [

edm115.dev

edm115.dev](https://edm115.dev/projects/website) Basically the very website you're on right now. Lots of stuff custom-made for it, go dive into the code ! [Open in GitHub](https://github.com/EDM115/website) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/edm115-ohmyposh-theme.webp)EDM115's OhMyPosh theme](https://edm115.dev/projects/edm115-ohmyposh-theme) [

EDM115's OhMyPosh theme

EDM115's OhMyPosh theme](https://edm115.dev/projects/edm115-ohmyposh-theme) My very own Oh My Posh theme, which got insane traction as My Linux For Work reused it in his dotfiles. [Open in GitHub](https://github.com/EDM115/EDM115-ohmyposh-theme) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/palex.webp)palex](https://edm115.dev/projects/palex) [

palex

palex](https://edm115.dev/projects/palex) A color palette generator in JS made during my first internship, to be rewritten because it's a bit buggy. [View on npmx](https://www.npmx.dev/package/palex) [Open in GitHub](https://github.com/EDM115/palex) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/js-imports-sort.webp)js-imports-sort](https://edm115.dev/projects/js-imports-sort) [

js-imports-sort

js-imports-sort](https://edm115.dev/projects/js-imports-sort) Originally a script to sort imports the way I want, then planned to be an ESLint plugin, then OxLint plugin, but I see the Perfectionist plugin and I wonder if I should still make it... Maybe as a fun experiment/learning project ? [View on npmx](https://www.npmx.dev/package/js-imports-sort) [Open in GitHub](https://github.com/EDM115/js-imports-sort) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/booleanfix.webp)booleanfix](https://edm115.dev/projects/booleanfix) [

booleanfix

booleanfix](https://edm115.dev/projects/booleanfix) Basically a Python lib to use booleans in lowercase. Like every sane programming language. [View on PyPI](https://pypi.org/project/booleanfix/) [Open in GitHub](https://github.com/EDM115/booleanfix) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/random-algorithm.webp)random\_algorithm](https://edm115.dev/projects/random-algorithm) [

random\_algorithm

random\_algorithm](https://edm115.dev/projects/random-algorithm) What if randomness was generated from... words ? Weird but it does work, although it's slow and not really "random". [View on PyPI](https://pypi.org/project/random-algorithm/) [Open in GitHub](https://github.com/EDM115/random-algorithm) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/edm115-lint.webp)edm115-lint](https://edm115.dev/projects/edm115-lint) [

edm115-lint

edm115-lint](https://edm115.dev/projects/edm115-lint) Ready-to-use ESLint Stylistic & OxLint configs to not rewrite the same things in all my projects. [View on npmx](https://www.npmx.dev/package/edm115-lint) [Open in GitHub](https://github.com/EDM115/edm115-lint) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/light-odometer.webp)light-odometer](https://edm115.dev/projects/light-odometer) [

light-odometer

light-odometer](https://edm115.dev/projects/light-odometer) A fork of a fork so the nice stats you see on the homepage are smooth and lightweight. [View on npmx](https://www.npmx.dev/package/light-odometer) [Open in GitHub](https://github.com/EDM115/light-odometer) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/senescalade.webp)Senescalade](https://edm115.dev/projects/senescalade) [

Senescalade

Senescalade](https://edm115.dev/projects/senescalade) My very first project with Nuxt, made with 2 friends as an end-of-year school project. A complete webapp to manage members of a climbing association with every feature you might expect. [Open in GitHub](https://github.com/EDM115-org/Senescalade) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/bulk-youtube-download.webp)Bulk /(YouTube|Video)/ Downloader](https://edm115.dev/projects/bulk-youtube-download) [

Bulk /(YouTube|Video)/ Downloader

Bulk /(YouTube|Video)/ Downloader](https://edm115.dev/projects/bulk-youtube-download) A shell script that allows to download multiple videos at once. Uses yt-dlp the goat and works on Windows & Linux. Originally created as somebody asked me how to download a whole YT channel. [Open in GitHub](https://github.com/EDM115/Bulk-YouTube-Download) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/vgm-khi-download.webp)VGM KHI download](https://edm115.dev/projects/vgm-khi-download) [

VGM KHI download

VGM KHI download](https://edm115.dev/projects/vgm-khi-download) Download all songs from an album from KH Insider's Video Game Music site and select the format (if any). [Open in GitHub](https://github.com/EDM115/VGM-KHI-download) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/shared-files.webp)Shared files](https://edm115.dev/projects/shared-files) [

Shared files

Shared files](https://edm115.dev/projects/shared-files) A script made to ease the CI work at an internship I did, basically share and sync files across multiple GitHub repos automatically. [Open in GitHub](https://github.com/EDM115/shared-files) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/dotfiles.webp)dotfiles](https://edm115.dev/projects/dotfiles) [

dotfiles

dotfiles](https://edm115.dev/projects/dotfiles) Well, it's dotfiles... For Windows and Linux, with some custom scripts and even my very own Linux boot animation because why not. [Open in GitHub](https://github.com/EDM115/dotfiles) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/web-logs.webp)web logs](https://edm115.dev/projects/web-logs) [

web logs

web logs](https://edm115.dev/projects/web-logs) My discord bots spat logs, I wanted to see them in one page without SSH-ing, so here is the solution. [Open in GitHub](https://github.com/EDM115/web-logs) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/markdown-syntax-fr.webp)Markdown Syntax FR](https://edm115.dev/projects/markdown-syntax-fr) [

Markdown Syntax FR

Markdown Syntax FR](https://edm115.dev/projects/markdown-syntax-fr) A guide written in French to write Markdown, and especially GitHub Flavored Markdown. [Open in GitHub](https://github.com/EDM115/Markdown_Syntax_FR) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/useful-stuff.webp)Useful stuff](https://edm115.dev/projects/useful-stuff) [

Useful stuff

Useful stuff](https://edm115.dev/projects/useful-stuff) Random scripts and themes I made along the years that don't deserve a whole project page but still can be useful to someone. [Open in GitHub](https://github.com/EDM115/useful-stuff) --- [![](https://edm115.dev/_ipx/q_50&blur_5&s_150x150/img/projects/the-very-restrictive-license.webp)The Very Restrictive License](https://edm115.dev/projects/the-very-restrictive-license) [

The Very Restrictive License

The Very Restrictive License](https://edm115.dev/projects/the-very-restrictive-license) A weird license made for fun during a law course. [Open in GitHub](https://github.com/EDM115/The-Very-Restrictive-License) ---