Skip to content

🪶 The showcase product

Privacy-first
federated chat.

Discord-shaped chat, end-to-end encrypted via AlgoChat. Servers are federated peers. AI agent bridge (Merlin) lives in any channel. Built in Rust. Open source.

See the roadmap → Repo private during dogfooding. Goes public when M5 ships.
A real corvid-chat conversation between a user and the Merlin bot. Multiple channels in the sidebar, members panel showing both participants, AI reply rendered with a distinct avatar.
The @ mention dropdown showing PEOPLE, 'you' and 'merlin (bot)'. Filtered while typing.
@ mention dropdown. Type @ to bring up channel members
Edit + delete actions on own messages, with the conversation flow intact.
Edit + delete. Own messages get inline actions; deletes are tombstones (server keeps metadata, drops ciphertext)

What's in it

End-to-end encrypted

Every message is wrapped in an AlgoChat PSK envelope (X25519 + ChaCha20-Poly1305 + HKDF-SHA256 + two-level ratchet) before it hits the server. The homeserver only ever sees ciphertext.

Federated by default

Servers are Ed25519-signed peers. Run your own at home or use the CorvidLabs-hosted server. Same code either way. Messages route across federation with anti-replay protection.

AI agent bridge

A per-server Merlin bridge connects to any HTTP /chat endpoint (Ollama / Claude / OpenRouter). `@merlin` in a channel routes through the bridge; the bot lives as a regular chat client with its own keys.

Multi-channel + edit / delete / mentions

iced desktop client with a real chat UI: channel sidebar, @ mention dropdown, / slash commands, per-channel drafts, unread counters, edit + delete for own messages.

USDC tips on Algorand (planned)

Right-click a message → tip 1 USDC. Sender's wallet signs the transfer; receiver sees pending → confirmed in ~3 seconds. M4 work; CLI infrastructure already in place.

Plugin runtime (planned)

WebAssembly modules sandboxed by Wasmtime. Capability-based, deny-by-default. Slash commands + event hooks first; message hooks last for safety. M5 work.

Stack

Rust workspace with 7 crates, ~30 tests, 21 specs, deployable as a single binary or via Docker + Caddy.

Crates

  • corvid-chat-proto. Wire frames + ids
  • corvid-chat-crypto. AlgoChat PSK wrapper
  • corvid-chat-server. Axum + SQLite + federation
  • corvid-chat-client. Iced 0.13 desktop UI
  • corvid-chat-cli. Admin CLI + invite redeem
  • corvid-chat-admin. Ratatui TUI
  • corvid-chat-merlin-bridge. AI bridge

Deploy paths

  • • Local LAN, scripts/run-local.sh
  • • Production VPS. Docker + Caddy (auto-TLS)
  • • Production VPS. Systemd hardened unit
  • • Federation. Full mesh, Ed25519-signed peer dials

Milestones

M0–M11. Tracked in MILESTONES.md in the repo.

Coming when M5 ships

The repo is private during M0–M5. Flips public when the plugin runtime lands and the launch story is ready. Until then, this page is the front door.