WSL Linker
Open-source Windows GUI + CLI that links Windows Host directories straight to the WSL 2 Linux filesystem via native directory symlinks. Born the week Google's Antigravity IDE 2.0 broke the WSL Remote workflow — built to restore zero-latency, native-Linux-speed cross-platform development on a Windows desktop.
The Context
When Google's Antigravity IDE jumped to 2.0, the entire editor surface was restructured and the standard WSL Remote Plugin workflow disappeared overnight. Developers who lived inside WSL 2 (for native Linux Git, Docker, npm performance) were suddenly stranded.
Moving the code back onto the Windows host wasn't an option — cross-OS disk access (`/mnt/c/` from inside WSL) degrades Git, Docker, and npm by up to 10×. The files had to stay on the ext4 partition; only the editor's view of them needed to change.
What I built
- Native Windows directory symlinks from any host folder straight to `\\wsl.localhost\Ubuntu-24.04\home\user\project` — zero duplication, zero latency.
- Fluent Dark Mode GUI in CustomTkinter — sleek parent-directory onboarding, live path preview that turns emerald green when ready, auto-wrapping card mappings.
- CLI proxy runner. `wsl-linker run npm install` executes the command inside the corresponding WSL directory from a Windows shell — context-drop with one verb.
- Single-file .exe via PyInstaller. Compiled inside an isolated Wine + Docker container so the host stays clean. `make build-docker` and ship.
- Safe unlinker. Uses `os.rmdir` to untether the junction without ever recursing into the WSL target — the most important line of code in the project.
What I learned
A breaking IDE update is also a product opportunity. The fix didn't need to be inside the editor — a 200-line desktop utility with the right scope unblocked the entire workflow.
Open source as scratch-your-own-itch: the tool I needed for myself ships under MIT so anyone burned by the same IDE migration can clone, fork, or redistribute the .exe.
High-calibre architecture decisions.
Technical Highlights
- Native Windows directory symlinks (mklink /D) targeting WSL 2 UNC paths.
- CustomTkinter-based Fluent Dark theme with live `<Configure>` event reflow.
- PyInstaller single-file build inside a Wine Docker container — reproducible, host-clean.
- CLI proxy that routes shell commands across the Windows ↔ WSL boundary.
Key Decisions & Rationale
Any sync-based bridge introduces a second source of truth and inevitable drift. A native directory junction is one filesystem entry, atomic, and the OS handles every read and write.
The people who need this most — designers, QA, junior devs — should not have to install Python, PyInstaller, or configure WSL path shares. Double-click and link.
By the numbers.
WSL Linker — Showcase
A look at WSL Linker in use — captures from the live product.
WSL Linker — Workspace Manager. Active registry mappings on the left, Link New Workspace flow on the right, live activity console at the bottom.


If we worked together.
I bring high-leverage product engineering and absolute operational discipline: shipping weekly, pressure-testing user inputs, and automating delivery pipelines.
VisaPros
Submitted as the capstone for the Google × Kaggle 5-Day AI Agents Intensive (2026). VisaPros is an agentic visa eligibility advisor — parses your documents once, then runs six parallel country agents (UK · Canada · US · Australia · Norway · Germany) as FastAPI microservices to evaluate your fit across every major destination simultaneously. A strategic advisor synthesises the results into a ranked migration roadmap with prioritised document gaps.