Neuroscience student at the University of Minnesota and co-founder of Hitogai. I build free, open-source software that does one job well and stays out of your way: native Mac apps in Swift, command line tools and MCP servers for coding agents, and tools for neuroscience data.
I like working close to the platform: Carbon hotkeys, the App Sandbox, the Keychain, SQLite's C API, libproc, Disk Arbitration, the Language Server Protocol, raw HDF5 and WebGL2 with hand-written shaders.
wyattstanczyk.com · Public roadmap · LinkedIn
19 free projects, all MIT licensed, with zero or near-zero dependencies and no tracking.
| Project | What it does | Runs on | |
|---|---|---|---|
| LatchLayout | Hold a key to open apps, browser profiles and URLs in saved display layouts | Windows 11 x64 preview | |
| Copy 2FA | Copies the newest 2FA code with one shortcut | macOS, Windows | |
| Show Desktop | Hides every window and brings them back exactly | macOS | |
| Who Stole My Focus | Names the app that jumps in front while you type | macOS, Windows | |
| AI Footprint | Shows what AI coding tools leave on your Mac | macOS | |
| Memo Export | Voice Memos transcripts as Markdown | macOS | |
| Podcast Export | Apple Podcasts shows and history, exported | macOS | |
| Reading List Export | Safari Reading List as Markdown, bookmarks and CSV | macOS | |
| Unblock Eject | Shows what's keeping a disk from ejecting | macOS | |
| Next Departures | Live bus and train times in the menu bar | macOS | |
| Right Folder | Open and Save dialogs, in the right folder | macOS | |
| Tonecap | Design your keyboard's sound, no recordings | macOS, web | |
| SciLook | Quick Look for NWB, HDF5, MATLAB and NumPy files | macOS | |
| mulligan | Undo for coding agents, shell commands included | macOS, Linux | |
| symbolhop | Go-to-definition and references for coding agents | Node 20+ | |
| brainhound | Search and read public neuroscience data from your agent | Node | |
| dropslice | Open NWB, HDF5, MATLAB, NumPy and Zarr files in the browser | web | |
| 🌸 | Openfume | An open fragrance database: search, a quiz and recommendations that explain themselves | web |
| 🌐 | wyattstanczyk.com | My site: raw WebGL2 with hand-written shaders | web |
Hold a keyboard key or mouse button to open a whole workspace: applications, browser profiles and URLs, on the displays and window layouts you choose. The visual editor uses a blue Aero-inspired theme, lives in the tray while listening, and quits completely when you ask it to. C#/.NET 10, MIT licensed, with a self-contained Windows 11 x64 preview.
Download v0.2.0 · Source and setup · Verification and limits
30 local checks include actual window restoration on two displays and Chrome tests in an isolated temporary profile. No key logging, telemetry, administrator requirement, startup task, or application-owned network client. An unsigned early preview; physical input delivery and mixed-DPI hardware remain unverified.
Small, private menu bar apps for macOS. Each one is free and open source with zero dependencies. All but Next Departures have no internet access, and it connects only to the transit feeds you use. What's coming next is on the public roadmap.
Copies the newest verification code from Mail or Messages, or from a built-in TOTP/HOTP authenticator, with one keyboard shortcut. Swift 6 on macOS 14+, zero dependencies, plus a C#/.NET port for Windows.
- No network entitlement. It runs in the App Sandbox, and CI inspects the built app with
codesignon every push and fails if a network entitlement ever appears. - No Accessibility permission. The global shortcut uses Carbon's
RegisterEventHotKey, and Mail is driven over Apple Events after checking consent withAEDeterminePermissionToAutomateTarget. - Parsers written from scratch: a
typedstreamdecoder for message bodies inchat.db, opened read-only through the SQLite C API, and a protobuf wire-format reader for Google Authenticator exports. They live in a pureCopy2FACoretarget that is stress-tested with thousands of damaged inputs. - Secrets stay on the Mac. OTP keys live in a non-synced Keychain item behind Touch ID, codes are computed with CryptoKit HMAC (SHA-1/256/512), and HOTP counters are saved before a code is copied.
- Clipboard hygiene.
.currentHostOnlykeeps codes off Universal Clipboard,ConcealedTypeandTransientTypekeep them out of clipboard managers, andsharingType = .nonehides the notice from screenshots and screen sharing.
The Windows+D shortcut for the Mac: one click or ⌃⇧D hides every window, and the next puts back exactly what was open. Swift 6 and AppKit on macOS 14+, zero dependencies.
- Restores the exact state. It records which apps were visible and orders them back to front from
CGWindowListCopyWindowInfo, so the second click unhides only those, leaves apps you'd already hidden alone and puts the app you were using back in front. That logic is a pureShowDesktopCoretarget with its own tests. - Works around macOS's activation rules. Hiding the frontmost app makes macOS promote the next one, so Finder is activated first and stragglers get a second pass.
- Least privilege. App Sandbox with no network or file entitlements, a single Apple Events exception for Finder (window IDs only, never user text, go into the scripts), and a Carbon hot key instead of Accessibility. CI fails the build if a network or file entitlement ever appears.
Names the app that jumps in front of your work, including in the middle of typing, from a menu bar log of every app that comes to the front. Swift 6, AppKit and SwiftUI on macOS 14+, zero dependencies. Also on Windows as a preview, with the same rules in C# and .NET 8.
- No permissions at all. Detection uses only
NSWorkspaceactivation, launch, hide and Space notifications plusCGEventSource.secondsSinceLastEventTypeidle times, which macOS gives sandboxed apps without Accessibility or Input Monitoring. CI fails the build if any entitlement besides the App Sandbox, or any event tap, AX, screen-capture or networking call, appears. - Telling steals from switches. A pure
FocusCoretarget picks the likeliest cause from input timing (a click with no typing since, the instant ⌘ comes up after ⌘Tab, a keypress in a launcher), walks a short history of recent fronts so focus returning after a password prompt or the lock screen isn't blamed, and takes a second look 0.4 s later: did you keep typing, did the Space change, did the last app quit after all. - Tested off screen. 170+ Swift Testing tests, including the system monitor fed a private
NotificationCenterand the SwiftUI log rendered from windows that are never shown. The README screenshots come from those renders.
See what AI coding tools leave on your Mac: disk per tool, background processes, orphaned MCP servers and login items, with a before-and-after receipt for every update. Read-only, sandboxed, no internet access. Swift 6, AppKit and SwiftUI on macOS 14+, zero dependencies.
- Read-only by construction. The only entitlements are the App Sandbox and a read-only list of named subfolders, never a whole tool folder, so tokens, keys and settings stay out of reach. A test fails if a whole folder is ever added, and CI fails the build if any other entitlement, network call or file read outside one reviewed file appears.
- Processes without extra access. It lists processes through
sysctl(KERN_PROC_ALL,KERN_PROCARGS2), which the sandbox allows, walks parent chains to say what keeps each one alive, and keeps only names from command lines, never arguments or environment variables. - Update receipts. A pure
FootprintCoretarget compares each check with the last one and turns version, folder size and login item changes into receipts, measuring folders withlstatso symbolic links can't lead it outside what it may read. 186 Swift Testing tests.
Memo Export: your Voice Memos transcripts, as Markdown with the audio. Timestamped paragraphs, only new memos each run, Obsidian-friendly. Read-only and sandboxed. Website
Podcast Export: your Apple Podcasts shows as OPML, and your listening history as notes, CSV and JSON. Read-only and sandboxed. Website
Reading List Export: your Safari Reading List as Markdown, bookmarks and CSV, read status included, for Wallabag, Linkding, Readwise Reader or your notes. Read-only and sandboxed. Website
Unblock Eject: see what's keeping your disk from ejecting. Every app and process with files open on the disk, a polite Quit for each, then Eject. Found through libproc, ejected through Disk Arbitration; never force-quits. Website
Next Departures: your stop's next bus and train, live, in the menu bar. Delays, cancellations and alerts from any GTFS-realtime feed, with its own protobuf decoder; ready for Metro Transit and UMN campus buses. Website
Right Folder: Open and Save dialogs, in the right folder. The folders open in Finder, recent folders and favorites beside every dialog, one click or ⌃⌥J away. A free Default Folder X alternative that uses only Accessibility. Website
Tonecap: design your keyboard's sound. Mechanical keyboard sounds made from numbers, no recordings: a Web Audio playground with shareable links and WAV export, and a menu bar app that plays your sound as you type.
Free, open-source command line tools for Codex, Claude Code, Gemini CLI and other terminal agents. Both make no network calls and have zero dependencies.
Undo for coding agents. A snapshot at every prompt and tool call, shell commands included, so you can list, diff and undo back to any point. One Swift binary for macOS and Linux that needs only git.
- Never touches your repo. Snapshots go into a separate git repository outside the project, with every inherited
GIT_*variable, global config and hook shut out. - Restore can't lose a file. It snapshots first, fails closed, and leaves alone anything it couldn't put back: ignored files, big files, nested repos.
Go-to-definition and find-references for coding agents: an MCP server and CLI that asks your language servers instead of grepping. Node 20+, no dependencies.
- Its own LSP client. It picks a server per file (clangd, pyright, gopls, rust-analyzer and more), runs several at once, and takes symbols by name instead of column.
- Measured, not guessed. On a made-up C project a function's uses came back as 10 exact lines against 59 to 77 from grep, and CI reruns the measurement.
Free tools for neuroscience data, made for labs that share NWB, HDF5, MATLAB and NumPy files.
brainhound: search and read public neuroscience data from your coding agent. One search across DANDI, OpenNeuro and NeuroMorpho, NWB files read remotely a slice at a time through its own read-only HDF5 reader, and a license and citation with every dataset. MCP server, CLI and skills. Website
dropslice: open NWB, HDF5, MATLAB, NumPy and Zarr files in your browser, with plots, images and tables. Nothing is uploaded. Built on h5web. Source
SciLook: Quick Look for scientific data on your Mac. Press Space on NWB, HDF5, MATLAB or NumPy files to see their structure and a plot. Sandboxed, no permissions, no internet access. Website
An open fragrance database, built only from brands' own published notes and open data like Wikidata and Open Beauty Facts, never copied from other fragrance sites. Search, a quiz where you pick how many questions to answer, a "find one right now" picker, a shelf for your collection, layering ideas and recommendations that explain why. A static site with an installable phone version, and your shelf stays on your device.
My personal site: Next.js 16 and React 19 with no other runtime dependencies, deployed on Vercel.
- Raw WebGL2, no 3D library. A ray-marched SDF scene in hand-written GLSL renders into half-float HDR framebuffers, followed by a post pass with bloom, ACES tone mapping and dithering.
- HDR reflections from an equirectangular environment map, decoded by a hand-written Radiance
.hdr(RGBE with run-length encoding) loader and blurred by roughness through its mip chain. - Cache Components (
"use cache"withcacheLife("hours")) for live GitHub data, and a strict Content Security Policy with security headers on every route. - Respects
prefers-reduced-motionand caps the device pixel ratio at 2.
| Languages | Swift · TypeScript · JavaScript · C# · GLSL · SQL · Bash |
| Apple | SwiftUI · AppKit · Carbon · Security · LocalAuthentication · CryptoKit · App Sandbox · Swift Package Manager |
| Web | Next.js · React · Tailwind CSS · WebGL2 · Node.js |
| Agents | MCP · Language Server Protocol · agent hooks · Agent Skills |
| Science data | NWB · HDF5 · MATLAB MAT-files · NumPy · Zarr · h5web · JavaScriptCore |
| Data and infra | Supabase (Postgres) · SQLite · Vercel · GitHub Actions · GitHub Pages |
Cards are rendered daily by a GitHub Actions workflow in this repo rather than a shared public instance.






