---
title: "Projects - EDM115"
canonical_url: "https://edm115.github.io/website/website/projects"
last_updated: "2026-08-20T22:17:58.080Z"
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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/unzip-bot.webp)unzip-bot](https://edm115.github.io/website/projects/unzip-bot)

[<h3>unzip-bot</h3>

unzip-bot](https://edm115.github.io/website/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.github.io/website/unzip) [Open in GitHub](https://github.com/EDM115/unzip-bot)

---

[![](https://edm115.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/monorepo-hash.webp)monorepo-hash](https://edm115.github.io/website/projects/monorepo-hash)

[<h3>monorepo-hash</h3>

monorepo-hash](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/spendly.webp)Spendly](https://edm115.github.io/website/projects/spendly)

[<h3>Spendly</h3>

Spendly](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/miniproto.webp)miniproto](https://edm115.github.io/website/projects/miniproto)

[<h3>miniproto</h3>

miniproto](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/mpgram.webp)MPGram](https://edm115.github.io/website/projects/mpgram)

[<h3>MPGram</h3>

MPGram](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/unrar-alpine.webp)UnRAR Alpine](https://edm115.github.io/website/projects/unrar-alpine)

[<h3>UnRAR Alpine</h3>

UnRAR Alpine](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/better-maps.webp)Better Maps](https://edm115.github.io/website/projects/better-maps)

[<h3>Better Maps</h3>

Better Maps](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/skills.webp)skills](https://edm115.github.io/website/projects/skills)

[<h3>skills</h3>

skills](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/thoughts.webp)THOUGHTS](https://edm115.github.io/website/projects/thoughts)

[<h3>THOUGHTS</h3>

THOUGHTS](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/codex-usage-tool.webp)Codex usage tool](https://edm115.github.io/website/projects/codex-usage-tool)

[<h3>Codex usage tool</h3>

Codex usage tool](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/cline-usage-tool.webp)Cline usage tool](https://edm115.github.io/website/projects/cline-usage-tool)

[<h3>Cline usage tool</h3>

Cline usage tool](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/website.webp)edm115.dev](https://edm115.github.io/website/projects/website)

[<h3>edm115.dev</h3>

edm115.dev](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/edm115-ohmyposh-theme.webp)EDM115's OhMyPosh theme](https://edm115.github.io/website/projects/edm115-ohmyposh-theme)

[<h3>EDM115's OhMyPosh theme</h3>

EDM115's OhMyPosh theme](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/palex.webp)palex](https://edm115.github.io/website/projects/palex)

[<h3>palex</h3>

palex](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/js-imports-sort.webp)js-imports-sort](https://edm115.github.io/website/projects/js-imports-sort)

[<h3>js-imports-sort</h3>

js-imports-sort](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/booleanfix.webp)booleanfix](https://edm115.github.io/website/projects/booleanfix)

[<h3>booleanfix</h3>

booleanfix](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/random-algorithm.webp)random\_algorithm](https://edm115.github.io/website/projects/random-algorithm)

[<h3>random\_algorithm</h3>

random\_algorithm](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/edm115-lint.webp)edm115-lint](https://edm115.github.io/website/projects/edm115-lint)

[<h3>edm115-lint</h3>

edm115-lint](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/light-odometer.webp)light-odometer](https://edm115.github.io/website/projects/light-odometer)

[<h3>light-odometer</h3>

light-odometer](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/senescalade.webp)Senescalade](https://edm115.github.io/website/projects/senescalade)

[<h3>Senescalade</h3>

Senescalade](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/bulk-youtube-download.webp)Bulk /(YouTube|Video)/ Downloader](https://edm115.github.io/website/projects/bulk-youtube-download)

[<h3>Bulk /(YouTube|Video)/ Downloader</h3>

Bulk /(YouTube|Video)/ Downloader](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/vgm-khi-download.webp)VGM KHI download](https://edm115.github.io/website/projects/vgm-khi-download)

[<h3>VGM KHI download</h3>

VGM KHI download](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/shared-files.webp)Shared files](https://edm115.github.io/website/projects/shared-files)

[<h3>Shared files</h3>

Shared files](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/dotfiles.webp)dotfiles](https://edm115.github.io/website/projects/dotfiles)

[<h3>dotfiles</h3>

dotfiles](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/web-logs.webp)web logs](https://edm115.github.io/website/projects/web-logs)

[<h3>web logs</h3>

web logs](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/markdown-syntax-fr.webp)Markdown Syntax FR](https://edm115.github.io/website/projects/markdown-syntax-fr)

[<h3>Markdown Syntax FR</h3>

Markdown Syntax FR](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/useful-stuff.webp)Useful stuff](https://edm115.github.io/website/projects/useful-stuff)

[<h3>Useful stuff</h3>

Useful stuff](https://edm115.github.io/website/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.github.io/website/_ipx/q_50&blur_5&s_150x150/img/projects/the-very-restrictive-license.webp)The Very Restrictive License](https://edm115.github.io/website/projects/the-very-restrictive-license)

[<h3>The Very Restrictive License</h3>

The Very Restrictive License](https://edm115.github.io/website/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)

---