Projects

Things I've built and shipped: LLMs trained from scratch, agent frameworks, agentic payments, and a full-stack RAG platform.

Sigildex screenshot

Sigildex

Live

Approval records for AI agent skills: lock what a human approved, detect when the installed copy drifts, diff what changed

Started as a hosted, agent-first trust layer for agent skills: a REST API and MCP server that let an agent discover, inspect and verify skills, with x402 micropayments on Base and a three-layer safety-scoring pipeline over a ~200K-row corpus. After a summer spent rebuilding the index, I wound the hosted service down and shipped the piece that stands on its own: a small open-source CLI (lock, check, diff) that records the exact bytes of a skill a human approved and tells you, file by file, when the installed copy drifts. Local, deterministic, no network. Ships with an Agent Skill, llms.txt, a CI example and a postmortem.

TypeScriptNode.jsSupabase / pgvectorOpenAI embeddingsx402 (USDC on Base)MCP
LLM Fine-tuning Course screenshot

LLM Fine-tuning Course

Live

Fine-tuning a 3B language model end-to-end on the HF Hub: SFT, DPO, and a vision-language sidetrack

I worked through Hugging Face's Smol Fine-Tuning Language Models course and shipped a preference-aligned small model to the Hub. SmolLM3-3B-Base taken through SFT on 12k summarization examples, then DPO on 12k preference pairs, with DPO continuing to train the same LoRA rather than starting fresh (and the pre-DPO state frozen as the reference policy). A SmolVLM2-2.2B ChartQA adapter sits alongside as a vision-language sidetrack, where LoRA adapts the LLM while the SigLIP vision encoder stays frozen. Four LoRA adapters published, all reproducible from the public code.

PyTorchHugging Face TRLPEFT (LoRA)HF Jobs (A100/A10G)Python 3.12uv
Deep Research Agent screenshot

Deep Research Agent

Live

An agentic research system with planning, sub-agent delegation, and human-in-the-loop approval

A deep research agent that takes a question, breaks it into a research plan, waits for human approval, then hands research tasks to isolated sub-agents that search the web and synthesize findings. Uses file-based context offloading instead of context stuffing, and runs Gemma 4 locally via Ollama or any cloud LLM.

LangGraphLangChainGemma 4OllamaTavily APINext.js
KuchiClaw screenshot

KuchiClaw

Live

A minimal AI agent framework: ephemeral containers, living file memory, filesystem IPC

A personal AI agent that runs 24/7 on a VPS, talks through Telegram, manages its own memory in living markdown files, runs scheduled tasks (morning briefs, self-maintenance heartbeats), and reaches email and a shared Google Calendar through a simple skills system. Built on the Claude Agent SDK with ephemeral Docker containers as the security boundary, then hardened for unattended operation: HMAC-signed container output, fail-closed startup, crash recovery with a crash-loop circuit breaker, per-group isolation, and daily git backups of the agent's evolved memory.

Claude Agent SDKTypeScriptDockerTelegram Bot APISQLiteMCP
TinyBrain screenshot

TinyBrain

Live

An AI that earns and spends money autonomously via x402

An inference service built on top of TinyChat that charges $0.01/query via the x402 payment protocol. Routes complex queries to DeepSeek R1 for ~$0.001, pocketing the difference. Includes complexity classification, a "bar tab" payment mode with stateless HMAC-signed sessions, and wallet integration on Base mainnet.

Next.js 15React 19x402 Protocolwagmi/viemUSDC on BaseFramer Motion
TinyChat screenshot

TinyChat

Live

A 561M-parameter LLM trained from scratch for ~$95

A language model built from scratch: custom BPE tokenizer, GPT architecture with RoPE and Multi-Query Attention, trained on ~38B tokens from FineWeb-EDU, then fine-tuned for conversation. Deployed on Modal serverless GPU with a Next.js frontend.

PyTorchModal (T4 GPU)Next.jsTailwind CSSSSE Streaming
PagePiper screenshot

PagePiper

Live

Chrome extension that converts web pages to clean markdown

A Chrome extension that clips web pages or selections to clean markdown and copies to clipboard. Uses Mozilla's Readability.js for content extraction and Turndown.js for HTML-to-markdown conversion. Supports keyboard shortcuts, context menus, preview before copy, and automatic cleanup of ads and trackers.

Chrome Extensions APIReadability.jsTurndown.jsManifest V3
Talk2Docs screenshot

Talk2Docs

Sunset

A full-stack RAG platform for chatting with PDFs, URLs, and podcasts

A RAG platform for chatting with your documents: custom chunking, hybrid retrieval, query classification, multi-document synthesis, and citation validation. Built with Next.js, Supabase, Stripe, and Clerk, deployed on Vercel and Railway.

Next.js 15React 19TypeScriptSupabase + pgvectorOpenAI GPT-4.1Cohere Rerank