I've never been the kind of developer who obsesses over the perfect setup. Truth is, I'm just an amateur who loves tinkering — trying things, breaking them, and occasionally stumbling into something that actually clicks. A few months ago, I got tired of the constant context-switching between Windows for daily tasks and Linux for development. That's when I decided to give WSL 2 a serious try, paired with a local AI routing setup I'd been hearing about.What I ended up with genuinely surprised me. It's not perfect, but it works well enough that I want to share it — partly because I wish someone had laid this out for me when I was Googling around.This is my daily driver: an MSI Modern 14 B11MOU. Nothing flashy, just a reliable workhorse I call SILULA (yes, I name my laptops — don't judge). It's an entry-level machine I've slowly upgraded over time.
Graphics: Intel UHD Graphics (128 MB dedicated video memory)
Display: 14" Full HD (1920x1080) @ 60 Hz
External Monitor: MSI PRO MP161 E2 Portable Monitor (handy when working at the office or a cafe)
Peripherals: Logitech M550 mouse + Logitech POP Icon Keys keyboard (managed via Logi Options+)
Zoom
The 32 GB RAM upgrade is honestly the reason this dual-core i3 still feels snappy. Windows host, WSL 2, databases, multiple editor tabs — it handles all of them without breaking a sweat.The 512 GB SSD is enough for daily dev work, though I do keep an eye on storage since WSL images and project files add up quickly. If you're considering a laptop upgrade on a budget, max out the RAM first before worrying about the CPU. I talk more about this in my RAM upgrade comparison.
Host OS: Windows 11
SILULA runs Windows 11 Home Single Language — the regular release channel, nothing fancy. I keep it updated through normal Windows Update, and the recent quality improvements have made a noticeable difference in day-to-day stability.On the Windows side, I keep things minimal. Only apps that need native GUI or direct hardware access live here:
Enterprise: SAP GUI for Windows 8.00 (Patch 15) — real life includes enterprise software
After a fresh Windows install, I always run through my own post-install checklist to strip bloat and lock down privacy settings before installing anything else.
Zoom
WSL 2: Ubuntu 26.04 LTS
All development happens inside WSL 2 running Ubuntu 26.04 LTS (Resolute Raccoon) on kernel 6.6.114.1-microsoft-standard-WSL2. No custom .wslconfig — Windows 11 handles resource allocation well by default:
CPU: All 4 logical threads available
RAM: Dynamic allocation — typically 8–12 GB out of the 15 GB mapped to the VM
Storage: Sparse VHD that grows as needed
Inside the WSL environment:
Shell: GNU Bash 5.3.9
Node.js: v22.22.3 (managed via NVM)
npm: 10.9.8
Python: 3.14.4 (using uv v0.11.18 as the package manager — way faster than pip and handles PEP 668 gracefully)
Git: 2.53.0
Hermes Agent: v0.17.0 at /home/snipgeek/.local/bin/hermes
One thing that caught me off guard — Python on Ubuntu 26.04 doesn't ship pip enabled by default due to PEP 668. I panicked for a second, but uv turned out to be a happy accident. It's genuinely faster and isolates dependencies into .venv automatically. If you're torn between dual-boot and WSL, I've compared both approaches here.
Zoom
The AI Gateway: 9Router + Hermes Agent
Here's where things get interesting. I run a local AI routing gateway called 9Router on the Windows host and connect my WSL 2 tools to it.
What is 9Router?
9Router is an open-source AI routing proxy that exposes a single OpenAI-compatible endpoint (/v1). It runs on localhost:20128 and does two things exceptionally well:
RTK Token Saver: Compresses CLI tool outputs (like git diff, grep, error logs) before sending them to the LLM. I've seen 20–40% token savings without losing accuracy.
Smart Multi-Provider Combo: Falls back through a chain of providers if one hits a rate limit or runs out of quota.
My Model Configuration
I keep two combos configured:
free-tier: Routes through Kiro AI (kr/claude-sonnet-4.5, kr/glm-5) and OpenCode Free (oc/*). Handles my daily coding — for free.
9Router-Pro: Premium fallback chain (deepseek-v4-flash, gemini-3.5-flash, step-3.7-flash:free) for when the free tier gets congested.
Connecting WSL 2 to 9Router
This took me a minute to figure out. WSL 2 runs on a separate virtual network (Hyper-V bridge), so localhost:20128 from inside WSL won't reach the host's 9Router. The fix is simple — point Hermes to the WSL bridge gateway IP instead:
To find your own WSL gateway IP, run ip route show | grep default inside your Ubuntu terminal. The first entry (usually something like 172.x.x.x) is your host's IP.
Zoom
Code Editors & Tools
Since I experiment with a lot of AI coding tools, I keep several editors on Windows (they access WSL files via \\wsl.localhost\Ubuntu\):
Antigravity IDE (2.1.1) & Antigravity (2.1.4): Main agentic coding environment
Cursor (3.9.8) & Trae (3.5.60): VS Code forks optimized for AI-assisted workflows
Zed (1.8.2): For when I just need to open a file and write code fast
Kiro (0.12.333) & Qoder (1.106.3): Supplementary AI assistants
All of them point to the local 9Router endpoint as their LLM provider, which means I never worry about API quotas or usage limits during a coding session.
FAQs
1. Isn't a dual-core i3 too slow for WSL 2 and AI tools?
Not really. The heavy LLM processing happens in the cloud via 9Router's provider chain — the laptop only sends prompts and renders results. The 32 GB RAM upgrade is what keeps everything smooth.
2. Why no .wslconfig to limit WSL 2 memory?
With 32 GB of RAM and most workloads inside WSL 2, the default dynamic allocation works great. Hard-limiting WSL to 8 GB would just cause swapping and slower compilations.
3. Why doesn't pip work in WSL 2 Ubuntu 26.04?
Ubuntu 26.04 enforces PEP 668, marking system Python as externally managed. Instead of fighting it, I use uv — it's faster, respects .venv isolation, and sidesteps the restriction cleanly.
Why This Setup Works for Me
I've tried pure Linux, dual-boot, and macOS. But this Windows 11 + WSL 2 + 9Router combo hits a sweet spot. I get native Linux development via WSL, keep Windows for the apps that need it, and route everything through a local AI gateway that keeps my workflow uninterrupted.If you're an amateur tinkerer like me and you've been thinking about trying WSL 2 or setting up a local AI router, I hope this helps you skip some of the Googling I had to do.Got questions about your own setup? Drop a comment below — I'd love to hear what's working for you.