Aur realise hua — Claude Code mere terminal pe hai, mere paas nahi.
So I built Sandesh. #BuildInPublic #MCP #ClaudeCode
Draft once, post everywhere. LinkedIn, Threads, Instagram, YouTube — all in your voice, scheduled to land when your audience is awake.
Scroll to exploreA couple of minutes, end to end: draft a post, render it, preview every platform, and publish — all driven from Claude Code in the terminal. (Plays muted — tap for sound.)

OAuth-connect once per platform. Compose, attach media, post or schedule — Sandesh handles the platform-specific quirks.
Type one rough thought. Sandesh chats with you, references your past posts, and returns four platform-tuned drafts ready to confirm.
Generic AI writes generic copy. Sandesh learns your voice from your own posts and writes for that voice — not the model's.
Same card layout, same actions, same UX habits — minus LinkedIn's algorithmic noise. Compose, attach images / videos / PDFs, schedule, and see your activity feed in one place.
Pick date and time — Sandesh queues the post, watches OAuth tokens, and publishes at exactly the moment you set. Drafts hold ideas; failed rows tell you why and let you retry once you fix the cause.
One MCP per platform. Hard-isolated, OAuth-protected. Attach the endpoint you need, talk to Claude Code, and ship a post — drafts, schedules, edits, retries, and live LinkedIn-style previews all flow back through the chat.
sandesh.devfrend.com/api/mcp-linkedinsandesh.devfrend.com/api/mcp-threadssandesh.devfrend.com/api/mcp-instagramsandesh.devfrend.com/api/mcp-youtubeSandesh runs as a publishing layer on top of the same MCP fabric as Setu. Ideate prompts flow through a desktop Claude Code answerer; the preview envelope renders in-browser; per-platform OAuth fan-out handles the actual publish.
[ 01 ]
cloud
Ingress
Browser composer
/ideate · CORS + Bearer
Vercel · /api/sandesh-chat
send · confirm · publish
sandesh_chat_messages
rls per user · realtime publication
[ 02 ]
desktop
Process
Sutra · SSE bridge
electron main · keytar token store
Local MCP · 127.0.0.1:9000/sandesh
sandesh_chat_respond_begin/chunk/finish
Preview envelope
json-schema · CI-hashed across 3 copies
[ 03 ]
back to browser
Confirm + draft
Browser preview
real LinkedIn / Threads / IG card
Operator clicks Publish
human-in-the-loop · always
pa_scheduled_posts
fan-out worker fires per platform
URN · ugcPosts API
Threads
media-id · two-step publish
media-id · b64 shortcode
YouTube
video-id · publicAtPrivacy
01
Per-platform OAuth, one chat surface
LinkedIn, Threads, Instagram, and YouTube each have their own OAuth flow, token store, and publisher. They surface through one chat composer and one preview envelope — the operator only sees "draft" and "publish."
02
Shared Supabase, JWT-compatible with Setu
Sandesh and Setu point at the same Supabase project (`avcnoywxnkajfuobftmr`). A Setu-issued JWT validates as the same `auth.uid()` against Sandesh RLS — so the Setu dashboard can drive sandesh-chat over CORS+Bearer without a token exchange.
03
Twin MCP handlers, deliberate split
Vercel `/api/mcp` registers post/schedule tools (10+ across LinkedIn/Threads/IG/YT). The chat-respond family lives only in Sutra (Electron) — Vercel serverless can't hold a persistent answerer. External Claude Code clients post via Vercel; chat responses come from the desktop.
04
Per-platform preview envelopes
Every assistant reply carries a structured preview envelope validated against a JSON schema duplicated across three locations (Vercel, Sutra, and the Sandesh skill). CI hashes all three — drift = red build. Browser renders a real LinkedIn-style preview before publish.

Amar Gupta
AI-Powered Full-Stack Developer · Delhi / Remote
Sandesh is one of five dogfooded products in my portfolio — built end-to-end as a demonstration of MCP / AI / full-stack engineering, not as a startup. Real OAuth tokens, real publish pipeline, real inboxes — which is why signup stays gated.
Sibling products
All four ride the same MCP fabric, Supabase project, and channel-based wake protocol as Sandesh.
Connect LinkedIn. Paste a few of your past posts. Type your idea. Sandesh handles the rest.