I build browser tools and data utilities. Company Name Cleaner helps review and normalize names before export. Claude Usage Tracker shows usage limits inside the chat, and Excise strips image metadata locally. Explore the projects.
When I contribute upstream, I like fixes where you can see the difference in one example. A mistyped CLI flag should tell CI the command was invalid. A knowledge graph node should keep the source text you need to expand it. See the merged changes.
12 merged PRs across 11 projects in the past 12 months. Each link goes to the upstream PR.
| Project | ⭐ Stars | What changed |
|---|---|---|
| jc | 8,703 | Preserved leading whitespace in filenames parsed from wc output. |
| petl | 1,325 | Preserved existing rows when appending to a MemorySource. |
| Azure RBAC Insight | 0 | Kept assignments with missing filter labels visible. |
| Awesome LLM Apps | 144,399 | Retained uploads when extraction fails. Preserved source text for Knowledge Explorer node expansion. |
| Pidrang | 2 | Kept environment setup reminders visible on reruns. |
| R2G Arango | 5 | Restored distinct value sampling for CSV columns. |
| Archy | 8 | Assembled call graph edges in linear time. |
| CWTools VSCode | 3 | Quoted carriage returns in CSV diagnostics. |
| domq | 11 | Validated Markdown options in either flag order. |
| Releaseproof | 0 | Returned the correct exit code for invalid CLI usage. |
| Go Magnetar | 29 | Listed enabled agents when /agent is called without arguments. |
|
See your limits under the Claude chat composer without leaving the conversation. Install from source ↗ · Source See the widgetLoad the |
Clean company names in the browser before importing a list into your CRM. Try it in your browser ↗ · Source Try a sample CSVOpen the app and import the sample CSV. Set the company column to 2 and select First row is a header. Review the results before exporting. With the default settings, |
|
Remove C2PA, EXIF, and XMP data from images before sharing them. What happens to the image?The app inspects the file in your browser and shows which metadata it finds. Choose what to remove, then download the processed copy. The file stays on your device. |
An experiment in end-to-end encrypted messaging. Try a two-client sessionUse Node.js 20 or later to start the relay and open two clients in separate terminals. Exchange a message and compare safety numbers. The repository also includes a local handshake and ratchet demo. |
A focused stack for browser utilities, data cleanup, and small open-source fixes.
|
|
|
|
|
|
Open GitHub profile ↗ · View merged PRs ↗
Account stats refresh hourly. Merges are counted over the trailing 12 months. Profile views count badge requests on pages where the badge appears.
What’s one task you’re tired of doing by hand?


