An atelier of small, sharp tools

Quiet utilities for loud
real-world problems.

I build small browser extensions and tools that fix the specific frictions I run into every week — the ones generic SaaS won’t touch. Privacy-first, locally-run, and engineered with the care of a product, not a script.

02
Tools shipped
100%
Local · zero telemetry
1000+
Group size handled
~5h
Auto-warm cadence

Sharp instruments, built for one job each.

Each tool was born from a moment of friction — a workflow that should have taken seconds but didn’t exist. Below: what they do, and the problem each one quietly solves.

Tool 01 / Browser Extension

WhatsApp Roster

Build a complete roster of contacts from any WhatsApp group, your full chat list, or Business labels — and export them in the format your team actually uses.

Chrome Edge Brave Excel · CSV · vCard · JSON v2.1
Why I built it

“Every event organiser, community admin, or business owner has done this dance: scrolling through a group of 500+ members trying to copy numbers by hand. WhatsApp gives you no export. So I built one — that respects the data, runs entirely in your browser, and doesn’t touch a server.”

View on GitHub
👥

Three extraction modes

Group members (1000+ tested), all 1-on-1 chats, or WhatsApp Business labels. One click per mode.

Sources
🌍

Country chips with flags

Live filtering by country code, top countries surfaced as chips. Handles emoji, Hindi, Marathi cleanly.

Filter
📊

Four export formats

CSV (BOM-safe), native .xlsx (handwritten OOXML), vCard 3.0 for phones, and JSON for developers.

Export
🔒

Zero network calls

No API, no analytics, no remote servers. Everything runs on your already-logged-in WhatsApp Web tab.

Privacy
🏷

Rich metadata per row

Saved/Unsaved, Admin, Business, Source, Country code — not just a flat list of numbers.

Schema
Tool 02 / Browser Extension

Claude Session Warmer

Auto-starts your Claude session the moment your previous 5-hour window ends, so the timer is already live by the time you sit down at your desk.

Chrome Edge Brave Event-driven v1.4.0
Why I built it

“Claude’s 5-hour window only starts when you send the first message. If you don’t — say, you wandered off to make coffee — the clock just sits there. Compounded over a week, that’s hours of usable runtime lost. This fixes it once, forever.”

View on GitHub

Targeted alarm, no polling

Service worker fires exactly when the previous window ends — onStartup, onIdle, and a precision alarm. No minute-by-minute checks.

Engine
🔁

Signature-based dedupe

Each window has a unique signature; the extension records what it warmed and physically refuses to fire twice for the same one.

Safety
🌙

Quiet hours

Configure a window where warmups pause entirely. No 3am notifications, no surprise sessions.

Comfort
🔐

Logged-out aware

Detects sign-out states, surfaces a click-through notification, and auto re-evaluates the moment you log back in.

Resilience
📈

Local stats & settings

Lifetime warmup counter, configurable message, editable DOM selectors. Nothing leaves your browser.

Control

Three rules I don’t break.

Every tool you see here was built under the same constraints. They are non-negotiable, and they’re what makes these tools worth using.

01 / Privacy

Your data never leaves the browser.

No accounts, no analytics, no cloud sync. Every operation happens on the device the user is already trusted on. If a tool can’t honour that, I don’t ship it.

02 / Specificity

One job, executed properly.

Each tool solves one friction with the depth of a product, not the surface of a script. No bloated feature lists, no upsells. Sharp instruments, not Swiss-army drawers.

03 / Restraint

Event-driven, not always-on.

No constant polling, no background drain, no chatty servers. Tools should act exactly when needed and stay invisible the rest of the time.

Have a friction nobody’s solved yet?

If there’s a tedious workflow eating your week — extraction, automation, a missing browser tool — describe it below. I’ll come back within 48 hours with a feasibility note and a build estimate.

↳ Replies sent within 48 hours · ssuvarna.gaurav@gmail.com