Send coding tasks to AI agents from your phone. Nothing merges until you approve it.
Project site ↗GitHub ↗
- OPEN SOURCE · MIT
- SELF-HOSTED, NOT IN STORES YET
- CLAUDE CODE · CODEX · MANAGED AGENTS
- CI ON BACKEND + MOBILE
what’s new ✦Three interchangeable agent engines (Claude Code, Codex, Anthropic Managed Agents) behind one interface, and two runtimes: your own laptop, or Phodex Cloud with the laptop closed.
the problem
AI coding agents are fast, but handing one your repo while you’re away from the laptop means trusting a diff you haven’t read.
what I built
A Flutter app talks to a FastAPI + PostgreSQL backend I architected. It dispatches tasks to Claude Code, Codex or Anthropic Managed Agents, on your laptop or on Phodex Cloud. You watch the event stream live, then approve or reject the git changes from your phone.
A Claude Code and Codex plugin that teaches you the code your AI just wrote, then quizzes you on it.
Website ↗npm ↗GitHub ↗
- 1,228 NPM INSTALLS
- 14 GITHUB STARS
- CLAUDE CODE + CODEX
what’s new ✦It lives inside the agent’s own tool-use loop, so every lesson and question is built from the diff that was just written, not a generic tutorial. No extra app, no signup, no API key.
the problem
It’s easy to accept code from an AI assistant without understanding it.
what I built
An installable plugin that hooks into the Claude Code and Codex tool-use loop. Right after a task, it asks first, then explains the 2–4 key ideas using your actual diff, quizzes you, and tells you what to double-check next time you reuse the pattern.
The LeetCode tutor that refuses to give you the answer. Every hint is anchored to a problem you already solved.
Chrome Web Store ↗Site ↗
- LIVE ON CHROME WEB STORE
- 4-RUNG HINT LADDER
- DETERMINISTIC STUDENT MODEL
what’s new ✦A deterministic student model built from your real LeetCode history. Hints are anchored to problems you personally solved, and hint depth is a pure function of what you’ve done (a stated plan, a submission), not of what you ask for.
the problem
Every other hint extension starts from zero and gives generic advice like “think about dynamic programming”.
what I built
Recall reads your LeetCode submission history once, builds a deterministic model of what you know, and while you sit on a problem it hands you hints that cite your own past solves, e.g. “In Longest Palindromic Subsequence you decided what one stored value stood for before writing any transition.”
Answer evaluation for UPSC aspirants, grounded in thousands of real topper answers instead of free-form AI rewrites.
Live site ↗
- 1,000+ SIGN-UPS
- 5,497 QUESTIONS INDEXED
- FIRST PAID USERS
- RAG + VISION OCR
what’s new ✦Photograph a handwritten answer and get it scored against 4,552 real topper answers, with a side-by-side view of your answer, the topper’s, and exactly what’s missing.
the problem
Generic AI rewrites don’t help India’s 1M+ UPSC aspirants, because the model has nothing real to check its output against.
what I built
A RAG pipeline over 4,552 topper answers, a handwriting-capture flow with vision-model OCR so students can photograph their answer, and a three-panel view: your answer, the topper reference, and the gap between them.
what users taught me
Aspirants photograph whole answer sheets, not single answers, so the OCR had to split pages into questions first. Scores alone didn’t change behaviour; the side-by-side gap view did. The first paying users arrived before any marketing, from the free evaluation itself.
Save the moment you get confused. Learn the pattern later.
Live site ↗
- CHROME EXTENSION · LIVE
- EARLY USERS, PRE-LAUNCH
- GEMINI BATCH ANALYSIS
what’s new ✦“Capture now, analyse later”: one keystroke saves the moment without breaking focus, and Gemini finds recurring confusions across hundreds of moments in the background.
the problem
When you’re confused you don’t stop to reflect, and AI that interrupts you makes focus worse.
what I built
A Manifest V3 extension for keyboard-driven capture, an Express backend that batches moments into snapshots for Gemini to analyse asynchronously, and a dashboard to review the patterns it finds.
An AI evidence assistant for the officers who decide caste and domicile certificates on Chhattisgarh’s Sewa Setu portal.
GitHub ↗
- SEWA SETU INNOVATION HACKATHON
- REAL PUBLIC MIS DATA
- SYNTHETIC CITIZENS
what’s new ✦Probabilistic record linkage (Splink, Fellegi–Sunter) that matches a parent’s or sibling’s old certificate across Hindi/English spellings and scripts, built on real public MIS data.
the problem
Caste certificates are 22% of Sewa Setu applications but 61% of rejections, and officers can’t look up a relative’s earlier certificate even though the rules accept it as evidence.
what I built
Record linkage across spellings and scripts (Splink, Fellegi–Sunter), a side-by-side evidence panel with validity checks, reasoned orders that cite only records, and a district view built on real public data.
An iPhone storage cleaner for similar photos, screenshots, large videos and duplicate contacts. It runs entirely on the phone.
Landing page ↗GitHub ↗
- SWIFTUI · SWIFT 6
- ZERO PACKAGES
- NO ACCOUNT, NO UPLOAD
what’s new ✦Finds similar photos, screenshots, big videos and duplicate contacts entirely on the phone: SwiftUI + Swift 6, zero third-party packages, no account, nothing uploaded.
what I built
Designed in Figma first, then built in SwiftUI for iOS 17+, with a robin mascot that reacts to what the app is doing. Built for the AppFactory App Builder selection task.
Catches errors in government service applications before they’re submitted. 1st prize at E-Summit 2026, IIIT Naya Raipur.
Live site ↗GitHub ↗
- LIVE
- BUILT IN 24 HOURS
- 40 E-DISTRICT SERVICES
- HINDI · ENGLISH · HINGLISH
what’s new ✦OCR reads Aadhaar/PAN uploads, pre-fills the form and cross-checks every field before submission, across 40 e-District services, with a WhatsApp pre-check by reference ID.
what I built
Schema-driven forms, OCR on Aadhaar/PAN uploads that prefills and cross-checks fields, a validation engine, an AI review panel, a WhatsApp pre-check with reference IDs, and a Gemini assistant.
App developer intern at AFTR Labs. I built BharatCare’s cross-platform app in Flutter and took it from first commit to live on the App Store and Google Play inside the internship.
App Store ↗Google Play ↗
- LIVE ON BOTH STORES
- SHIPPED IN UNDER 4 MONTHS
- 100+ INSTALLS ON PLAY
- 3 LANGUAGES
my scope
The Flutter app end to end: screens, state, offline-safe data flow, and the integration with the FastAPI backend (auth, AI symptom assessment, report explainer, media upload). I also owned the Android (APK/AAB) and iOS build configuration and release pipeline for both stores.
after launch
Multilingual support for 3 languages, in-app subscriptions, cached feature flags and secure session refresh, shipped as store updates.
what I’d do differently
Instrument product analytics from day one. We shipped features faster than we measured them, so post-launch priorities were guesses for the first weeks.
Research intern at LAMIH (CNRS UMR 8201), Université Polytechnique Hauts-de-France, with Prof. Alaa Daoud. I model hourly EV-charging load from public charging-session data. Remote, part-time alongside college.
Read the write-up ↗LAMIH lab ↗
- 7 PUBLIC DATASETS · 261K STATION-HOURS
- XGBOOST HURDLE MODEL
- R² 0.89 · MAE 1.9 kWh, HELD-OUT TEST
- LIVE MAP DEMO + PARITY TEST
what’s new ✦A “hurdle” split: an XGBoost classifier decides whether a site is charging in a given hour, a Tweedie regressor predicts how many kWh when it is. 500 trees each over 44 features: per-region local time, session counts, lags from 1 hour to 1 week, rolling statistics.
the data
Charging sessions from Palo Alto, Caltech (ACN), Perth, SAP, Boulder, Dundee and Paris, harmonised and split into hourly energy per site, then reindexed so idle hours appear as zeros. About 65% of station-hours have no charging, which is why the hurdle split matters.
what I learned
Our first 70/15/15 split leaked time: hours from the same weeks landed in train and test, and R² 0.92 flattered us. A chronological 85% development set with 5-fold time-series CV and a 15% untouched final test gave R² 0.89 and MAE 1.9 kWh. The lower number is the one I trust.
also built
An earlier live demo: a FastAPI + MapLibre map of Île-de-France where simulated vehicles charge at six sites and the model is scored as they move, with a parity test asserting all 38 live features match the offline pipeline to 1e-9 (it caught a drifting expanding_mean).
also
Helped shape an explainable traffic-risk prototype (computer vision + causal inference) presented at the NeuroSym Workshop of GDR RADIA.
Cover photo: Mont-Houy campus, UPHF Valenciennes, by Jérémy-Günther-Heinz Jähnick (Wikimedia Commons, GFDL 1.2).
B.Tech in Computer Science and Engineering at IIIT Naya Raipur. GPA 8.17.
- JEE MAIN 99.26 %ILE
- JEE ADV AIR 11,908
- 1.4M+ CANDIDATES
also
Led finance workshops with Zerodha Varsity: session planning, marketing, sponsorship and outreach, with 100+ students per session.
Cover photo: IIIT Naya Raipur campus by VishuN (Wikimedia Commons, CC BY-SA 4.0).