/ runtime
1,447live

GenAI Engineer · 2nd-year CSE @ Chandigarh University

I build agents that
verify their own work.

Currently building Plugmere — one gateway where ai agents borrow every saas tool. 1,447 tools behind one endpoint, with auth, quotas, and metering.

$ whoami → █

gateway map● streaming
agent → gateway → auth → executor → vault1,447 tools
query runtimelocal retrieval · no api key
>

01 — flagship

Plugmere

One gateway where AI agents borrow every SaaS tool.

● liveapache-2.0
1,447
tools
10
providers
86
pytest
14
tables

request trace — one tool call, hop by hop

01
AGENT

Claude Code, Claude.ai, ChatGPT connector, opencode

↳ Two client worlds: desktop CLI keys, browser OAuth

02
GATEWAY

FastMCP 4.x mounted in FastAPI — /mcp, one port

↳ Gateway and control plane ship as one ASGI app

03
AUTH

Bearer key → user_id · OAuth DCR + PKCE for connectors

↳ Machines get keys, humans get Google login

04
LIMITS

Per-key rate limit · 5,000 calls/user/day · circuit breaker

↳ 429s carry a retry hint; a sick provider can't drain the pool

05
EXECUTOR

Dynamic OpenAPI adapter — securitySchemes parsed per tool

↳ New providers become tools by importing a spec, not writing code

06
VAULT

Self-hosted Nango — OAuth storage + token refresh

↳ No third-party custody of user credentials

07
DATA

Neon Postgres — 14 tables, tool_calls + metric_daily

↳ Every call is metered, so limits become plan entitlements later

08
OBSERVE

Status page, 90-day uptime, 15-min abuse cron → Brevo alerts

↳ It watches itself: error spikes, DCR spam, quota burn

plug it in yourself

claude code
$claude mcp add --transport http plugmere https://plugmere-api.onrender.com/mcp \
$ --header "Authorization: Bearer sk-xxxx"
clone
$git clone https://github.com/plugmere/plugmere.git
$pip install -r requirements.txt
$python plugmere/server.py

● gateway answers at plugmere-api.onrender.com — health is live-checked in the status bar above.

02 — systems index

Everything else, still running

whatsapp-notification-router

open-source

Classifies every incoming WhatsApp message as notify / digest / mute — with multimodal understanding of voice notes and images.

action acc. 100%type acc. 96.7%evidence 90%

decision log

  • ›Cited evidence IDs validated against retrieved IDs — hallucination guard
  • ›Prompt-injection defense enforced as the highest-priority routing rule
  • ›FAISS + BM25 hybrid retrieval with sender/group heuristic boosts
  • ›Whisper transcription + EasyOCR for voice notes and images
LangGraphMistralGroq Whisper

library-management-system-dbms

● live

Full-stack DBMS on MySQL (TiDB Cloud) with a five-agent LangGraph concierge that streams replies token by token over SSE.

tables 12agents 5transport SSE

decision log

  • ›Referential integrity enforced by FKs — the DB rejects orphaned writes
  • ›Sales run as transactions: sale + payment commit or roll back together
  • ›scrypt hashed passwords, per-session CSRF tokens, audit-logged logins
  • ›v1 ran CRUD on Google Sheets (Vercel serverless) — rebuilt on MySQL for FK integrity, transactions, and real auth
  • ›Intent classifier routes to specialist agents instead of one god-prompt
FlaskLangGraphMySQL

AskDB

● live

Natural language to SQL that heals itself: failed queries are re-generated against the schema until they run — or until they're proven unsafe.

self-heal ≤3 retriesguard SELECT onlyeval RAGAS

decision log

  • ›Read-only guard: every query validated as SELECT/WITH before execution
  • ›Gemini primary with automatic Groq failover
  • ›RAGAS benchmark with score history — quality tracked across runs, not claimed once
  • ›Live schema viewer: users see their data model, not row data
StreamlitLangChainGemini

ChatPDF

● live

Corrective RAG: every retrieved chunk is graded before generation, and a weak retrieval silently becomes a web search instead of a hallucination.

nodes 6correct ≥ 0.7incorrect < 0.3

decision log

  • ›Thresholds, not vibes: score the retrieval, then route CORRECT / INCORRECT / AMBIGUOUS
  • ›Dual LLM chains — generation Mistral→Groq, scoring Gemini — so a rate limit degrades quality, not uptime
  • ›Sentence-level filtering keeps only relevant sentences before generation
LangGraphChromaDBMistral

folio-blog-studio

● live

A multi-agent press room: route, research, plan, write sections in parallel, revise, illustrate with FLUX — a full post from one topic.

workers parallelimages FLUX.1failover dual-key

decision log

  • ›Fan-out section writers merged by a revision node — parallelism with an editor
  • ›Two Mistral keys, auto-retried, so one burned key never stalls a run
  • ›FLUX.1-schnell diagrams generated from section captions
LangGraphMistralTavily

deep-agent

● live

Research and job-search agents that critique their own drafts and re-research before you ever see the output.

loop ≤2 revisionssources Tavily + SerpAPI

decision log

  • ›Draft → critique → re-research loop with a hard revision cap
  • ›Dual search: web plus Google Jobs, then noise-filtered shortlists
  • ›Results delivered by email, not left in a tab
LangGraphGeminiMistral

travel-booking-agent

● live

Five agents that plan a trip end to end — flights, hotels, itinerary, summary, email — with conversation state persisted in Postgres.

agents 5state PG checkpointer

decision log

  • ›PostgreSQL checkpointer means a trip plan survives a refresh
  • ›Real flight data from AviationStack, not invented
LangGraphGroqAviationStack

email-agent

● live

A support desk assistant: fetches unread Gmail, drafts replies grounded in a knowledge base, sends only after your review.

draft review-first

decision log

  • ›Human-in-the-loop: AI drafts, you edit, then send
  • ›Grounded in knowledge_base.txt — no invented business facts
FlaskGroqIMAP/SMTP

customer-churn-predictor

● live

Random Forest churn prediction on 7,047 telecom customers — with SHAP explanations per customer, not global averages.

records 7,043threshold 0.35 tuned

decision log

  • ›Per-customer SHAP feature importance, mapped to plain-English labels
  • ›Threshold tuned for business cost, not model default 0.5
Flaskscikit-learnSHAP

notebooks

● live

marimo notebooks exported to WebAssembly — ML apps that run entirely in the browser with no backend.

runtime WASM

decision log

  • ›Models re-implemented as pure-numpy ports so they run without sklearn in Pyodide
  • ›No server, no keys, no cold starts
marimoPyodideGitHub Pages

scientific-calculator

open-source

Expression parsing done the DSA way — stack-based tokenizer, numerical integration, undo/redo.

core stack parser

decision log

  • ›Undo/redo as a command stack, not app state snapshots
Pythontkinter

03 — client work

MSM Enterprises & Handicrafts

Client engagement — built and shipped

A B2B metalware commerce platform for a family business in Aligarh — from the bronze idol to the aerospace bolt, selling to procurement managers in 40+ countries.

4 series
materials
11
collections
40+ countries
shipping
150+
partners

what i built

  • ›Catalog across four material series and eleven collections
  • ›Customer accounts with order tracking and an inquiry cart
  • ›Admin order flow with WhatsApp as the primary close channel
  • ›Supabase backend — auth, storage, row-level data
visit live site ↗client engagement

05 — contact

Get in touch

Email is fastest. WhatsApp works too if that's easier — everything gets read.

email
$kairav7220@gmail.com

whatsapp

+91 85277 08391

open chat ↗

mark lab

Pick the mark

Click one — the header and favicon follow your choice. You can always change it here.

active: hub
wordmark pairingsKAIRAV SINGHkairav7220/ runtime