- JavaScript 57.9%
- Python 19.1%
- CSS 13.3%
- HTML 9.7%
| extension | ||
| recon | ||
| tools | ||
| .gitignore | ||
| README.md | ||
KodeStreaks
A browser extension that turns your KodeKloud learning into a TryHackMe-style daily-streak system — built to keep you consistent on the road to a DevOps career.
It quietly watches your real KodeKloud session and tracks the things that matter: which lessons you complete, how long you study, your daily streak, and your progress toward each certification — all stored 100% locally in your browser.
Status: working (v0.2.0). Runs on Brave/Chrome and Firefox.
Features
- 🔥 Daily streak with streak freezes (earn 1 per 15 study days; a missed day spends a freeze instead of breaking the chain)
- 🎉 Milestone celebrations at 7 / 30 / 90 / 180 / 270 / 365 days (desktop notifications)
- 🎯 Daily goal (lessons or minutes per day) with progress
- 🧭 Certification checkpoints — Terraform / CKA / AWS / Azure with exam countdowns, auto-linked to your KodeKloud courses
- 📚 Courses tab — per-lesson completion (done / in-progress / not-started)
- 🕘 Study-time tracking and an activity log with real lesson names
- 📊 Dashboard page — 30/90-day charts, "when you study" by weekday & hour
- 💾 Data safety — auto-backup, plus export / import / restore
- 🦊 Cross-browser: Brave/Chrome (MV3) and Firefox
How it works
KodeKloud's learn-api is authenticated with a Firebase Bearer token. A content
script running in the page sniffs that token off the page's own requests and
reads the relevant endpoints (start_lesson, complete_lesson, submit_mcq_answer,
course progress, profile). Events are stored in IndexedDB; everything else
(streak, averages, charts) is derived from that local log.
KodeKloud page → inject.js (page world) → bridge.js → background.js → IndexedDB → popup / dashboard
Nothing is ever sent to any server. There is no backend.
Install (development / unpacked)
Brave / Chrome
brave://extensions(orchrome://extensions) → enable Developer mode- Load unpacked → select the
extension/folder
Firefox
- Build the Firefox copy:
python tools/port_firefox.py about:debugging#/runtime/this-firefox→ Load Temporary Add-on → pickdist-firefox/manifest.json
Project layout
extension/ the extension (load this in Brave/Chrome)
manifest.json MV3 manifest
inject.js page-world fetch/XHR sniffer + token capture
bridge.js relays events to the worker + heartbeat
background.js service worker: DB, sessions, badge, milestones, backup
db.js IndexedDB wrapper
util.js shared streak / freeze logic
popup.* toolbar popup (Today / Log / Courses / Goals)
dashboard.* full-page analytics
options.* settings + data management
icons/ generated icons
tools/
gen_icons.py regenerate icons (Pillow)
port_firefox.py cross-browser alias + Firefox build
Privacy
All data stays in your browser (IndexedDB + local storage). The extension only
talks to *.kodekloud.com to read your own progress. Export your data anytime
from the popup or Options page.
License
Private / all rights reserved.