Dating by tokens, matched by usage league across agentic CLIs. Local-first.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Dating by tokens β connect your Claude Code / Codex usage, get sorted into a league (1M / 5M / 10M / 100M / 1B+), and match with people who burn tokens the way you do. The premise: heavy users of these tools share something worth matching on.
Part of the Vibe Suite β companion tools for agentic coding CLIs. Ships as
CLI + npm package + MCP server, plus a local web app. Built on
@pooriaarab/vibe-core.
βΆ Watch the launch video β she matched with the man of her dreams. He was coding in a basement.
https://github.com/pooriaarab/vibedating/raw/main/branding/launch-video.mp4
Local-first. Raw token usage is read and stored on your own machine and never leaves it. Only the coarse league bucket is ever shared β never the raw number, never per-project breakdowns. Live matching is peer-to-peer over a DHT (no central server) and opt-in only; without it the pool is a local seeded demo.
v0 β works locally, privacy-first. Usage is verified from your harness's
real local logs via vibe-core's readHarnessUsage (source real β
verified: true); when no logs are readable you can self-report
(VIBEDATING_TOKENS, unverified) or fall back to a demo value (unverified).
Handles are bound to a persistent ed25519 identity (~/.vibedating/identity.json,
mode 0600): every hello is signed, and a forged signature gets the peer dropped.
β¦or run it ad-hoc:
Self-report a token count (otherwise a demo value is used):
vibedating discover --live joins the public hyperswarm
DHT on your league topic β sha256('vibedate:' + leagueBucket) β so same-league
peers find each other with no central server. On each encrypted connection
the two sides exchange a one-line hello with only
{ handle, league, harness, verified, pubkey, nonce, sig } β the proof fields
sign the hello with your persistent ed25519 identity so a handle can't be
impersonated; raw usage is never put on the wire. Discovered
peers are stored in ~/.vibedating/peers.json and shown by vibedating matches.
Live discovery is off by default. The --live flag is the explicit opt-in
(persisted as the share:live consent scope); every live run prints what it
shares before joining. Ctrl+C leaves the swarm cleanly.
The same local engine drives all three, so you can use it wherever you work:
vibedating open serves the dating UI (profile, match stack, league
ladder) at http://localhost:PORT. The page reads your league + matches from a
tiny local JSON endpoint.vibedating connect / matches.vibedating mcp exposes profile (your league) and matches to any
MCP host (Claude Code, Codex, Cursor, β¦).totalTokens is read into memory, stored at
~/.vibedating/state.json, and shown in the web app only behind an opt-in
toggle. It is never transmitted.--live) as { handle, league, harness, verified, pubkey, nonce, sig } with same-league peers over the hyperswarm DHT. The handshake
parser whitelists those fields, so a peer can't even be sent anything else
into your process; the verified flag and identity pubkey are the only
additions, never a token count.@pooriaarab/vibe-core's consent
ledger (scope share:league), granted on connect and revocable on reset.
Live P2P discovery has its own scope (share:live), default off.Bucketed by lifetime tokens; you match within your league or an adjacent tier (so the tiny 1B+ pool still has people to match with):
| League | Tokens (lifetime) |
|---|---|
| 1M | 1M β 4.99M |
| 5M | 5M β 9.99M |
| 10M | 10M β 99.9M |
| 100M | 100M β 999M |
| 1B+ | 1B+ |
An interactive, self-contained UX prototype (no build, no network):
docs/prototype.html. The shipped local web app
(vibedating open) is an adapted, data-driven version of this prototype.
MIT
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/vibedate)<a href="https://allmcps.com/mcp/vibedate"><img src="https://allmcps.com/api/badge/vibedate?style=directory" alt="Vibedate on AllMCPs" /></a>