RISHET MEHRA

Developer tools · Open source

I build tools
people install.

codex-spend, 1,678 npm downloads in 12 months. Local-only, strangers keep installing it. No auth, no telemetry.

Currently looking for internships where I ship , not a research audience, a user audience.

Rishet Mehra, GitHub avatar
Rishet MehraAug 2026
-PRs
-merged
-repos

github.com/Rishet11 · 59 repos

I plan before I prompt, audit every diff, and keep budgets small. I ship tools people install. Paxel report has the detail.

Featured work

Four tools, four different shapes.

Each one names a limitation.

01 / OmniCommand · omx npm: omx-cmd · interactive demo

The terminal tool for every format.

Type omx convert report.pdf to markdown and it just works. No flags to memorize. Install once with npm install -g omx-cmd, works offline. Live demo →

Stack: TypeScript · Node 20+ · local-first

  • One tool for docs, images and video, plain English commands
  • Batch + --dry-run with progress, ready for scripts
  • Works offline; add --refine only for scanned PDFs

Limitation: scanned PDFs need --refine for best results.

cli/src/index.ts - the real entry
#!/usr/bin/env node  ·  omx-cmd 1.1.0
program.name('omx').description('The terminal tool for every format.')
  .option('--json') .option('--dry-run') .option('--overwrite')
// convert / compress / trim / extract / resize / doctor / config
Read the code on GitHub →
bash - omx● interactive
$
Try:

Replica of the demo at rishet11.github.io/OmniCommand - same doctor / convert / compress flows, extracted from src/components/Terminal.tsx. Click chips or type - progress animates, bash window on deploy does the same.

Source: /tmp/OmniCommand/src/components/Terminal.tsxGitHubLive

02 / codex-spend live on npm · terminal

See what Codex actually burned.

A local CLI that parses Codex sessions and shows token burn by model and by file. 1,678 downloads in 12 months, no telemetry, no auth.

Stack: Node · Commander · no deps
  • Runs offline from files on disk, no API needed
  • Shows cost by model and by file, so the expensive file pops out
  • One flag for 7-day or 30-day view, zero config

Limitation: only as good as Codex's own session logs. Breaks if the log format shifts.

src/parse.js , the core
// read local Codex sessions, sum tokens by model
for (const s of sessions) {
  tokens[s.model] = (tokens[s.model]||0) + s.usage.total;
} // no network, no auth , just files on disk
Read the code on GitHub →
codex-spendlocal · no telemetry
$ npx codex-spend --last 7d
 12 sessions · 1.2M tokens
  gpt-4o  820k  ████████░░
  gpt-4o-mini  380k  ███░░░░░░░
 priciest file: src/eval/harness.py  41k

Local-only. Parses the session files already on disk.

03 / VidWise · eval harness

Eval harness · no metric until reproduced
chunk recall@KWilson CI · versioned run artifact required
citation accuracyGrounding check against transcript spans
negative-query abstentionRefuse when video does not contain answer
Custom harness, not RAGAS. Python 3.11Repo →

Evaluation before claims.

Ask questions over video transcripts and get answers with timestamps. I built a small eval so I don't claim numbers I can't reproduce.

Stack: Python · custom eval

  • Finds the right chunk, not the whole transcript
  • Every answer must point to where it came from
  • Says “I don’t know” when the video doesn’t contain the answer

Limitation: long, noisy transcripts still hurt results.

eval/harness.py , the core
# Wilson interval on recall , one run is not a claim
recall = hits / total
lo, hi = wilson_ci(hits, total, 0.95)
# only commit if hi - lo is small and run is versioned
Read the code on GitHub →

04 / LeadPilot ● live app · live app - not a demo

Live SaaS - open it, run it, keep the data.

Find leads, score them and export them. Clone and run locally with make dev, not just screenshots.

Stack: Next.js · FastAPI · Postgres

  • Finds businesses from maps, Instagram and websites
  • Scores them and drafts outreach
  • One command to run everything, make dev

Limitation: needs API keys for live scraping, otherwise demo mode.

Test it locally - verified, not mocked
# clone + run - frontend, api, worker (one command)
git clone https://github.com/Rishet11/LeadPilot.git
make dev  # api :8000 + worker + frontend :3000
# or
docker-compose up --build  # same stack, containerized
Read the code on GitHub →
LeadPilot - live · testable now
StackFastAPI + Next.js 16
Runmake dev
Deployvercel · railway · docker
Clone & run →

Verified in /tmp/LeadPilot · 36 files · pytest suite · not a demo.

↗ live app - clone it, it runs

Open source

PRs that got merged.

My PRs, filter by merged / open. Shipped to pingdotgg/t3code, Untrivial-ai/agent-orchestrator, Graphify-Labs/graphify, SdSarthak/AegisAI, robocurve/inspect-robots, agentrhq/webcmd and more, every card links to GitHub.

,total
,merged
,open

Fetching PRs…

mergedpingdotggpingdotgg/t3code

Search, T3

PR #7125 in pingdotgg/t3code.

mergedpingdotggpingdotgg/t3code

Fakes fix, T3

PR #7116 in pingdotgg/t3code.

mergedrobocurverobocurve/inspect-robots

Robot fakes

PR #297 in robocurve/inspect-robots.

mergedUntrivial-aiUntrivial-ai/agent-orchestrator

AO search

PR #4189 in Untrivial-ai/agent-orchestrator.

mergedagentrhqagentrhq/webcmd

Webcmd PR

PR #270 in agentrhq/webcmd.

mergedpingdotggpingdotgg/t3code

T3 fakes

PR #7089 in pingdotgg/t3code.

View all on GitHub →

Experience

Where I shipped.

Two internships , data pipeline reliability at Zanista AI and large backlog triage at BharatFare. Both taught me how agents and pipelines fail and how to make them observable.

Resume , one page, updated Aug 2026 pdf

View

AI Research & Development Intern · Zanista AI (UK)

Jul 2025 – Sep 2025

Built scrapers with Scrapy, Playwright and Selenium for JS rendered pages behind paywalls and auth, with retries and rate limit handling to ingest 10,000+ articles daily. Parsed messy HTML and JSON with regex, deduplicated and normalized into PostgreSQL with schema validation, and built LLM pipelines for summarization, NER, sentiment and topic clustering. Lens: reliability under rate limits, observability, and eval before claims.

Zanista AIScrapyPlaywrightPostgreSQLLLM pipelinesReliability

UI/UX & Web Development Intern · BharatFare Travel & Technologies (UK)

Nov 2025 – Jan 2026

Triaged a 281 issue backlog and shipped 40 plus fixes across core user flows, cutting page load times and stabilizing critical paths. Ran competitor analysis that surfaced 3 UX gaps adopted into the roadmap. Lens: agent orchestration needs the same triage discipline, prioritize, ship small, measure load time impact.

BharatFareBacklog triage40+ fixesPerformanceUX

Co-Head · E-Cell DTU

2024 , present

Ran E-Cell DTU events and builder weeks. Shipped the site and the ops.

LeadershipOpsEvents

DTU · Math & Computing

'27

B.Tech, Delhi Technological University. Building between classes.

DTUMCE

Shelf

Wins, linked to proof.

Gated: one scan per win. Add scans to public/proof/ to publish.

gatedWins appear when certificate scans are supplied. See ASSETS_NEEDED.md, no count prints without a scan.

Writing

Notes on building.

Why I kept codex-spend local

The fastest way to kill a CLI is to add auth. The token data is already on disk , parse it there. That constraint shaped the whole tool.

Aug 2026

Proof

less more
github.com/Rishet11 →

Loading contributions…

Anybody can write code that a computer can understand. Good programmers write code that humans can understand.

Martin Fowler