Every day at 4 PM a reel goes out on its own with the 10 projects that gained the most stars, from #10 to #1, with a chart, a simple explanation and the avatar of host Nei Maldaner (INEMA). On Sundays there's the weekly one; on the 1st, the monthly one.

gitbombando is an automatic production line for short videos. Every day at 4 PM it checks GitHub's trending projects page, picks the 10 that gained the most stars and builds a vertical reel explaining each one in plain Portuguese, with a card, a counter and a chart. It's for anyone who wants to know what's hot in tech and AI without reading English or code. The video goes out on its own to YouTube (the INEMA Tec channel, called lives4 in the system), to Nei Maldaner's Telegram bot (the "v3 bot", which reports when a run finished or failed) and to a fixed topic in the INEMA.TOOLS Telegram group. To run it, you need the INEMA machine with Python, Node, Codex, Claude Code and the HeyGen subscription.
It combines the r7ex newscast engine (which came from eventosextremospub) with its own GitHub Trending collector.
The opening leads with the day's strongest fact (the #1's number, a big tech company, a controversial project) as a headline drawn on the cover. Opening with a list ("the 10 projectsβ¦") is not allowed.
A card with the rank, the owner's photo, what it does in plain words and its stars; below it, the counter reaches the number as it's spoken, and the chart shows the star curve or the "before Γ now".
A timer at 4 PM, script and review by Claude, avatar in the HeyGen studio, publishing on lives4, a notice on the v3 bot and a post in the same Telegram topic.
Each stage saves a file in the edition's folder (edicoes/AAAA-MM-DD-top10-dia/); if one fails, Nei gets a "Failed" message on the bot with the reason.
The timer calls auto/rodar.sh at 4 PM: always the Top 10 of the day; on Sundays also the weekly one; on the 1st also the monthly one.
The Top 10 is ranked by stars gained in the period, among the projects on Trending (the page's own order mixes in other signals).
Trending: GitHub's page with the hottest projects. Snapshot: an hourly record of each project's stars. Gate: an automatic check that blocks a script that doesn't follow the standard. claude -p: Claude running on its own, with no chat. display :99: a virtual screen where HeyGen's browser opens without showing up.
A claude -p reads 18 frames of the video. A visible defect (wrong title, empty frame, swapped number) stops everything; suggestions are passed along to Nei.
It's the INEMA machine, the same one that already runs the other video systems (r7ex and eventosextremospub). On another machine, every item below has to exist.
The timers look for the project in ~/projetos/gitbombando.
git clone https://github.com/inematds/gitbombando ~/projetos/gitbombandoReading the script, cards and image cropping.
pip install pyyaml pillow numpyThe collector uses the GitHub API through gh, already logged in.
# check gh auth status
Script and review by claude -p; cover by Codex image_gen. Both through the subscription.
# check claude --version && codex --version
Rendering in Playwright's Chrome, editing in ffmpeg, inemavox's Whisper for word timing.
# install the engine and the browser cd ~/projetos/gitbombando && npm install npx playwright install chromium
Logged-in profile in ~/.cache/inemaccbot/perfil-heygen, display :99 (stack99). The avatar is generated by the studio (subscription); only the status check and the download read the API, with the HEYGEN_API_KEY from ~/projetos/openpcbotv2/.env.
# display :99 must be running systemctl --user status stack99
Publishes to the lives4 channel (INEMA Tec) with title, description and tags.
~/projetos/yt-pubx/yt-pubx canais | grep lives4~/projetos/inemavox (Whisper, timing of each word) and ~/projetos/openpcbotv3 (sending to the v3 bot).
ls ~/projetos/inemavox ~/projetos/openpcbotv3/distThe telegramtopicosindex session (Nei's account) to post in the fixed INEMA.TOOLS topic.
ls ~/projetos/telegramtopicosindex/telegram_session.sessionOnce it's on, you don't need to do anything: the video goes out at 4 PM. The steps below are for installing, testing and fixing.
The hourly snapshot builds the star curve; the 4 PM one makes and publishes the reel.
mkdir -p ~/.config/systemd/user cp auto/systemd/gitbombando* ~/.config/systemd/user/ systemctl --user daemon-reload systemctl --user enable --now gitbombando-retrato.timer gitbombando.timer # check with: systemctl --user list-timers | grep gitbomb
Collection only: it saves edicoes/teste/pesquisa/top10.json with each project's stars, description, README and growth. GB_SEM_HISTORICO=1 keeps the real history untouched.
GB_SEM_HISTORICO=1 python3 coleta/trending.py edicoes/teste dia # or semana / mes
It does everything in a test folder, without uploading to YouTube, the bot, Telegram or git. Always use ED= with a new folder: without it, the test uses the day's edition folder. With AVATAR_DE= it reuses an already-recorded avatar and doesn't spend a HeyGen generation (without it, it records a new avatar). The log is in rodada.log and the frame sheet in build/folha.jpg.
ED=edicoes/teste-1 AVATAR_DE=<avatar.mp4> \
SEM_YT=1 SEM_BOT=1 SEM_TG=1 SEM_GIT=1 GB_SEM_HISTORICO=1 auto/rodar.sh 2026-10-28 dia
When the reviewer rejects it, the video doesn't go out and the bot lets you know. If you think it's fine, publish it by hand: lives4, the v3 bot and the INEMA.TOOLS topic.
python3 gb.py publicar edicoes/<pasta>
gb.py has one command per stage; each one reads the folder's ficha.yaml and top10.json.
python3 gb.py fazer edicoes/<pasta> # all the stages below, at once python3 gb.py checar edicoes/<pasta> # script gate python3 gb.py imagens edicoes/<pasta> # cover, ranking, 10 cards python3 gb.py avatar edicoes/<pasta> # sends the speech to the HeyGen studio and waits python3 gb.py cena edicoes/<pasta> # timings + pacing + cena.js python3 gb.py render edicoes/<pasta> # video.mp4 python3 gb.py revisar edicoes/<pasta> # frame sheet + reviewer
Each edition lives in edicoes/AAAA-MM-DD-top10-dia/: rodada.log (the whole run), revisao.json (the reviewer's verdict) and build/folha.jpg (18 frames). If something fails, the v3 bot gets "Failed:" with the reason; if the reviewer rejects it, the message includes the command to publish it anyway.
tail -20 edicoes/$(date +%F)-top10-dia/rodada.log
A line with the date skips everything; with the date and the mode, it skips only that one.
echo "2026-11-02" >> auto/pular.txt # skips the whole day echo "2026-11-02 semana" >> auto/pular.txt # skips only the weekly one
DeepTutor, a personal AI tutor, came in 1st with 2,371 stars that day.


Version 1.0.0, 10/28/2026.