PROJECTS

// Projects, tools, and public apps built and maintained by me

Projects

kritesCompare LLMs on latency, throughput, cost, and quality.Active

LLM benchmark platform that sends identical prompts to multiple models and compares latency, throughput, cost, and quality side-by-side, with real-time SSE streaming, LLM-as-judge scoring, and interactive analytics charts.

Send one prompt to several models at once and read the answers side by side. Responses stream in over SSE, so latency and token throughput show up as they happen.

An LLM-as-judge step scores the outputs, and interactive charts track cost against quality across runs — so you pick a model on evidence instead of vibes.

GoSvelteKitOpenRouterSSEDocker
View SourceOpen Source
aiTurn a plain-English request into a shell command you review first.Active

Minimal AI shell assistant CLI in Go. Type a request in natural language, review the suggested shell command in a TUI, and run it on enter — installable via Homebrew, install script, or go install.

Type what you want, and the tool drafts a command and shows it in a terminal UI. Nothing runs until you press enter, so you stay in control of the shell.

The context sent to the model is deliberately thin: OS, shell, hostname, working directory, a top-level file listing, and the git branch. File contents, environment variables, command history, and diffs never leave the machine.

GoCLITUIOpenRouter
View SourceOpen Source
rustic-chatA serverless OpenRouter client that runs entirely in the browser.Archived

Serverless OpenRouter chat client built with Rust, Leptos, and WebAssembly. The browser connects directly to OpenRouter via OAuth PKCE, with no backend.

Written in Rust with Leptos and compiled to WebAssembly, it talks straight to OpenRouter using OAuth PKCE — no backend to host, and no middleman holding your keys.

Archived, but a clean reference for a fully client-side LLM app.

RustLeptosWebAssemblyOpenRouterOAuth PKCE
View SourceOpen Source
cpu_benchmark_goA portable, reproducible CPU benchmark for Linux and macOS.Archived

Portable, reproducible CPU benchmark for Linux and macOS measuring single- and multi-thread performance across six workloads (primes, sorting, matrix, hashing, JSON), normalized against a reference CPU and exported as JSON.

Runs six workloads — primes, sorting, matrix, hashing, and JSON — in both single- and multi-threaded modes.

Scores are normalized against a reference CPU and exported as JSON, so results stay comparable across different machines.

GoBenchmarkPerformanceCLI
View SourceOpen Source
LetheAutomated Discord message cleanup on a schedule.Active

Automated Discord message cleanup tool that periodically removes messages exceeding a specified age threshold, with bulk deletion support, configurable intervals, and easy deployment via Docker or standalone binary.

Periodically deletes messages older than a configurable age threshold, with bulk deletion and adjustable intervals.

Ships as a Docker image or a standalone binary, so it drops into an existing host without extra tooling.

GoDiscordDocker
View SourceOpen Source
or-observerSelf-hosted OpenRouter observability, backed by DuckDB.Archived

Self-hosted LLM observability platform that ingests OpenRouter API call data via webhooks, providing real-time cost monitoring, latency percentiles, and filterable trace exploration backed by DuckDB.

Ingests API call data through webhooks and turns it into real-time cost monitoring, latency percentiles, and filterable trace exploration.

Built with Go and Svelte on top of DuckDB. Archived, but the webhook-to-analytics pipeline still holds up on its own.

GoSvelteDuckDBTypeScriptDocker
View SourceOpen Source
go-web-fetch-mcpAn MCP server that fetches and cleans web pages for a model.Active

Go implementation of a Model Context Protocol (MCP) server that fetches web pages, extracts readable content, converts HTML to markdown, and supports pagination with robots.txt compliance and proxy support.

Fetches a URL, extracts the readable content, and converts the HTML to Markdown the model can actually use.

Supports pagination, honors robots.txt, and can route through a proxy. Ships as a Docker image.

GoMCPWeb ScrapingMarkdownDocker
View SourceOpen Source
mcp-remote-goA Go drop-in replacement for npm's mcp-remote.Archived

Go-based drop-in replacement for npm mcp-remote. Acts as a transparent bidirectional proxy between stdio JSON-RPC and a remote MCP server over HTTP/SSE, with full OAuth 2.1 support in a ~6 MB static binary.

Proxies transparently between stdio JSON-RPC and a remote MCP server over HTTP/SSE.

Includes full OAuth 2.1 support and compiles to a single ~6 MB static binary — no Node runtime required.

GoMCPOAuth 2.1SSEJSON-RPC
View SourceOpen Source
openrouter-goZero-dependency Go bindings for the OpenRouter API.Archived

Zero-dependency Go package providing complete bindings for the OpenRouter API with full streaming support, comprehensive error handling, and extensive configuration options for LLM integration.

Covers the full OpenRouter API with streaming support, thorough error handling, and extensive configuration options.

A small, dependency-free package for Go services that call LLMs.

GoAPILLMStreamingSDK
View SourceOpen Source
agentpadEncrypted, append-only pads for humans and AI agents.Private

Private, append-only pads for humans and AI agents, with a live web interface, CLI, MCP tools, and a REST + SSE API. Titles and entries are encrypted in the browser or local CLI before transmission, with share links for read-only or collaborative access.

Titles and entries are encrypted in the browser or local CLI before they are sent; the server only ever sees ciphertext.

Reach pads through a live web interface, a CLI, MCP tools, or a REST + SSE API, with share links for read-only or collaborative access.

Open AppPublic App
quicklinkA self-hosted URL shortener with QR codes and click stats.Private

Self-hosted URL shortener with QR codes, custom slugs, expiring and one-time links, click statistics, and a JSON API. A single Go binary serves an embedded SvelteKit interface and stores data in SQLite.

Create custom slugs, set links to expire or work only once, and track clicks.

A single Go binary serves an embedded SvelteKit interface and stores everything in SQLite, with a JSON API for automation.

Open AppPublic App
safelinksReveal where a rewritten email link actually goes.Private

Reveals the destination behind Microsoft Safe Links, Proofpoint URL Defense, and other rewritten email links without visiting them. Decodes locally in the browser, with a JSON API and a Raycast extension for macOS also available.

Decodes Microsoft Safe Links, Proofpoint URL Defense, and similar rewrites locally in the browser, without visiting the destination.

Also available as a JSON API and a Raycast extension for macOS.

Open AppPublic App

Let's Build Something Together

Interested in collaborating on a project? I'm always excited to work with fellow developers and explore new ideas.