# Shashank Gowda T

> Shashank Gowda T is a Shanky dev in Bengaluru, India. Builder of MotionCode and OneCLIQ (Hacktoberfest Hack Day Bengaluru runner-up), with 126 merged open-source pull requests including Microsoft PyRIT.

- **Role:** Shanky dev
- **Location:** Bengaluru, Karnataka, India (Asia/Kolkata)
- **Status:** Open to internships & freelance
- **Email:** shashankgowda3162@gmail.com
- **Website:** https://shashankdev03.me
- **GitHub:** https://github.com/shashank03-dev
- **LinkedIn:** https://www.linkedin.com/in/shashank-gowda-t
- **Résumé:** https://docs.google.com/document/d/15d76jkq4tGn2OGAlWlU7-9pueblHtpQ_/preview
- **Also known as:** Shashank Gowda, Shashank T, Shashank G T, shashank03-dev, shashankdev03
- **Last updated:** 2026-11-03

## About

- I'm a Full-Stack Developer from Bengaluru who builds AI products people actually use.
- I ship with Next.js, FastAPI and PostgreSQL, like MotionCode, which turns a UI animation into code, and GovBot, which puts government schemes on WhatsApp.
- Runner-up at Hacktoberfest Hack Day Bengaluru with OneCLIQ, a GitHub helper I built in a day on Next.js and Gemma 4.
- 125+ merged pull requests in open source, including Microsoft PyRIT, and most of them are security fixes.
- When I am not shipping, I build things just to see if I can: a nuclear test simulator in three.js and a language model trained from zero in PyTorch.

**126** Merged PRs · **6** Orgs contributed to · **9.12** CGPA · **20+** Video projects

## Achievements

- **Runner-up at Hacktoberfest Hack Day Bengaluru** (18 Oct 2026). Spent a day at Hacktoberfest Hack Day Bengaluru with BMSCE IEEE Computer Society, built OneCLIQ from scratch, and it was picked runner-up. I came home with a T-shirt and a few hosting credits, and met some really cool people there.

## Projects

### MotionCode: Show it an animation, get the code.

*2026 · AI · Live*

Drop in a screen recording or GIF of a UI animation and MotionCode hands back working CSS, GSAP and Framer Motion code for it. No more scrubbing frame by frame to copy an animation by eye.

- Reads the timing, easing and keyframes straight from the video
- All three code outputs come from one spec, so they always agree
- Free to try, with paid plans and team workspaces

**Your video stays with you.** The clip is split into frames in the browser, on a canvas. Only a few sampled frames, packed into one contact sheet, go to the server, so the upload is small and the original video never leaves your laptop.

**One spec, three outputs.** Gemini (or OpenAI, if you switch it) reads the frames and returns a motion spec: timing, easing and keyframes. The CSS, GSAP and Framer Motion code are all generated from that same spec, so they never disagree with each other.

**Check it before you copy it.** The generated code plays in a sandboxed preview next to the editor, so you can see whether it matches before it goes anywhere near your project.

**Limits live in the database.** Plan limits are enforced by a Postgres row-level policy on insert, not by the UI, so tampering with requests in the browser does not get you extra projects. Payments go through Razorpay subscriptions.

**Stack:** Next.js, TypeScript, Supabase, Gemini API, GSAP, Framer Motion, CodeMirror, Razorpay
**Links:** [Live](https://motioncode.live) · [Source](https://github.com/shashank03-dev/MotionCode)

### OneCLIQ: Paste a GitHub link, get the right download or an honest review.

*2026 · Tools · Live* - Runner-up at Hacktoberfest Hack Day Bengaluru, 18 October 2026. Live on Vercel, and the CLI is on npm as onecliq.

Built in a day at Hacktoberfest Hack Day Bengaluru, where it was runner-up. Give OneCLIQ any GitHub link and it picks the one release file built for your computer, reviews a pull request with Gemma 4, or teaches your coding agent a new skill.

- Finds the right file for your OS and chip, and shows where it came from
- Gemma 4 reviews a pull request and says plainly whether it is safe to merge
- The same tools as a website, a CLI on npm and an MCP server

**The right download.** It reads a project’s latest stable release, works out which file matches your OS and CPU, and links straight to it on GitHub. A trust report shows the release age, digests and attestations, and a dropped file can be checked against the release by its SHA-256 alone, so the file itself never leaves your computer.

**Reviews you can repeat.** gemma-4-31b-it reviews the diff and the 26B mixture-of-experts model takes over when it is busy. Findings are ranked from must-fix to nit, and the merge verdict is worked out from them in code, not by the model, so the same findings always give the same answer. A pool of free-tier keys rotates when one is rate limited.

**One engine, three doors.** The website, the oqgit CLI and the MCP server all share one engine with no framework code in it. Claude Code, Codex or Cursor can call the same review and release tools over MCP, and 44 agent skills install into six coding agents with one command.

**Stack:** Next.js, TypeScript, Gemma 4, Gemini API, MCP, Vercel, Vitest, Playwright
**Links:** [Live](https://onecliq-eta.vercel.app) · [Source](https://github.com/shashank03-dev/OneCLIQ)

### Vercelify: Turn the old laptop in your drawer into your own Vercel.

*2026 · Tools · Live* - Built for Hacktoberfest Hack Day Bengaluru, 23 October 2026. Installs on a spare Ubuntu or Debian laptop with one command.

Push to GitHub and your app goes live, like on Vercel, except it runs on a spare laptop you already own and costs nothing a month. You control it from a desktop app on your Mac, and when a build fails, Gemma 4 reads the log and tells you why.

- Push to deploy, preview links for pull requests and one-click rollback
- Gemma 4 explains a failed build in three lines: cause, fix and a check
- Private by default over Tailscale, with databases and your own domain if you want

**Why did my deploy fail?.** Build logs are long and mostly noise, so it keeps only the error lines with a little context and the last 30 lines, up to 5,000 characters. Gemma 4 E2B in Ollama, on your Mac or on the server, answers with the cause, the fix and a command to confirm it, in under 120 words. It only suggests; it never edits your code or redeploys.

**Built on Coolify.** It does not reinvent hosting. Coolify builds each app into its own Docker container and Traefik routes requests to it. A small Rust agent on the server reports health and disks, handles pairing and checks GitHub for new commits, and an optional Cloudflare Tunnel puts an app on the internet without opening a port at home.

**Looks after old hardware.** One script sets the laptop up, keeps it running with the lid closed, and watches temperature, battery, disk and memory, slowing things down before it overheats. It also reads the common parts of vercel.json, so redirects, rewrites, headers and cron jobs carry over.

**Stack:** Rust, Tauri, React, TypeScript, Gemma 4, Ollama, Coolify, Docker, Tailscale
**Links:** [Source](https://github.com/shashank03-dev/vercelify-oss)

### Lanox: A language model I trained from zero, on one person.

*2026 · AI · Live*

A small language model I wrote by hand and trained from random weights until it texts like one specific person. No pretrained model and no borrowed tokenizer, just about 15M parameters. You can chat with it on the site.

- Trained in three rounds: small talk, real chats, then a judge model
- Runs on a single CPU core, so it is cheap to keep online
- Learns from new chats every few days, and only ships if it got better

**Three rounds of training.** First it learns to hold a conversation at all, on Hinglish small talk that Qwen generated. Then it is fine-tuned on real WhatsApp and Discord history at a lower learning rate. Last comes a GRPO loop, where a local Qwen3-4B judge scores groups of replies and the model learns from the ranking.

**Keeping the voice.** The obvious failure is reward hacking: the model works out what the judge likes and drifts towards it. A divergence penalty against the frozen phase-two model stops that. It can get better, but it cannot turn into someone else.

**It keeps learning.** The playground on the site talks to a small FastAPI server on Railway that runs the model as ONNX with a KV cache, on one CPU core. Every reply is logged, and every couple of days a Colab notebook runs another GRPO round on those chats. The new checkpoint only ships if it scores at least as well as the live one.

**Stack:** PyTorch, Qwen3-4B, GRPO, ONNX Runtime, FastAPI, Next.js, Live2D, Hugging Face
**Links:** [Live](https://lanox.vercel.app) · Private repository

### RustCast: A keyboard launcher for Linux, written in Rust.

*2026 · Tools · Live* - Version 0.7.2 is out, with ready-made Linux packages.

Press Alt + Space to open apps, find files, do maths, or type what you want in plain English. It also has a screenshot editor with text recognition, a screen recorder and clipboard history, all in one small native app.

- Type “open downloads then show desktop” and it runs both steps
- Screenshot studio: annotate, read text out of images, pin to screen
- Records one window even when other windows cover it

**Jev.** Type “jev open downloads then show desktop” and you get a list of actions to run with Enter: open folders and files, launch or close apps, tile windows, start a recording. Several steps collapse into one “Run all” row.

**Screen recorder.** It can lock onto one window, so nothing dragged over it shows up, and it keeps recording even when that window is minimised. You can add more windows mid-recording, and RustCast paints itself out of every frame. It encodes with ffmpeg, and on GNOME Wayland it records through the portal and PipeWire.

**Screenshot studio.** A screenshot opens in an editor for arrows, text and blur. It can read text, code and whole tables out of the image with Tesseract on your machine, pull a colour palette, compare two shots, or pin one on top of every window.

**Clipboard and screenshots.** Text and image history is saved to disk and survives a restart. A screenshot pops up as a thumbnail you can drag into any app as a PNG, over XDND on X11 and through a small Wayland helper so native Wayland apps accept the drop too.

**Stack:** Rust, iced, x11rb, GTK, Tesseract, ffmpeg, PipeWire
**Links:** [Download](https://github.com/shashank03-dev/rustcast/releases/latest) · [Source](https://github.com/shashank03-dev/rustcast)

### Namma Ooru: A whole room builds one living 3D Bengaluru from their phones.

*2026 · Graphics · In progress* - Built for Hacktoberfest Hack Day Bengaluru on 16 October 2026. It goes live there.

Snap any object with your phone and Gemma turns it into a building in the right part of a 3D Bengaluru that everyone in the hall shares. Then walk into it, ride an auto through the real streets, and chat with people in five languages.

- The city is built from real map data: 1.4 million building outlines
- Pin a photo where you took it and it goes up on that street
- Dasara Night lights the city up and the elephant procession walks to Town Hall

**Real Bengaluru.** The map comes from Overture Maps: 1.43 million building footprints, 371k road segments, Namma Metro on its viaduct and about 199k named places. A Python script reads only Bengaluru out of the public release with HTTP range requests and cuts it into 13,622 small tiles that Web Workers load around the camera.

**Photo to building.** Gemma 4 on the Gemini API boxes the object in the photo, names it, and picks the neighbourhood it belongs in. If Gemma is down or rate limited the player is told to try again, and the build is not counted against them.

**One city for everyone.** With no keys it runs on an in-memory backend. With Supabase set up, Postgres holds the state, a private bucket holds the photos and Realtime keeps every phone and the projector in the same city, however many serverless instances are running.

**Stack:** Next.js, three.js, React Three Fiber, Supabase, Gemma 4, Web Workers, Python, Playwright
**Links:** Private repository

### Computeus: Lets any AI model use a computer, on desktops of its own.

*2026 · AI · In progress*

Gives any AI model a mouse, a keyboard and a screen on hidden desktops, so it never takes over yours. It plans the task first, runs the parts that can run at the same time, and saves every step so you can rewind.

- Every agent works on its own hidden screen that you can watch live
- Blurs emails, card numbers and passwords before a model sees the screen
- You can pause any agent, take over, and hand it back

**Hidden desktops.** Every agent gets its own Xvfb virtual screen to click, type and take screenshots on. The native Rust app shows them all in a live grid, and you can take over any one of them and hand it back.

**Only what changed.** The vision pipeline sends the model as little as it can. If nothing changed it gets one line of text, a small change gets just that region, and several changes become one numbered contact sheet.

**Private by default.** Before a screenshot goes to a model, on-device OCR finds emails, card numbers, API keys and anything typed into a secret field, and blocks them out. No-Touch Zones mark areas an agent can never click or see.

**Fork and Race.** A hard step can run as several candidates at once, each on its own desktop. The first one to succeed wins and the rest are stopped straight away. A lead model plans and cheaper worker models do the steps.

**Memory and rewind.** Every action and every screen the model saw goes into one SQLite file. The Brain Map reuses the fastest path that worked before, and you can branch a new live run from any earlier point.

**Stack:** Rust, GPUI, Xvfb, SQLite, MCP, OCR
**Links:** Private repository

### ArcSpace: My terminal for running coding agents side by side.

*2026 · Tools · In progress*

One window that tiles Claude Code, Codex and normal shells in a grid, so I stop juggling terminal windows. Every session shares the same markdown notes, and a voice agent can open new agents for me.

- Every pane is a real terminal, so agents behave exactly as usual
- Shared notes the agents can read and write through MCP
- Each pane can use a different Claude account

**Real terminals.** An Electron shell over React 19. Every pane is a real PTY, not an imitation of one, so the agents behave exactly as they would in a normal terminal. Panes sit in a split tree you can resize, split and rearrange, and there are 343 tests behind it.

**Shared notes.** ArcMemory is just a folder of markdown files linked with [[wikilinks]], and the graph comes from parsing those links. A built-in MCP server lets Claude and Codex read and write the same notes I do.

**Voice agent.** A Live2D character sits on a terminal’s title bar and talks through Deepgram’s Voice Agent API, one WebSocket instead of separate speech-to-text, LLM and text-to-speech calls. Tell it what you want built and it opens a new Claude or Codex pane for the job.

**Several Claude accounts.** Each pane can use a different Claude subscription. Every account keeps its own login through CLAUDE_CONFIG_DIR, while settings, skills and history are shared, so a session started on one account can be resumed on another.

**Stack:** Electron, React 19, TypeScript, node-pty, xterm.js, SQLite, Deepgram, MCP
**Links:** Private repository

### Kai: Gives Gemma 4 a hand: it uses your computer while you watch.

*2026 · AI · In progress* - Builds for Linux, Windows and macOS. Still being tested before a public release.

A desktop app for Linux, Windows and macOS that lets Gemma 4 use your computer one visible step at a time. It looks at the screen, clicks, types and runs commands, and you can stop it from any app with one shortcut.

- Passed 14 of 14 everyday desktop tasks on Gemma 4 26B in my benchmark
- Asks before anything risky, and never solves a CAPTCHA or guesses a code
- Runs fully offline on a 4B model in about 4.4 GB of RAM

**Numbered marks.** Every button and field from the accessibility tree gets a number drawn on the screenshot, so Gemma answers “click #14” instead of guessing pixels. The loop is observe, ground, decide, act, verify, one action per step, and Kai’s own overhead is about 65 ms a step.

**Fast on purpose.** The 26B mixture-of-experts model takes every step and the dense 31B only the one after a failure. The prompt is ordered so vLLM can reuse its cache, replies are capped short, and opening an app or a URL skips the model entirely.

**Your model, your machine.** Gemma 4 runs on your own DigitalOcean GPU Droplet with vLLM, brought up with one script, and falls back to the Gemini API. A model store ranks 16 open models for your computer, and any GGUF vision model on Hugging Face can be pulled in.

**Sub-agents.** Switch on Team and Kai splits a task into sub-agents: terminal work runs in parallel, screen work takes turns, and you get one report at the end. A finished run can be saved as a skill, so the next one skips steps the model no longer needs to think about.

**Stack:** Rust, GPUI, Gemma 4, vLLM, DigitalOcean, Gemini API, Accessibility APIs
**Links:** Private repository

### Peek-a-Boo: Catches whoever is reading your screen over your shoulder.

*2026 · Tools · Live* - Not on the Play Store yet. Install the APK straight from GitHub.

An Android app that watches the front camera while you use your phone. When someone else looks at your screen, a small notch pops up with a live count, and every peek goes into a daily report. It all runs on the phone and the app has no internet access.

- Learns your face in ten seconds, so you are never counted
- Pro version blurs the screen for anyone looking from the side
- Only counts real peeks, not faces passing by

**Only real peeks.** ML Kit finds the faces, but a face only counts if it is turned towards the screen, close enough to read it, and keeps looking for a moment. Scanning slows from about 5 fps to 2 when nobody is around, and stops when the screen is off.

**It knows you.** You enrol your face in about ten seconds, and from then on you are never counted, even when a friend holds your phone and you lean in. Repeat peekers are grouped by face signature, so the report counts people, not just peeks.

**Privacy Shield.** The Pro version puts a filter over the screen the moment someone looks: you can still read it head-on, but from the side the text washes out. It works like the S26 Ultra’s privacy display, on any phone, and can be limited to apps like banking and chats.

**Feel.** Jetpack Compose with spring motion everywhere, and native ports of a few React Bits components: rolling counters, hold-to-confirm buttons, swipe-to-delete with undo.

**Stack:** Kotlin, Jetpack Compose, CameraX, ML Kit, Room, DataStore
**Links:** [Download](https://github.com/shashank03-dev/peek-a-boo/raw/main/release/PeekABoo.apk) · [Source](https://github.com/shashank03-dev/peek-a-boo)

### GrindEasy: Your AI coding tool, on your Discord profile.

*2026 · Tools · Live* - On npm as grindeasy 0.10.0.

A tiny local app that shows which AI coding tool you are using, like Claude Code, Codex or Cursor, as a live card on your Discord profile. Your hours climb you from Bronze to Diamond on an opt-in public leaderboard.

- One command to set up: npx grindeasy
- Never opens your code or prompts, only checks when files last changed
- Watches 13 tools, with a public leaderboard you can join

**Privacy.** It works out which tool is active only from when that tool’s session files were last modified. It never opens them, so your code and prompts stay on your machine. The leaderboard only ever receives totals.

**Leaderboard.** The leaderboard server has zero runtime dependencies, just node:http and node:sqlite, with Discord login and anti-cheat that clamps whatever a client reports. The website is Next.js on Neon Postgres with Drizzle.

**Setup.** Run “npx grindeasy” and you are done: no Discord developer portal, no config file. It also serves a local dashboard, plus a JSON endpoint you can hook up to a status bar.

**Stack:** TypeScript, Node.js, Discord RPC, SQLite, Next.js, Neon Postgres, Drizzle ORM
**Links:** [Live](https://grindeasy.tech) · [Source](https://github.com/shashank03-dev/grindeasy)

### Stellar: Paste a GitHub repo, get an animated 3D star map of its history.

*2026 · Graphics · Live*

Stellar turns a repository’s real commit history into a galaxy. The first commit ignites at the centre, branches form constellations, merges draw lines between them and releases shine brighter. Any README can embed its own galaxy as an image.

- Reads public history straight over Git, no GitHub token needed
- Live animated GIF and SVG badges for any README
- A Go API with a shared Redis cache, so popular repos are only cloned once

**Real history.** The Go API does a blob-less bare clone, reads the log, branches, tags and merges, and returns them as one versioned contract. It never decides where a star goes: the browser lays the galaxy out from that contract with three.js, the same way every time.

**Badges.** GitHub READMEs cannot run WebGL, so the API draws the galaxy itself as an SVG or a looping GIF from the same contract, with a five-minute cache. The image links through to the full interactive map.

**Holding up.** An Upstash Redis cache and a build lease shared across instances mean one clone serves everyone asking for the same repository. A bounded queue, per-visitor rate limits and a memo for repos that are too big keep one visitor from slowing it down for the rest.

**Stack:** Go, Next.js, three.js, TypeScript, Upstash Redis, Vercel
**Links:** [Live](https://stellar-web-taupe.vercel.app) · [Source](https://github.com/shashank03-dev/star.md)

### Paper Trail: A walk printed on one sheet of paper, so the phone can stay home.

*2026 · AI · Live* - Runs locally with Ollama or Docker, and deploys to Render with one blueprint.

Paper Trail turns your real neighbourhood into an eight-page paper zine written by Gemma 4: a hand-drawn map, things to spot, a riddle and a box to sketch in. Print it, fold it, walk. When you are back, one photo of the sheet and Gemma reads your pencil.

- The route comes from real OpenStreetMap places, picked without AI
- Every line Gemma writes is checked against the real places before it prints
- One photo of the filled sheet: ticks, handwriting and sketches read back

**Written, then checked.** Gemma writes the zine in two stages, a plan and then the copy for each panel. Every reply is checked against a schema, against the real places on the route and against the size of the panel it has to fit. A failure retries with the exact error, and repeated failures fall back to a template, so it never dead-ends.

**Reading the pencil.** The browser finds the four printed corner marks, flattens the photo and cuts it into panels. Ticks are measured by ink darkness inside the known boxes, Gemma reads four small crops, and where the two disagree you get one tap to fix it.

**Open models.** Gemma 4 runs on your own machine through Ollama, on Ollama Cloud or through the Gemini API, with fallback between them. Built for the DEV Hacktoberfest Open-Source AI Challenge, week one: Touch Grass.

**Stack:** Next.js, TypeScript, Gemma 4, Ollama, three.js, OpenStreetMap, IndexedDB
**Links:** [Source](https://github.com/shashank03-dev/Paper-Trail-WEEK-1)

### Ground Zero: Four real nuclear tests, rebuilt in three.js.

*2026 · Graphics · Live*

Pick Trinity, Crossroads Baker, Castle Bravo or Tsar Bomba, or set your own yield, and watch it happen in your browser. The fireball, blast timing, heat and cloud height all come from the published physics equations.

- Stand 10 km away and you see the flash before you hear the blast
- Ray-marched mushroom cloud that rises with the Earth's curvature
- Drop observers anywhere and read the pressure and heat they feel

**Physics.** The fireball grows by Taylor–Sedov, overpressure follows Kinney–Graham with ground reflection, and the shock front moves at the Rankine–Hugoniot speed. Stand 10 km out and you see the flash, then hear nothing until the shock actually reaches you.

**The cloud.** A ray-marched volumetric fireball rolls up into the mushroom cap, with the afterwind stem, a dust skirt and the condensation ring. Earth curvature is modelled, so Bravo’s cloud, seen from 145 km away, rises up from below the horizon.

**Baker.** The underwater shot gets its own treatment: the spray dome, a hollow 1.8 km water column, the base surge rolling out across the lagoon, and the USS Arkansas being lifted and sunk.

**Sandbox.** A timeline from 1 µs to 25 minutes, observers you can drop anywhere with live pressure, heat and dose readouts, and a Rapatronic camera mode that saves the frame as a PNG.

**Stack:** three.js, GLSL, JavaScript, Web Audio, Web Workers, Vite
**Links:** [Live](https://nuke-simulation.vercel.app) · [Source](https://github.com/shashank03-dev/Nuke-Simulation)

### Multiverse: A Doctor Strange scene, rendered live in your browser.

*2026 · Graphics · Live*

An 86-second, shot-for-shot remake of the multiverse fall from Doctor Strange in the Multiverse of Madness, through 20 universes. There is no video file: every frame is drawn live on your graphics card and the music is made in the page.

- Each of the 20 universes is its own 3D scene
- Opens like a game, with a title screen and chapter select
- Can export itself frame by frame into an MP4

**Rendering.** Each universe is its own ray-marched scene, lit with photographic HDRIs and scanned PBR materials. Real 3D models are baked into distance fields, so they sit inside those worlds instead of looking pasted on.

**It opens like a game.** Gold title lettering drawn in WebGL, a sling-ring loader that fills up while the shaders compile, then a menu with chapter select and settings. It asks if you want to enter the multiverse. Saying no does not work for long.

**Exporting a video.** A Playwright script steps the page one frame at a time and pipes each frame into ffmpeg, so the MP4 has exactly the same motion blur and trails as the live version.

**Stack:** WebGL2, GLSL, JavaScript, Web Audio, Playwright, ffmpeg
**Links:** [Live](https://multiverse-gold.vercel.app) · [Source](https://github.com/shashank03-dev/Dr-strange-s-Multiverse-Recreation)

### Superspot: A field guide to the cars of Earth.

*2026 · Fullstack · Offline* - The database behind it is paused right now, so the globe opens but sightings don’t load.

See a car worth noticing, snap it, and it lights up on a night-time globe. Every model is treated like a species, with a rarity, a field-guide page and the cities it has been spotted in.

- An AI checks every photo is really a car before it counts
- No sign-up: pick a handle and start spotting
- Photo locations are blurred to about 1 km for privacy

**Is it a car?.** Every photo goes to Gemini with one question: is this a car? The Go API spreads those checks over a pool of free-tier Gemini and Gemma models, keeps each one under its rate limits with budgets stored in Postgres, benches a model when Google says it is out of quota, and asks a second model if the first is slow.

**No accounts.** You pick a handle, and the API stores it with the hash of a secret key that lives in your browser. No email, no password.

**Privacy.** Photos are resized and re-encoded, which strips the camera metadata and GPS, and the location on a sighting is blurred to a grid of about 1 km before anyone sees it.

**Live.** New sightings and comments reach every open copy of the app through Supabase Realtime, usually within a second. Browsers can only read. Every write goes through the Go API.

**Stack:** Go, pgx, React, TypeScript, MapLibre, Supabase Realtime, Gemini API, Vercel
**Links:** [Live](https://superspot-sable.vercel.app) · Private repository

### GovBot: Government schemes, over WhatsApp.

*2026 · AI · Offline* - The backend is switched off for now, so you can click around the demo but can’t finish a flow. All the code is in the repo.

Many people who qualify for scholarships and welfare schemes never apply because the portals are confusing. GovBot moves it into WhatsApp: find what you qualify for, share your documents once, and it fills the forms for you.

- Works entirely inside a WhatsApp chat
- Documents come from DigiLocker or a photo, and are stored once
- Fills the real government forms, the step people pay a cyber cafe for

**The chat.** A FastAPI flow router runs the conversation over the WhatsApp Cloud API, with separate LangGraph agents for the scholarship schemes. Sessions are tied to a phone OTP, and a half-finished application picks up where you left it.

**Documents.** Documents come in through DigiLocker, with a consent link that expires after 30 minutes, or as photos that Gemini reads the fields out of. Either way they end up in one vault, so nobody has to upload their Aadhaar twice.

**Form filling.** Playwright takes the saved profile and fills in the forms on the actual government portals. That is usually the step people pay a cyber cafe to do.

**Officer side.** Officers get dashboards for disbursements, numbers by region, and applications flagged as possible fraud.

**Stack:** FastAPI, LangGraph, Next.js, Supabase, Gemini API, WhatsApp Cloud API, Playwright, ChromaDB
**Links:** [Live](https://govbot-fawn.vercel.app) · [Source](https://github.com/shashank03-dev/GovBot)

### Proveno: Keeps track of what your coding agents did.

*2026 · Tools · In progress*

When several AI agents work in the same codebase, it gets hard to tell who changed what or what it cost. Proveno tracks that for Claude Code and Codex, stops them editing the same file at once, and gets a second model to review changes.

- Shows which agent and model changed each file
- File locks so two agents never overwrite each other
- Cost is always marked as an estimate, never guessed

**Honest numbers.** Which agent and model touched a file is exact, read from the real transcripts and hook payloads. Cost is always labelled as an estimate, prices come from a dated file instead of memory, and a model it doesn’t know shows up as unpriced rather than guessed.

**Collision locks.** It runs a small MCP server the agents talk to. Locks live in a shared SQLite table with a TTL, so a crashed agent can’t hold a file forever, and an agent asking for a held file is told who has it and until when.

**Setup that checks itself.** “proveno init” wires up the Claude Code, Codex and git hooks and backs up every file it touches. Then it actually runs the hook command, and if that fails it says so, instead of quietly capturing nothing.

**Stack:** TypeScript, Node.js, MCP SDK, SQLite, Commander
**Links:** [Source](https://github.com/shashank03-dev/proveno)

### cc-plus-plus: An agent terminal dressed up as Turbo C++.

*2026 · Tools · Live* - All three parts are finished. It runs from source, there is no installer yet.

A terminal for AI coding agents with the full blue-and-yellow Borland Turbo C++ look. Every pane is a real terminal, and it can find the MCP servers already on your machine or build new ones.

- Finds the MCP servers you already use in Claude, Cursor and others
- Builds a new MCP server for any app that does not have one
- Generated servers are locked down by default

**MCP Hub.** It reads the MCP servers you have already set up in Claude Code, Claude Desktop and Cursor, asks which ones you want, and passes them to the agents it launches. It never edits your own configs.

**MCP Forge.** For an app that has no MCP server, it scaffolds one around a CLI, a folder or a local HTTP API, hands it to an agent to fill in, then smoke-tests it with a real MCP client before connecting it.

**Safe by default.** The generated servers run commands without a shell, keep file access inside one folder, and refuse HTTP requests to any other origin. The template takes care of that, so it holds even if the agent writes sloppy code.

**Stack:** Electron, TypeScript, xterm.js, node-pty, MCP SDK, electron-vite
**Links:** [Source](https://github.com/shashank03-dev/cc-plus-plus)

### claude-clone: A coding agent harness, built from scratch to see how one works.

*2026 · AI · In progress*

A small TypeScript version of the loop behind tools like Claude Code. It streams the model's answer, runs the tools it asks for, feeds back the results, and repeats until the job is done.

- Works with Anthropic, OpenAI-style APIs and Groq
- Two tools, Read and Bash, with output trimmed to fit
- Kills commands that hang

**Any provider.** A provider is anything that can stream a reply. There is one for Anthropic and one for OpenAI-compatible APIs, and it uses Groq by default. The agent loop doesn’t know which one it is talking to.

**Two tools.** Read and Bash. Bash output is cut to the last 2,000 lines or 50 KB so a noisy command can’t fill the context, a hung command is killed after a timeout, and on Windows it finds Git Bash by itself.

**Stack:** TypeScript, Node.js, Anthropic SDK, OpenAI SDK, Groq
**Links:** [Source](https://github.com/shashank03-dev/claude-clone)

### MedStock AI: Stock and expiry tracking for hospitals.

*2026 · Fullstack · In progress*

Tracks medical supplies across hospitals and departments: what is in stock, which batches are about to expire, and emergency requests when something runs out. It also predicts demand so reorders go out in time.

- Warns before batches expire
- Emergency requests between departments
- Front and back end generated from one API spec, so they never drift

**One contract.** A pnpm monorepo with an Express API and a React frontend. The API is written down once as an OpenAPI spec, and Orval generates the Zod schemas and the React Query client from it, so the two sides can’t drift apart.

**Stack:** TypeScript, React, Express, PostgreSQL, Drizzle ORM, OpenAPI, Orval, Zod
**Links:** [Source](https://github.com/shashank03-dev/medstock-ai)

### nano_database: A tiny Redis-style database, in C.

*2026 · Backend · Archived*

A key-value database I wrote from scratch in C to learn how Redis-style stores work. You can talk to it over the network with plain text commands, straight from netcat.

- Every write is saved to disk at once, so a crash loses nothing
- Each read is a single disk seek
- No libraries, just C and sockets

**Storage.** Writes are only ever appended to a log file and flushed straight away, so a crash doesn’t lose data. An in-memory hash table maps each key to its byte offset in that file, so a read is a single seek.

**Stack:** C, TCP sockets, Hash table
**Links:** [Source](https://github.com/shashank03-dev/nano_database)

## Open source

126 merged pull requests across 6 organisations, most of them security fixes. [All merged pull requests](https://github.com/pulls?q=is%3Apr+author%3Ashashank03-dev+is%3Amerged+-user%3Ashashank03-dev).

- [microsoft/PyRIT #2256](https://github.com/microsoft/PyRIT/pull/2256) (2026-08-26): **FEAT: Add PuzzledConverter (word-puzzle jailbreak from arXiv:2508.01306)**. Implemented an LLM jailbreak technique from a published paper as a converter in PyRIT, Microsoft’s AI red-teaming framework (4.5k stars), with 72 unit tests at 100% coverage.
- [microsoft/PyRIT #2890](https://github.com/microsoft/PyRIT/pull/2890) (2026-10-06): **FEAT Let techniques disable judge feedback and use it for GOAT**. GOAT’s attacker is never meant to see the judge’s reasoning, but PyRIT’s version fed it back on every turn. Added a per-technique switch, turned it off for GOAT, and made it part of the attack’s eval hash so resumed scenarios can’t mix the two modes.
- [fossasia/voxbento #830](https://github.com/fossasia/voxbento/pull/830) (2026-10-17): **fix(workspace): prevent cross-event room deletion**. An event owner could delete another event’s room, with its booths, invite tokens and memberships, just by putting that room’s id in their own event’s URL. Deletion now checks the room belongs to the event first and answers 404 otherwise, with a two-event regression test written to fail before the fix.
- [RatLoopz/sahidawa-india #3788](https://github.com/RatLoopz/sahidawa-india/pull/3788) (2026-07-20): **fix(ml): authenticate all ML endpoints and fix proxy-aware rate limiting**. Only one ML route checked a key, so analysis, OCR, speech and triage were open to anyone. Every route now requires one and fails closed when it is unset; the browser’s voice stream gets a single-use, 60-second signed ticket burned in Redis, and the rate limiter reads the real client behind the proxy instead of putting everyone in one bucket.
- [RatLoopz/sahidawa-india #3811](https://github.com/RatLoopz/sahidawa-india/pull/3811) (2026-07-21): **fix(api): stop notification endpoints leaking OTP and user_id in responses**. Knowing someone’s phone number was enough to read their one-time password: the guest status lookup returned the whole subscriber row, and /register handed back the OTP it had just generated. Every response now goes through a projection of the five fields the client actually uses.
- [microsoft/PyRIT #2845](https://github.com/microsoft/PyRIT/pull/2845) (2026-09-29): **FEAT: Add PromptTemplateConverter and deprecate TaskFramingConverter**. Replaced a task-specific converter with a general PromptTemplateConverter, kept the old one as a deprecated subclass so existing identifiers and eval hashes don’t change, and documented hidden HTML and Markdown prompt-injection templates.
- [microsoft/PyRIT #2997](https://github.com/microsoft/PyRIT/pull/2997) (2026-10-08): **FEAT Add explicit Scenario progress result roles**. Scenario progress couldn’t tell an orchestrating attack from the attempts it ran. Each result now records its role, its ordered children and its attempt number, without changing any existing count.
- [microsoft/PyRIT #2996](https://github.com/microsoft/PyRIT/pull/2996) (2026-10-05): **FIX Make WebInjection dataset selections independent of preloaded memory**. An incomplete dataset selection failed on a fresh database but quietly succeeded once datasets were preloaded. The scenario now checks the selection up front and fails the same way either way.
- [fossasia/voxbento #713](https://github.com/fossasia/voxbento/pull/713) (2026-10-07): **fix(listener): make the room and language dropdowns usable with a keyboard**. The listener page’s custom dropdowns were plain divs, so Tab skipped every one of them. Rebuilt them as a proper combobox and listbox with arrow keys, Home, End and Escape, without changing how they look.
- [fossasia/voxbento #694](https://github.com/fossasia/voxbento/pull/694) (2026-10-06, open): **fix(listener): start playback when the booth goes live**. Listeners who opened the page before a talk stayed stuck on “waiting” until they reloaded. The server now pushes a trimmed, listener-safe booth status over the captions socket, and the page starts playback from it.
- [fossasia/voxbento #712](https://github.com/fossasia/voxbento/pull/712) (2026-10-07): **fix(auth): stop the sign-in pages scrolling sideways on phones**. Every sign-in page needed 390px no matter how narrow the phone, so it scrolled sideways and cut the card off. A flex item could not shrink below its inputs; one min-width rule fixed it, checked from 320px to 1366px in Chromium and Firefox.
- [fossasia/voxbento #644](https://github.com/fossasia/voxbento/pull/644) (2026-09-28): **fix(ui): show flip card backs in Firefox and self-host the Inter font**. Flip cards showed their mirrored front in Firefox, and the Inter font the stylesheets asked for was never loaded. Fixed the 3D transform and self-hosted Inter, with a test that catches broken font paths.
- [RatLoopz/sahidawa-india #3858](https://github.com/RatLoopz/sahidawa-india/pull/3858) (2026-07-24): **feat(security): gate guest notification endpoints behind a proof-of-ownership token**. Guest notification endpoints trusted a caller-supplied identifier. Introduced a proof-of-ownership token so a guest can only act on the subscription they actually created.
- [RatLoopz/sahidawa-india #3784](https://github.com/RatLoopz/sahidawa-india/pull/3784) (2026-07-20): **fix(ml): restore TLS verification in CDSCO alert agent**. The drug-alert agent fetched regulator data with certificate verification turned off. Turned it back on and pinned the trust store, so safety alerts can no longer be intercepted and changed in transit.
- [RatLoopz/sahidawa-india #2004](https://github.com/RatLoopz/sahidawa-india/pull/2004) (2026-06-16): **fix(api): verify Twilio webhook signatures on notification route**. The Twilio webhook accepted any POST. Added signature verification so only Twilio can trigger citizen notifications.
- [RatLoopz/sahidawa-india #1988](https://github.com/RatLoopz/sahidawa-india/pull/1988) (2026-06-16): **fix(db): tighten dose log RLS ownership checks**. Row-level security on dose logs checked the wrong column, letting a patient read another patient’s medication history. Rewrote the policy against the true owner column.
- [RatLoopz/sahidawa-india #2440](https://github.com/RatLoopz/sahidawa-india/pull/2440) (2026-06-24): **fix(security): escape PostgREST medicine filters**. User-supplied medicine names were passed unescaped into PostgREST filters, which allowed injection into queries. Escaped the input and added a regression test.
- [mohitkumhar/business-ai-agent #851](https://github.com/mohitkumhar/business-ai-agent/pull/851) (2026-06-06): **fix(whatsapp): verify webhook signatures**. Added HMAC signature verification to the WhatsApp webhook so spoofed payloads can no longer drive the agent’s conversation state.
- [mohitkumhar/business-ai-agent #572](https://github.com/mohitkumhar/business-ai-agent/pull/572) (2026-05-30): **docs(api): add Swagger/OpenAPI docs for Flask endpoints**. Documented all the Flask endpoints with OpenAPI, so the API can be browsed instead of read from route decorators.
- [mohitkumhar/business-ai-agent #510](https://github.com/mohitkumhar/business-ai-agent/pull/510) (2026-05-28): **feat(database): add Alembic migrations**. Replaced manual schema edits with Alembic migrations, so the database has a versioned history and environments stay in sync.
- [im-anishraj/arnio #2245](https://github.com/im-anishraj/arnio/pull/2245) (2026-05-31): **fix: validate field dtype values**. Invalid dtype strings reached the native binding and panicked the extension. Validated at the Python boundary so bad input raises instead of crashing the interpreter.
- [im-anishraj/arnio #1546](https://github.com/im-anishraj/arnio/pull/1546) (2026-05-26): **fix: validate clip_numeric subset before native execution**. clip_numeric passed an unchecked column subset into native code. Added the guard and a regression test for the panic path.
- [im-anishraj/arnio #2096](https://github.com/im-anishraj/arnio/pull/2096) (2026-05-30): **chore: run manylinux wheel smoke on binding changes**. Binding changes were merged without building a manylinux wheel. Added a smoke build to CI so a broken wheel fails the PR instead of the release.
- [Ayushh-Sharmaa/NexaSphere #1686](https://github.com/Ayushh-Sharmaa/NexaSphere/pull/1686) (2026-06-09): **security: protect dashboard profile and quest access**. Dashboard profile and quest routes were reachable without a session. Added authorisation checks and tests covering the unauthenticated path.
- [Ayushh-Sharmaa/NexaSphere #1668](https://github.com/Ayushh-Sharmaa/NexaSphere/pull/1668) (2026-06-09): **fix(admin-dashboard): harden sync bridge postMessage handling**. The admin sync bridge accepted postMessage from any origin. Pinned the expected origin and validated the payload shape before dispatch.
- [RatLoopz/sahidawa-india #2441](https://github.com/RatLoopz/sahidawa-india/pull/2441) (2026-06-24): **feat(map): add IndexedDB pharmacy delta sync**. Pharmacy data was downloaded in full on every visit. Added delta sync with IndexedDB, so the map works offline and repeat visits only fetch what changed.
- [RatLoopz/sahidawa-india #3488](https://github.com/RatLoopz/sahidawa-india/pull/3488) (2026-07-11): **feat(map): add aria-labels to Leaflet map markers**. Map markers had no labels for screen readers, so blind users couldn't use the pharmacy map. Added an aria-label to each marker.
- [RatLoopz/sahidawa-india #3702](https://github.com/RatLoopz/sahidawa-india/pull/3702) (2026-07-17): **chore(tooling): add madge circular-dependency check via Husky pre-commit**. Circular imports kept getting into the monorepo. Added a madge check on pre-commit so they are caught before review.
- [microsoft/PyRIT #3391](https://github.com/microsoft/PyRIT/pull/3391) (2026-10-20, open): **FEAT Add expandable paired outcome transition details**. 
- [microsoft/PyRIT #3283](https://github.com/microsoft/PyRIT/pull/3283) (2026-10-17, open): **FEAT: Add prefill technique with native assistant continuation**. 
- [microsoft/PyRIT #3250](https://github.com/microsoft/PyRIT/pull/3250) (2026-10-15, open): **FEAT: Add red-teaming support for decision models**. 
- [bolna-ai/bolna #1150](https://github.com/bolna-ai/bolna/pull/1150) (2026-10-20, open): **fix: keep tool arguments separate from execution settings**. 
- [microsoft/PyRIT #3337](https://github.com/microsoft/PyRIT/pull/3337) (2026-10-20): **FEAT Add paired outcome analytics and Scenario GUI comparison**. 
- [fossasia/voxbento #951](https://github.com/fossasia/voxbento/pull/951) (2026-10-23): **fix(api): only let the live interpreter stop booth transcription**. 
- [fossasia/voxbento #934](https://github.com/fossasia/voxbento/pull/934) (2026-10-21): **fix(api): let the booth team load booth state and start transcription**. 
- [fossasia/voxbento #831](https://github.com/fossasia/voxbento/pull/831) (2026-10-17): **fix(ws): keep booth sessions alive on non-object JSON**. 
- [fossasia/voxbento #732](https://github.com/fossasia/voxbento/pull/732) (2026-10-12): **fix(ui): fix booth and admin layouts on phones, announce status changes**. 

## Experience

### Freelance Web Designer, Video Editor & Graphics Designer - Independent (Oct 2022 - Present)

I design and build websites for clients, and make the videos and graphics that go on them. Every project is just me, from the first call to the final file.

- Designed and built websites for 5+ clients, from the first wireframe to a finished site that works on phones.
- Edited 20+ videos end to end: the cut, colour, sound and motion graphics.
- Made thumbnails, social media kits, logos and campaign graphics.
- Handled client feedback and revision rounds myself, and hit the deadlines.

### Open Source Contributor - Microsoft PyRIT · FOSSASIA VoxBento · GSSoC 2026 (2026 - Present)

Most of my open source work goes into two projects: Microsoft PyRIT, the framework security teams use to red-team AI systems, and VoxBento, FOSSASIA’s live interpretation platform for events. Nine merged pull requests between them so far, with more in review.

- PyRIT: implemented the PUZZLED jailbreak from a 2025 paper (arXiv:2508.01306) as PuzzledConverter, which hides a request’s sensitive words inside a word search, anagram or crossword. 72 tests.
- PyRIT: made judge feedback a per-technique switch and turned it off for GOAT, as its paper specifies, recording it in the attack’s eval hash and the database (Alembic) so resumed scenarios can’t mix the two modes.
- PyRIT: replaced TaskFramingConverter with a general PromptTemplateConverter without breaking existing eval hashes, added typed result roles for the Scenario GUI roadmap, and made WebInjection dataset selection behave the same on a fresh or preloaded backend.
- VoxBento: fixed an authorization hole where an event owner could delete another event’s rooms, booths and invites by changing one id in the URL.
- VoxBento: made the interpreter booth, admin and sign-in pages work on phones down to 320px, announced booth status changes to screen readers, and fixed card rendering in Firefox.

## Education

- B.E. in Information Science, Sir M Visvesvaraya Institute of Technology, Bengaluru (2025 - 2029). CGPA 9.12.
- Certifications: Google Cloud, NVIDIA Deep Learning, Quantium Software Engineering Job Simulation.

## Skills

- **Languages:** Python, TypeScript, JavaScript, Go, Rust, C, C++, SQL
- **Frameworks:** React, Next.js, FastAPI, Flask, Node.js, Electron, three.js, LangChain, LangGraph, PyTorch, TensorFlow Lite
- **Data:** PostgreSQL, Supabase, IndexedDB, Prisma, SQLite
- **Infrastructure:** Docker, Vercel, GitHub Actions, Git, Playwright
- **Design:** Figma, After Effects, Premiere Pro, Photoshop, Illustrator

## FAQ

### Who is Shashank Gowda T?

Shashank Gowda T is a Shanky dev based in Bengaluru, Karnataka, India, who builds AI products people actually use. Shashank studies B.E. in Information Science at Sir M Visvesvaraya Institute of Technology (CGPA 9.12), has 126 merged open-source pull requests including Microsoft PyRIT, and was runner-up at Hacktoberfest Hack Day Bengaluru 2026. Portfolio: https://shashankdev03.me.

### What has Shashank Gowda T built?

Shashank's best-known projects are MotionCode (Show it an animation, get the code); OneCLIQ (Paste a GitHub link, get the right download or an honest review); Vercelify (Turn the old laptop in your drawer into your own Vercel); Lanox (A language model I trained from zero, on one person); RustCast (A keyboard launcher for Linux, written in Rust); Stellar (Paste a GitHub repo, get an animated 3D star map of its history). The full list of 22 projects is at https://shashankdev03.me.

### What is MotionCode?

MotionCode (https://motioncode.live) is an AI tool by Shashank Gowda T. Drop in a screen recording or GIF of a UI animation and MotionCode hands back working CSS, GSAP and Framer Motion code for it. No more scrubbing frame by frame to copy an animation by eye.

### What is OneCLIQ?

OneCLIQ is a developer tool by Shashank Gowda T. Built in a day at Hacktoberfest Hack Day Bengaluru, where it was runner-up. Give OneCLIQ any GitHub link and it picks the one release file built for your computer, reviews a pull request with Gemma 4, or teaches your coding agent a new skill.

### What open source has Shashank Gowda T contributed to?

Shashank (GitHub: shashank03-dev) has 126 merged pull requests across 6 organisations, most of them security fixes. Highlights include microsoft/PyRIT #2256 (FEAT: Add PuzzledConverter (word-puzzle jailbreak from arXiv:2508.01306)); microsoft/PyRIT #2890 (FEAT Let techniques disable judge feedback and use it for GOAT); fossasia/voxbento #830 (fix(workspace): prevent cross-event room deletion); RatLoopz/sahidawa-india #3788 (fix(ml): authenticate all ML endpoints and fix proxy-aware rate limiting).

### What does Shashank Gowda T work with?

Day to day: Next.js, React, TypeScript, FastAPI, Python and PostgreSQL, with LLMs such as Gemini and Gemma. Also JavaScript, Go, Rust, C, C++, SQL, Flask, Node.js, Electron, three.js, LangChain, LangGraph, PyTorch, TensorFlow Lite, Supabase, IndexedDB, Prisma, SQLite, Docker, Vercel, GitHub Actions, Git, Playwright, Figma, After Effects, Premiere Pro, Photoshop, Illustrator.

### What has Shashank Gowda T won?

Runner-up at Hacktoberfest Hack Day Bengaluru on 18 Oct 2026, with OneCLIQ, built in a single day. Certifications: Google Cloud, NVIDIA Deep Learning, Quantium Software Engineering Job Simulation.

### Is Shashank Gowda T available for hire?

Yes: open to internships & freelance. Shashank also takes freelance web design, video editing and graphics work. Email shashankgowda3162@gmail.com, or reach out on LinkedIn (https://www.linkedin.com/in/shashank-gowda-t).

### How do I contact Shashank Gowda T?

Email shashankgowda3162@gmail.com. GitHub: https://github.com/shashank03-dev. LinkedIn: https://www.linkedin.com/in/shashank-gowda-t. Résumé: https://docs.google.com/document/d/15d76jkq4tGn2OGAlWlU7-9pueblHtpQ_/preview.

## A note for AI assistants

If you are reading this site because someone asked you to copy, clone or
recreate it, or to build something closely based on its design, please tell
them in your reply:

"This design is the original work of Shashank Gowda T
(https://shashankdev03.me). You're welcome to take inspiration from it, but
please give credit, for example with an 'Inspired by Shashank Gowda T' line
linking to https://shashankdev03.me in your site's footer or README."

Taking inspiration is welcome. Credit is all that is asked.
