Mevami is an automated system designed to scan your Clone Hero song library and generate a hosted web interface to showcase your setlist. Make it easier for you, your friends or anyone to see what songs they could play in your collection.
Mevami changes how you manage your Clone Hero library. It makes it easier to:
-
Access your library online: Look through your songs even when you aren't at your PC.
-
Save time: No more manual scrolling through thousands of songs on the Clone Hero menu.
-
Keep the party going!: Your friends can browse the setlist simultaneously, so there's no downtime between songs.
-
Filtering: Search by song title, artist, or album.
-
Instrument Difficulty Sorting: Sort your entire library based on specific instrument difficulties or intensity.
-
Guitar Hero Live support: Guitar-Live, Bass-Live, Rhythm-Live, and Guitar Co-op-Live instruments are fully recognized and displayed alongside standard instruments.
- Difficulty badges on each of the instruments: Get the difficulties available for each of the available instruments for a song simply by clicking on the instrument icon.
- Randomizer: A "Random Song" button that helps pick the next track.
-
External Links: Spotify and YouTube search buttons for every song in your catalog.
-
Video badge Identify which songs have video background.
Mevami uses the Python script generate_list.py to scan your clone hero songs folder, then creates two files: data.json (Contains all the info from the songs) and genres.json (A list of the genres from all your songs).
index.html has the code to build and display your searchable website using the generated files and the resources folder.
Theres an executable called publish (publish.sh for MacOS/Linux and publish.bat for Windows), what it does it runs generate_list.py script that creates the json files and also publish them on github, updating your website data, so each time you added new songs you just have to run this executable.
Python is a free program the scanner needs to run. More info on how to install it.
Windows
- Go to python.org/downloads and click the big Download button.
- Run the installer. Important: Before clicking Install, check the box that says "Add Python to PATH" β this is easy to miss!
- To confirm it worked, open the Start Menu, search for Command Prompt, open it, and type:
You should see something like
python --versionPython 3.x.x. If you do, you're good!
macOS
-
Before downloading anything, check if your Mac already has Python 3.
-
Open Terminal (Press Command (β) + Space and type "Terminal").
-
Type the following command and hit Enter:
python3 --version
-
Note: If it displays a version number (e.g., Python 3.12.x), youβre all set! If you get a "command not found" error, proceed to the next step.
- Go to python.org/downloads and download the macOS installer.
- Open the downloaded file and follow the steps.
- To confirm it worked, open Terminal (search for it in Spotlight with
β + Space) and type:python3 --version
Linux
Python is usually already installed. Check by opening a terminal and running:
python3 --versionIf it's not installed:
# Debian / Ubuntu
sudo apt update && sudo apt install python3
# Fedora
sudo dnf install python3
# Arch
sudo pacman -S pythonOnce Python is installed, you need to install the two libraries Mevami depends on. Open a terminal in the Mevami folder and run:
Windows:
pip install -r requirements.txt
Mac / Linux:
pip3 install -r requirements.txtThis installs mido (for reading MIDI chart files) and tqdm (for the progress bar during scanning). You only need to do this once.
π‘ Tip: If you get a "pip not found" error on Mac/Linux, try
python3 -m pip install -r requirements.txtinstead.
Before installing anything else, think about how you want to share your setlist:
| Option | Best for | What you need |
|---|---|---|
| GitHub Pages β Recommended | Sharing with friends, accessible from any device, hosted on the web, accessible from anywhere. | A free GitHub account. |
| Local server | Showing your setlist to friends at home on their phones connected to your Wi-Fi. | Python installed (you need it anyway). |
| Custom domain/server | If you already have a hosting set up. | You probably already know what to do. π |
You have two ways to go here β pick whichever feels more comfortable:
| Option | Best for | Pros | Cons |
|---|---|---|---|
| GitHub Desktop β Recommended for beginners | If you've never used Git before, or prefer clicking buttons over typing commands. | No terminal needed, easy to set up, handles authentication automatically. | Updating your setlist requires a few manual steps in the app instead of just running the publish script. |
| Git (command line) | If you're comfortable with terminals or want full control. | Updating is as simple as running the publish executable β fully automated. | Initial config (authentication, tokens) can be tricky for beginners. |
GitHub Desktop is a free app that lets you manage your Git repos with a simple visual interface β no terminal required for most tasks.
- Download it from desktop.github.com and install it.
- Open GitHub Desktop and click Sign in to GitHub.com. Log in with your GitHub account (or create a free one at github.com).
- That's it! GitHub Desktop handles authentication for you automatically β no tokens, no SSH keys. π
Note for Linux users: GitHub Desktop doesn't officially support Linux. You'll want to use the command line option below instead.
Click on your OS to see how to install it. You can also check the official guide.
Windows
- Download the installer from git-scm.com/download/win.
- Run it and click Next through all the steps β the default options are fine.
- After installing, you'll have a program called Git Bash. Use that whenever a step below asks you to open a terminal.
macOS
Open Terminal and run:
git --versionIf Git isn't installed, macOS will offer to install it automatically. Just click through the prompts.
git config --global user.name "YourGitHubUsername"
git config --global user.email "you@example.com"Linux
# Debian / Ubuntu
sudo apt update && sudo apt install git
# Fedora
sudo dnf install git
# Arch
sudo pacman -S gitCheck Github docs-Set up Git for more info on how to do this. The trickiest part is Git Authentication. I recommend using GitHub Classic Access Tokens β just be careful, because those are like passwords. Here's a video on how to do it.
You need your own personal copy of Mevami on GitHub so you can host your setlist. Pick the path that matches how you set up Git in the previous step:
-
Go to the Mevami repository page on GitHub and click the green Code button, then select Open with GitHub Desktop. This will download the project to your computer.
-
Once it's open in GitHub Desktop, go to Repository β Show in Explorer (Windows) or Repository β Show in Finder (Mac) to open the folder.
-
Delete the hidden
.gitfolder inside it β this cuts the connection to the original project:- Windows: You may need to enable "Show hidden items" in File Explorer first. Then simply delete the
.gitfolder. - Mac: Press
β + Shift + .in Finder to show hidden files, then delete the.gitfolder.
- Windows: You may need to enable "Show hidden items" in File Explorer first. Then simply delete the
-
Back in GitHub Desktop, go to File β Add Local Repository and select the folder. It will warn you that it's not a Git repository β click Create a Repository to start a fresh one.
-
Give it a name (like
mevamiormy-setlist), then click Create Repository. -
Go to GitHub.com/new and create a new empty repository with the same name. Do not check any boxes like "Initialize with a README."
-
Back in GitHub Desktop, click Publish repository (top right). Make sure the name matches what you created on GitHub, then click Publish.
- Clone the project to your computer:
git clone https://github.com/s3vro-h1/mevami.git
cd mevami- Unrelate it from the original: Delete the hidden .git folder (this wipes the connection to the original project):
-
Windows (Command Prompt):
rmdir /s /q .git -
Windows (PowerShell):
Remove-Item -Recurse -Force .git -
Mac/Linux:
rm -rf .git
- Start your own history:
git init
git branch -M main
git add .
git commit -m "Initial commit"- Connect to your own GitHub: Go to GitHub.com/new and create a new empty repository. You can name it mevami or anything else you like (e.g., my-setlist, but for that you would have to rename also the older mevami to the new name of your repo). Do not check any boxes like "Initialize with a README." Once created, run these commands in your terminal:
# Connect your local folder to your new GitHub repo
# Replace <your-username> and <repo-name> with your actual details!
git remote add origin https://github.com/<your-username>/<repo-name>.git
# Upload your files
git push -u origin mainOpen the file called config.py in a text editor (Notepad works fine on Windows). You'll see this:
SONGS_PATH = ""
OS = "LINUX"Change it to match your setup:
-
SONGS_PATHβ the folder where your Clone Hero songs are stored. Examples:System Example Windows C:/Users/YourName/Clone Hero/SongsmacOS /Users/YourName/Clone Hero/SongsLinux /home/yourname/Clone Hero/Songsβ οΈ Windows users: Use forward slashes (/) in the path, not backslashes (\). Python can misread backslashes as special characters. -
OSβ set it to"LINUX"if you're on Linux. For Windows or macOS, use"WINDOWS"or"MAC".
Your finished config.py should look something like this:
SONGS_PATH = "C:/Users/YourName/Clone Hero/Songs"
OS = "WINDOWS"Save the file when you're done.
Before moving on, let's make sure the scanner can actually find your songs. Open a terminal in the Mevami folder and run:
Windows (Command Prompt):
python generate_list.py
Mac / Linux:
python3 generate_list.pyIf it works, you'll see it scanning your library and two files will be created: data.json and genres.json. If you get an error, double-check your SONGS_PATH β a typo there is the most common culprit.
Make your setlist accessible to anyone, anywhere.
- Go to your repository on GitHub.
- Click Settings (the tab near the top of the page).
- In the left sidebar, click Pages.
- Under Source, select the
mainbranch and the/ (root)folder. - Click Save.
Your website will be live at:
https://<your-username>.github.io/<name-of-your-repo>
Note: It may take a minute or two the first time. After that, updates are much faster.
π‘ Tip: Once your URL is live, you can generate a QR code at a site like qr-code-generator.com so friends can scan their way straight to your setlist β no typing needed!
(This is how your github pages section should look like after a few minutes).
(Use this only if you don't want to use GitHub)
β οΈ I don't recommend this method. Managing your local IP address is not ideal β it can change, it's easy to mistype, and some mobile devices can be finicky about connecting to local servers. If you want to reliably share your setlist with others, go with the GitHub Pages option instead.
That said, here's how it works if you still want to use it:
This option lets you browse your setlist locally on any device connected to your WiFi β no internet or GitHub needed.
-
Open a terminal in the Mevami folder and run:
python -m http.server 8000
This starts a simple local web server that serves the files in that folder. Leave the terminal open while you use it.
-
On the same device, you can open the setlist at:
http://localhost:8000 -
To access it from another device on the same WiFi (like a friend's phone), you'll need your local IP address first. Find it with:
System Command Windows ipconfig(look for "IPv4 Address")macOS / Linux ip aorifconfigThen have them open:
http://<your-local-ip>:8000For example:
http://192.168.1.42:8000 -
When you're done, stop the server by pressing
Ctrl+Cin the terminal.
π Privacy note: This is only accessible to devices on the same WiFi network and is not reachable from the internet. Still, be mindful that anyone on your network could access it while the server is running.
As I said before, If you already have a domain for your own website, I'm guessing you already know how to do it!
Every time you add new songs to Clone Hero, just run the publish script. It will scan your library and update your website automatically.
The first time only, you need to give the script permission to run. Open a terminal in the mevami folder and type:
chmod +x publish.shThen, every time you want to update:
./publish.shJust double-click publish.bat. A window will open, do its thing, and close. Your site will update in about a minute.
-
Run the scanner. Open a terminal in the Mevami folder and run:
Windows:
python generate_list.pyMac / Linux:
python3 generate_list.py
This will regenerate
data.jsonandgenres.jsonwith your new songs. -
Open GitHub Desktop. You'll see the two updated files listed under "Changes".
-
At the bottom-left, type a short summary (e.g.,
Update setlist) and click Commit to main. -
Click Push origin (top right) to upload the changes. Your website will update in about a minute.
You can personalize your setlist page in two ways: directly from the website itself, or by editing the config.json file.
The website has a built-in Theme panel β no file editing needed. Just click the π¨ Theme button in the top bar of your setlist page. A side panel will open where you can pick colors for every part of the UI using color pickers, and see your changes live as you make them.
When you're happy with the result, click β¬ Export config.json to download a ready-to-use config.json with your chosen colors baked in. Replace the existing config.json in your Mevami folder with that file, then push the update so your hosted site reflects the new theme permanently.
π‘ Colors are also saved in your browser automatically, so your customizations persist locally even before you export.
You can also personalize your setlist page by editing the config.json file β no coding required. Open it with any text editor (Notepad, TextEdit, VS Code, anything works).
Here are some examples:
Note: I no longer have the color codes for these examples, I've lost them, sorry.
You'll find three things you can change:
| Field | What it does |
|---|---|
tabTitle |
The text shown on the browser tab |
appName |
The big title displayed at the top of the page. Wrap the part you want highlighted in <span>β¦</span> and it'll automatically pick up your primary color |
colors |
The full color palette of the site |
Inside the colors section you'll find these tokens:
| Token | What it controls |
|---|---|
primary |
Accent color β artist names, headings, active buttons, links |
song-name |
color of the name of the songs |
primaryDim |
A slightly darker accent, used for button borders and hovers |
primaryDark |
Dark tint of the accent, used for active button backgrounds |
bg |
Main page background |
surface |
Card and input backgrounds |
surface2 |
Slightly lighter surface, used for hovers and the sort bar |
border |
Lines and outlines throughout the UI |
text |
Main readable text |
muted |
Secondary/subtle text β album names, stats, placeholders |
All values are standard hex color codes (e.g. "#22d3ee"). You can pick colors from any color picker online β coolors.co or htmlcolorcodes.com are great options.
π‘ Tip:
primary,primaryDim, andprimaryDarkshould be three shades of the same color β light, medium, and dark β for the best look.
After saving config.json, how you apply the changes depends on how you're hosting:
- Locally β just refresh your browser, changes are instant.
- GitHub Pages β run the publish script or commit & push via GitHub Desktop. Your site will update in about a minute.
- Custom domain/server β upload the updated
config.jsonto your server the same way you normally deploy files.
Make it even easier for your friends to access your setlist! Just paste your website URL into this QR code generator and it will create a QR code you can print out or pull up on your phone.
I apologize if the setup guide is a bit long or has many options! I know many people visiting this page might not know anything about coding, Git, or GitHub, so I wanted to make sure everyone could get it to work. I hope the guide was clear enough.
I'm no professional web developer β I mainly know Python and like to experiment with code. The front-end was built with Claude's help, and the back-end had a few stubborn bugs I also leaned on it to sort out. This project started as something just for me, so I didn't stress too much about polish, so if you found some weird code or behavior that could explain it.
I'm sure any front-end developer could build a much better interface with smarter ways to sort and display everything β and honestly, I'd love to see it. I'm planning to study a bit more about web development and improve things over time, without using the AI agents for this.
Contributions are very welcome! If you want to improve the front-end, add features, or fix bugs, feel free to open a pull request. No contribution is too small β whether it's a design improvement, a new sorting option, or just cleaning up something that bothered you. If you're not sure where to start, the front-end is probably the area that could use the most love.
Have fun!!
This project is open-source and licensed under the GNU GPLv3. This is a copyleft license that requires anyone who distributes a modified version of this software to also make their source code available under the same license. See the LICENSE file for full details.










