UI and UX improvements for 42 Intra v3: logtime calendar, cluster map tools, custom profiles, shortcuts, friends widget, and more.
To install this extension, click the buttons below or visit the Releases page.
βοΈ marked features require cloud sync / 42 sign-in.
Replaces the default logtime view with a monthly calendar showing your logged hours at a glance.
- Monthly calendar β each month shows your hours as a colour-coded grid. Darker means more hours per day. See weekly totals on the right.
- Scroll through months β click and drag, or use your mouse wheel.
- Goal tracking β set a target (default 140h/month). See a progress bar, your percentage, and remaining hours on hover.
- Daily average β average hours per active day.
- Last active label β shows when you were last seen. Choose between a date, "2 days ago", or both.
- Emoji mode β pick an emoji and set how much it's "worth". Track your earnings with a monthly cap.
- Custom colours β pick your own accent colour for the calendar and labels.
- Animations β smooth progress bar animation; can be turned off.
- Directional markers β small arrows on the cluster map showing which way each seat faces. Works for Belgium clusters (shi, fu, mi, a1, a2). Toggle on/off from the cluster tab bar.
- Cluster picker β a dropdown on the cluster tab bar to quickly switch clusters, with a markers on/off button.
- Default cluster β set your preferred cluster and it loads automatically when you open the page.
- Custom visuals β set your own avatar, banner, and background images. Click your avatar on your profile page to open the customisation panel. See a live preview as you type the image URL.
- Visuals sync β your custom images are visible to other Better Intra users when they view your profile. Click any custom avatar to see the original one. βοΈ
- Instant profile visuals β custom avatars, banners, and backgrounds are cached locally. After the first visit they appear instantly on any profile. Changes refresh silently in the background.
- Dashboard cards β reorder your profile cards (Logtime, Agenda, Evaluations, Projects, Achievements) by dragging them. Hide cards you don't need.
- Profile card β animated level bar with a wave effect, coloured to match your preference.
- Event filtering β filter your agenda by campus and event type (e.g. exams, pedagogy, social).
- Slots redirection β the "Manage slots" button takes you to the correct slots page.
- Achievement milestones β completed achievements get a subtle animated glow.
- Completed projects (marks) β the Projects card lists all your graded projects with dates and scores. Multi-attempt projects expand to show each attempt. Sort by newest or oldest first. Projects flagged "Outstanding" during evaluation get a β next to their name β visible on any user's profile. βοΈ
- Projects sort β sort the projects list on any user's profile by name or date, with toggleable ascending/descending order.
- Freeze alerts β a freeze card appears on profiles of frozen students.
- Clickable seat label β click someone's seat on their profile to open the cluster map with their seat highlighted and pulsating.
- Thursday Roulette β a dashboard card showing the current profile's roulette win history, total points, and a live countdown to the next Thursday 8:00 draw. Works on any user's profile. βοΈ
- Moulinette robot icons β on project corrected pages, the default moulinette image is replaced with a robot icon (normal for passed, broken for failed).
Quick-access links shown as colourful buttons on your profile page.
- Up to 8 links, each with a name, URL, custom colour, and optional emoji.
- Buttons show the site's icon automatically if you don't set an emoji.
- Text colour (black or white) is chosen automatically for readability.
- Drag to reorder β drag the preview buttons in the settings panel to rearrange your links.
- Hide important links β optionally hide the default Intra navigation links to give shortcuts the full width.
- Alignment β when important links are hidden, align your shortcuts left, center, or right.
- Set them up in the settings panel.
Discord DM notifications when your evaluations change state.
- Discord DMs β receive alerts in your DMs via the Better Intra bot when an evaluation is booked or when correcteds are revealed. Connect your Discord account from the Evaluations hub tab β auto-joins Le Bassin server to enable direct messages.
- Quiet hours β pause Discord notifications during specified hours (e.g. 22:00 to 08:00) so you're not disturbed at night.
- State tracking β automatically alerts you via Discord DM when an evaluation is booked or when correcteds are revealed.
- Configure from the Evaluations tab in the Settings Hub.
- Dark / Light / System β choose your preferred theme for the extension UI. Follows your system setting automatically when set to "System".
- Set from the Settings Hub or the extension popup.
- Authenticate with your 42 Intra account via OAuth through the Cloudflare Worker.
- Push β upload all local settings to the cloud.
- Pull β download and apply settings from the cloud to this device.
- Auto-sync β toggle automatic cloud sync on save.
- Disconnect / Wipe All Data β logout or erase all cloud-stored data.
- Share visuals β synced avatar, banner, and background become visible to other Better Intra users viewing your profile.
- Account panel is in the extension popup (click the extension icon).
A friends panel accessible from a button in the bottom-right corner of the page.
- Add friends by login using the input at the bottom of the panel.
- See each friend's avatar, level bar, wallet, correction points, and online status.
- Click a friend's location badge to open the cluster map with their seat highlighted.
- Sort by: online status, name, level, wallet, or evaluation points.
- Medal borders β the top 3 friends (by chosen sort order) get gold, silver, and bronze borders.
- The button shows a badge with the number of friends currently online.
- Data refreshes every 30 seconds; tap the refresh button to force an update.
- All extension settings in one place.
- Click the gear icon on the intra sidebar to open it.
- Tabs: Logtime, Clusters, Profile, Shortcuts, Evaluations, About.
- Turn features on/off individually, or reset a feature's settings to default.
| Logtime | Profile | Shortcuts |
|---|---|---|
![]() |
![]() |
![]() |
Go to about:addons in Firefox, find Better Intra and click Remove.
This is a personal project. It modifies the appearance of 42 Intra and adds UI improvements (logtime tracking, shortcuts, etc.). It can break at any time due to intra code changes. Use at your own risk.
- TypeScript (Core logic)
- Vite (Bundler & asset pipeline)
- DaisyUI & Tailwind CSS (UI components & settings modal)
- GitHub Actions (CI/CD for automated builds, versioning, and changelogs)
- Gemini and Copilot Student (Documentation & Optimization)
- Cloudflare Workers, KV & D1 (Serverless backend for cloud sync, eval tracking & notifications)
better-intra-worker/β separate Cloudflare Worker handling cloud sync, evaluation state tracking, project map, and Discord bot- 42 API (OAuth2) (Secure user identification and authentication)
- Discord API (Bot for evaluation notifications)
- OpenCode + DeepSeek V4 Pro (AI coding agent)
- Font Awesome (SVG icons)
- 42 logo from Wikimedia Commons
- Robot icons from Wikimedia Commons (normal and broken)
- Intra v2 dark mode from Improved Intra
| Browser | Support | Note |
|---|---|---|
| Firefox | β | Main target |
| Chrome | β | Supported |
| Brave | β | Supported |
See the full Privacy Policy.
- All settings are stored locally via
chrome.storage.local. Nothing is sent anywhere unless you explicitly enable cloud sync. - Cloud sync (optional): your settings are stored in a Cloudflare Worker KV under a hash of your login, so they can be synced across devices. The worker retains invocation logs for debugging (not used for tracking).
- Friends widget (optional, requires cloud sync): friend logins are stored locally and also included in your synced settings in KV. The worker additionally caches friend user IDs and online status in KV to reduce 42 API calls.
- Logtime data is read from the intra page directly β it never leaves your browser.
- Other users' profiles: when visiting another user's profile, their public custom visuals (avatar, banner, background) are fetched from the Cloudflare Worker if they use Better Intra. No data is sent to third parties.
- Permissions requested:
storage(save settings),activeTab(interact with 42 Intra pages), and access to the extension's Cloudflare Worker for optional sync features. No analytics, tracking, or advertising.
See DEVELOPMENT.md.


