HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
xguot
zsweep
Svelte2026–2026
xguot / zsweep

zsweep

Minimalistic minesweeper with Vim support

2Distinct people
10Mentions
1Explicit recommenders
65GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Minimalistic minesweeper with Vim support

GitHub

Where it is used

No documented product use has been verified yet.

What people are saying

I built this Website mainly because I love playing minesweeper and vim. Making a minesweeper keyboard-driven seems like the correct logic for me. https:zsweep.com…

x-guo used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by week10 dated mentions

Observed mentions: 2026-01-13 03:20:12 UTC to 2026-03-22 04:31:39 UTC. Weeks start Monday, UTC.

0123452026-01-12 00:00:00 UTC to 2026-01-19 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 commentsJan 122026-01-19 00:00:00 UTC to 2026-01-26 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-26 00:00:00 UTC to 2026-02-02 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-02 00:00:00 UTC to 2026-02-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-09 00:00:00 UTC to 2026-02-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 commentsFeb 92026-02-16 00:00:00 UTC to 2026-02-23 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-02-23 00:00:00 UTC to 2026-03-02 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments2026-03-02 00:00:00 UTC to 2026-03-09 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-09 00:00:00 UTC to 2026-03-16 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2026-03-16 00:00:00 UTC to 2026-03-23 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 commentsMar 16

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
Jan 122026-01-12 00:00:00 UTC2026-01-19 00:00:00 UTC514
Jan 192026-01-19 00:00:00 UTC2026-01-26 00:00:00 UTC101
Jan 262026-01-26 00:00:00 UTC2026-02-02 00:00:00 UTC000
Feb 22026-02-02 00:00:00 UTC2026-02-09 00:00:00 UTC000
Feb 92026-02-09 00:00:00 UTC2026-02-16 00:00:00 UTC000
Feb 162026-02-16 00:00:00 UTC2026-02-23 00:00:00 UTC000
Feb 232026-02-23 00:00:00 UTC2026-03-02 00:00:00 UTC211
Mar 22026-03-02 00:00:00 UTC2026-03-09 00:00:00 UTC000
Mar 92026-03-09 00:00:00 UTC2026-03-16 00:00:00 UTC000
Mar 162026-03-16 00:00:00 UTC2026-03-23 00:00:00 UTC211

What Hacker News says

10 sources
Hi HN, I’m the creator of zsweep. It’s a keyboard-centric Minesweeper clone where you play entirely using Vim motions (h, j, k, l to move; w/b to skip words; etc.). The Backstory: I wanted to build a project to get my hands dirty with Svelte 5 and the new Runes system. I also wanted a way to practice Vim muscle memory that wasn't just typing code. Tech Stack: Frontend: Svelte 5 (Runes) + SvelteKit Styling: Tailwind CSS State: Custom Finite State Machine (FSM) for the game logic The Challenge: One of the hardest parts was getting the "chording" logic right (where you clear multiple squares at once) while keeping the keyboard navigation feeling instant and "vim-like." It’s open source, so if you’re curious about how Svelte 5 handles game state, feel free to poke around the code: https://github.com/oug-t/zsweep I’d love to hear your feedback
Read the rest
on the controls or any edge cases you find!
In Show HN: Zsweep – Play Minesweeper using only Vim motions
I built zsweep because I wanted a Minesweeper experience that respected "Vim grammar" rather than just mapping arrow keys to HJKL. I found that using a mouse for grid navigation broke my flow state during quick breaks, so I engineered this to be 100% keyboard-centric. Technical Highlights: Vim Grammar Engine: I implemented a custom state machine to handle complex motions. This includes quantifiers (e.g., 5j), search (pressing / plus a number to jump to that digit), and context-aware word motions (w/b) that intelligently skip over revealed safe cells to land on unrevealed ones. Svelte 5 & Performance: Built with SvelteKit using the new Svelte 5 runes. This was critical for ensuring zero-latency input handling—if the movement doesn't feel as snappy as a native terminal, the "Vim feel" is lost. Backend & Stats: Powered by Supabase. I recentl
Read the rest
y had to refactor the global stats dashboard to move from client-side counting to server-side aggregation (RPC). I hit a common "gotcha" where standard selects were capping at 1,000 rows, causing our total time sweeping to drift. It now correctly reflects our full database aggregate. Security: Leveraging Row Level Security (RLS) policies to ensure users can only modify their own game results while keeping the global leaderboard public. Why I'm Sharing Today: We recently hit 1,000+ active users, and I’m looking for technical contributors to help polish the experience. I’ve opened issues on GitHub regarding sound system customization and performance optimizations for the larger 30x16 grids. Play it here: https://zsweep.com Open Source Repo: https://github.com/oug-t/zsweep
In Show HN: Zsweep – A Vim-optimized Minesweeper built with SvelteKit
I built ZSweep because I wanted a Minesweeper experience that actually respects Vim grammar, not just a remapping of arrow keys to HJKL. Using a mouse for grid navigation kept breaking my flow during short breaks, so I set out to design a game that is 100% keyboard-centric, where movement and actions feel composable in the same way Vim motions do. Technical highlights: Vim grammar engine: A custom state machine handles real Vim-like motions, including numeric prefixes (5j), search (/ + digit to jump to that number), and context-aware word motions (w / b) that skip revealed safe cells and land on unrevealed ones. Svelte 5 & performance: Built with SvelteKit using the new Svelte 5 runes. Input latency was a hard constraint—if movement doesn’t feel as immediate as a terminal editor, the Vim feel completely falls apart. Backend & stats: Power
Read the rest
ed by Supabase. I recently refactored the global stats dashboard from client-side counting to server-side aggregation (RPC) after hitting the classic 1,000-row select cap, which caused total time-swept stats to drift. Aggregates now reflect the full dataset correctly. Security: Uses Row Level Security (RLS) so users can only modify their own game results, while keeping the global leaderboard public. Why I’m sharing now: The project has crossed 1,000+ started games, and I’m looking for technical contributors to help polish the experience. I’ve opened GitHub issues around sound system customization and performance optimizations for larger boards (e.g. 30×16). Play: https://zsweep.com Source: https://github.com/oug-t/zsweep
In Show HN: ZSweep – A keyboard-first Minesweeper inspired by Vim

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.