Skip to the projects
9 projects

Projects

Things I have built. Each one below has a working recreation you can click through.

Demos run entirely in this page, on demo data or replayed chats. Nothing is sent anywhere.

Worsaga

Study toolkit and MCP server for Moodle

An open-source, local-first study toolkit for Moodle and university LMS workflows.

It provides a CLI and MCP tool for safely reading course data such as courses, deadlines, grades, assignments, course materials, + tools like extractive weekly summaries, offline sync, and more.

It is read-only by design. It does not submit assignments, post messages, upload files, mark items as read, or mutate Moodle state.

Year
March 2026
Status
Open source, version 0.8.2 on PyPI
Built with
Python, MCP, SQLite FTS5, PyMuPDF

Runs on Worsaga's own demo dataset of fictional courses and people. Tool names, arguments and results match the real server.

Claw

My always-on agent on OpenClaw, run from Telegram

An agent I set up on OpenClaw and talk to entirely through Telegram. It handles the admin work around my coursework, marathon training, and quick coding projects.

It runs 24x7 on a small AWS EC2 server with GPT-5.5 as the main brain, on my OpenAI subscription through OAuth, with Gemini 3.1 Pro as the backup and cheaper models like Minimax through OpenRouter as fallbacks. An hourly heartbeat checks whether anything needs doing and stays quiet when nothing does.

It reads my LSE timetable, pulls each week's lecture files from Moodle through Worsaga and reminds me of all deadlines. A Strava webhook with an ngrok tunnel tells it the moment I log a run, and it updates my training plan based on the current data (e.g., after a hard long run it can turn the next one into a recovery run).

For quick, small coding projects, it uses both Codex and Claude: Codex splits a feature into phases, Claude Code builds each one, and an approved phase is committed and pushed to GitHub (via a fine-grained token limited to select repos) before the next begins. A dashboard on Vercel keeps it all in one place.

Year
March 2026
Status
Private setup, written up on X in May 2026
Built with
OpenClaw, AWS EC2, Telegram, GPT-5.5, Gemini 3.1 Pro, OpenRouter, Claude Code, Strava, ngrok, Vercel

Replays chats with Claw from March 2026, with names, courses and other details changed. The wiring follows my own diagram of the setup.

Vichita

Slack agent for student society admin

An AI operations agent that runs in Slack and can turn event requests for student society ops into an approval-gated pack of Google Docs and Sheets for the committee. Built using Vercel's Eve agent framework.

Mention it with an event and it classifies the event route, flags missing details and works out the deadlines. After an approval step, it writes the risk assessment, budget, form-field pack, deadline plan and internal review into a shared Drive folder, and patches them in place when plans change.

It acts only when asked. It never submits forms or gives final approval: people stay in charge of every submission.

Year
June 2026
Status
Open source, deployed on Vercel
Built with
TypeScript, Eve, Vercel, Slack, Google Workspace

A recreation of the recorded demo. Event details and IDs are illustrative; the routing and deadline rules are Vichita's own.

Watch the recorded demo on GitHub

Velocity Launchpad

AI startup analysis workspace

Turns a one-line startup idea into a structured read on the market, customers, risks and next steps.

A LangGraph pipeline classifies the idea, grounds it in live web research, then sets a bull analyst against a bear analyst before a council judge decides. The report covers market sizing, competitors, customers, revenue and a first build prompt.

It runs on the visitor's own model key (BYOK) and lives on the LSESU Velocity website.

Year
October 2025
Status
Live on lsesuvelocity.com
Built with
React, LangGraph, Gemini, Vercel

Replays one saved run: the Claymate example the live site uses in its own preview.

Rapid Revive

Screen recordings into polished demo videos

Turns a raw screen recording into a cursor-aware product demo: zooms that follow your clicks, the screen framed on a gradient, a crisp re-rendered cursor.

A local command-line tool and MCP server. It records the screen and mouse, or imports any mp4, finds click clusters and idle gaps, and auto-directs an editable JSON spec of zooms, cuts and speed-ups. Remotion renders the final video.

Everything stays on the machine, including an OCR privacy scrub that finds and blurs personal details before a video is shared.

Year
2026
Status
Early, working end to end. Not yet public
Built with
TypeScript, Remotion, ffmpeg, MCP, tesseract.js

Plays the synthetic capture from Rapid Revive's own test harness, with the edit spec its auto-director produces for it.

Refind AI

Second-hand furniture, matched to your room

Describe or measure a room and your taste, and it finds second-hand pieces that suit it, then checks they physically fit before you contact the seller.

It was built as a group prototype for an LSE module on managing AI, and was named Most Promising Business, with Distinction. Rooms and listings are embedded with Gemini and matched in Postgres with pgvector; a floor plan checks every piece against the walls and everything already placed.

Year
2026
Status
Module prototype, running on a demo catalogue
Built with
Expo, React Native, Supabase, pgvector, Gemini

Uses the app's demo catalogue, demo scoring and default furniture sizes, and its two fit rules: inside the walls, overlapping nothing.

RescueBase

Offline incident log for disaster response

Keeps an incident log running when the network goes down: drone imagery and radio audio become source-linked draft events that a person confirms or rejects.

Winner of the Cornell Dell x NVIDIA AI hackathon, focused on building products powered by local LLMs.

Our product combines drone footage and thermal scans with a system for recording and transcribing audio reports from responders. Local multimodal AI models analyze these inputs to help rescue teams identify people stranded on rooftops or in dark, hard-to-reach terrain, with findings organized in a local incident log. The aim is to support rescue operations during natural calamities when the power grid and communications networks are down, leaving cloud-hosted tools inaccessible.

My part was the backend agent infrastructure, built with OpenClaw and OpenShell, and testing local Qwen models on the disaster-response dataset.

Year
September 2026
Status
Hackathon prototype, September 2026
Built with
Python, FastAPI, OpenClaw, OpenShell, Qwen3-VL, Whisper, vLLM

The two field reports are the ones RescueBase's own tests use. The incident is simulated.

The Unseen Hunt

Scavenger hunt that digitises Unseen Tours

A web-based scavenger hunt that digitises the Unseen Tours experience: student teams follow a guide's route on their phones and verify each stop with a photo.

Built during an LSE consulting project for Unseen Tours, a social enterprise, to help it reach Gen Z and give its guides an extra source of income. Teams navigate an interactive map to each stop, and a photo check combines their location with the Gemini API's image recognition and OCR before the stop unlocks a video story from the guide.

Teams earn XP, climb a leaderboard and track their social impact hours while learning about homelessness. It is designed for universities: orientation, society events and course modules. Fifteen students from the target group tested it in live MVP sessions, and what we saw shaped the final implementation plan.

Year
October 2025
Status
Live MVP, tested with 15 students
Built with
Leaflet, Gemini API, Vercel

A working recreation of this one is on its way.

Try the live app

Star Lore

Like Duolingo for constellation learning

Learn the 88 constellations through quick games and the myths behind them.

Identify constellations, play a mythology mode, and track accuracy, streaks and achievements. Everything stays on the device: no accounts, no ads, no tracking.

Year
June 2025
Status
Live on the App Store, free
Built with
React Native, Expo

A sketch of the game, drawn for this page from real star positions. The app's own artwork and questions differ.

Also built