Share LLMs, not API keys

Mesh nodes expose their LLM providers without leaking credentials. Join with signed invite tokens. Even as QR codes.

How It Works

Each mesh node runs a ProviderHostActor that exposes its local LLM providers to the network. Remote nodes route chat requests via MeshChatProvider. Only chat messages and responses traverse the network — API keys never leave the host machine.

Security Model

Host Machine
ProviderHostActor (runs LLM)
🔒 API Key stays here
Invite: ed25519 signed grant
↔ ChatMessage
Guest Machine
MeshChatProvider (proxies)
❌ No API key needed
Token verified offline

Getting Started

# Host: generate invite
qmtcode --mesh --mesh-invite="Team" --invite-uses=5 --invite-ttl=7d

# Guest: join mesh
qmtcode --mesh-join=qmt://mesh/join/BASE64TOKEN

# Guest's agent auto-discovers providers via DHT
# Routes transparently — no config needed

Key Properties

  • No credential exposure: API keys never leave the host. Guests send chat messages, not credentials.
  • Signed invite tokens: ed25519-signed grants. Verified offline. No network call to a central server.
  • Usage limits: Each invite has a max use count and TTL. Expire automatically.
  • Per-invite revocation: Delete an invite_id from the host's InviteStore to revoke immediately.
  • QR codes: Invite tokens encode as QR codes for easy sharing in person.
  • DHT discovery: Guests discover providers via Kademlia DHT. No manual endpoint config.

See It In Action

Check out the Credentialless GPU Sharing showcase for a complete walkthrough.