It’s definitely pretty complicated to get my version working, since it was made after endless vibe-coding attempts (I’m not a programmer either, so yeah). For the first part of development I used ChatGPT, and for the final phases I switched to Cursor — which, honestly, I’d recommend using from the start, and I’d also recommend it to anyone like me who wants to improve the app without actually having the skills to do it.
These factors made it basically impossible to cover every single thing you need to consider when installing it “from scratch” (though I still think that, with Cursor’s help, it can be done).
That said, the folder structure is super simple:
inside each folder you can drop whatever related content you want (the file names don’t matter — just don’t rename the folders themselves unless you also edit the code). StrokeGPT grabs the contents based on each panel’s settings: loop/no loop, random/no random, etc.
“Botselfie” is the folder that contains the bot’s profile picture; in my version the profile image is placed on the left side of the screen and scaled up.
For the multimedia formats, just stick to the folder names.
JPG and similar go in images
GIFs go in gif
MP3s go in audio
Videos go in video.
Botselfie should be able to read images, videos, and GIFs.
Just drag your files into the right folders, restart the app, and you’re good to go.
After releasing that version, I kept working on the app a little on my own using Cursor.
I managed to expand the folder system for multimedia files by adding a hint/clue system.
Basically, even if it’s kinda rough, the bot detects certain words or “actions” you describe in chat, and based on that it plays specific media from additional subfolders. Each subfolder is one hint.
Example:
“I wanna kiss you” (where kiss is a hint).
The bot goes to: static → updates → hint (custom folder linked in the code) → kiss (subfolder) and then plays a random file from inside it.
I did the same thing for audio too, just like you suggested.
Honestly it’s harder to explain than to understand in practice lol.
Before anyone asks: no, I’m not releasing that version. I seriously don’t feel like updating GitHub again, cleaning the build, removing personal API keys, etc.
Everything was made with ZERO coding experience and Cursor.
Hope this answers your questions — and I hope you’ll drop an improved version yourself 