Every competition, one native Mac app.
Competitive programming rounds, AI challenges, CTFs, hackathons, and design contests - found, sorted, and waiting in your menu bar. Vietnam-first, global always.
brew install --cask nhannht/tap/ncomphuntRequires macOS 26 or later - signed with Developer ID, notarized by Apple
The engine
Eight sources in. One list out.
CTFtime, Devpost, Codeforces, MLContests, ybox.vn and more are fetched in parallel, deduplicated, and indexed into a single native list you can actually work through.
- Every refresh fans out to all sources at once
- Duplicates collapse by normalized URL
- A failing source is skipped, never fatal
Menu bar extra
The next deadline, one click away.
A menu bar extra keeps the upcoming contests within reach all day. Skim what is closing soon and get back to work - no window, no dock switch.
- Lives in the menu bar, always one click away
- Live countdowns on the nearest deadlines
Calendar sync
Deadlines that keep themselves up to date.
Turn on sync and every tracked deadline lands in a dedicated Apple Calendar. When an organizer moves a date, the event moves with it.
- A dedicated nCompHunt calendar, reconciled on every refresh
- Changed deadlines update in place
- Or add a single contest as an .ics import
Notifications
Know the moment something new lands.
Background refreshes keep hunting while you work. When new competitions are found, a native macOS notification tells you - that is the whole interaction.
- Native notifications for new finds
- Optional, and requested only when you turn them on
Actions
Right-click is a command center.
Everything you do with a contest hangs off its row. Open the page, share it, copy the link, put it on the calendar, or file it into YouTrack.
- Open, share, and copy from any row
- Add to Calendar as an .ics import
- Track in YouTrack when it is configured
Widget
Glanceable from the desktop.
An Upcoming Contests widget for the desktop and Notification Centre, in small and medium sizes, with a live countdown on what is next.
- Small and medium sizes
- Counts down, rotates in the next contest
Filter, sort, group
A list that bends to how you triage.
Category and region filters, sort by deadline or first seen, group to see the week at a glance - in a real SwiftUI window that feels at home on macOS.
- Six categories, two regions, one click each
- Sort and group from the toolbar
Details
And the parts you only notice later.
Native SwiftUI
Swift 6, SwiftData, a real Mac window. Not a wrapped web page.
Sandboxed and notarized
Every build is sandboxed, signed with a Developer ID, and notarized by Apple.
No account, no cloud
The index lives in local storage on your Mac. There is nothing to sign in to.
Keys in the Keychain
Optional API keys are stored in the macOS Keychain and sent only to their own service.
YouTrack filing
Decided to enter? One action files the contest as an issue in your YouTrack.
MIT licensed
Free and open source. Read the code, build it yourself, or just use it.
Sources
Working the moment you open it. No setup, no account.
Six sources populate the app out of the box. Every source has an on/off switch, and one that fails or is unconfigured is simply skipped - it never stops the rest of a refresh.
- CTFtimethe worldwide CTF calendar
- Devpostglobal hackathons
- Codeforcesupcoming CP rounds
- MLContestsopen AI and ML challenges
- ybox.vnVietnamese contests
- Contest Watcherscreative and design
- clist.byhundreds more contests
- Brave Searchweb discovery
- Google Programmable Searchweb discovery
The dimmed lane unlocks with your own free API keys, stored in the macOS Keychain and sent only to the service they belong to.
ybox.vn brings the Vietnamese design, scholarship, and general-interest lane. On top of that, nCompHunt recognizes Vietnamese technical contests even when they arrive from global aggregators under an English title and a non-.vn host - so the Vietnam filter actually means something.
Recognized brands
One region filter, two worlds: everything, or just what matters at home.
Screenshots
Have a look around.
Drag, or let it drift. It loops.

Arrives when you come back, never on a timer.

Filters, list, and detail in one native split view.

Type a sentence, the on-device model offers the filter.

Hackathons to CTFs, sorted on device.

Codeforces, CTFtime, ybox, and more in one list.

Foreign-language contests, one click from readable.

On-device translation, original a toggle away.

Interested, applied, joined, done.

Reminders a day and an hour before.

Marked, by kind, by source, at a glance.

Arrives when you come back, never on a timer.

Filters, list, and detail in one native split view.
The app fetches listings straight from the sources and keeps its index on your Mac. It works with no account and no setup. The entire codebase is public, so you do not have to take our word for any of it - read it, build it, change it.