Skip to content
Capy

How Capy works

How Capy works

Capy has no accounts and no server that can read your rooms. This page shows how, from your first 24 words to the minutes after a call.

Each part is written for anyone, with an “Under the hood” note for people who want the names of the real pieces.

  • No accounts
  • Peer to peer
  • AI on your computer

Peer to peer, on Pear

Your device talks straight to theirs.

In most apps, a message goes from you to a company's server, and the server sends it on. Capy has no such server. Your computer connects to the computers of the people in your room, and the app itself makes no web requests at all.

To find each other, devices use a public phone book that nobody owns, called a distributed hash table (DHT). Every room has a topic. Devices that share it look it up, learn each other's addresses and connect. A technique called hole punching gets the connection through home routers and firewalls, and everything on the link is encrypted end to end.

Sometimes a direct link can't be made, for example between two strict mobile networks. Then Capy goes through a blind relay: an always-on computer, run by the Capy team, that passes the encrypted bytes between the two devices. It can't read them, and it is only used when a direct link can't be made.

Who your device talks to

The people in the room, directly

Web requests the app makes

None

Encryption

End to end, on every link

If a direct link fails

A blind relay passes encrypted bytes

HyperDHTfind each other by topicYouThemDirect linkencrypted end to endBlind relaysees only encrypted bytes
The DHT only introduces devices. Messages and calls go on the direct link. The dashed path through the relay is the fallback.

Under the hood

  • RuntimePear · Bare
  • Finding peersHyperDHT · Hyperswarm
  • ConnectionsNoise · SecretStream
  • Relayblind-relay
Pear docs: peer-to-peer, demystified

Your identity

24 words, and no account.

There is no sign-up, email or password. When you start, Capy makes 24 words. They are your identity. The only copy stays on your device, in a file that only your user account can read, and nothing is sent anywhere.

From the words, Capy derives a Keet identity key. Each time the app runs, it also makes a fresh key for this device, and your identity vouches for it. The device key signs everything you write: messages, your profile and read receipts. Everyone else's app checks those signatures, so nobody can write as you, and no server has to say who you are.

Type the same words on another computer and it finds your other devices by itself, and your rooms come over. Log out and the device forgets the words. Type them again to come back.

Where the words live

Only on your device

Account, email, password

None

What signs your messages

A device key your identity vouches for

When you log out

The device forgets the words

How a message becomes yours

  1. Your 24 words

    Kept on this device only. Nothing to reset, nothing sent.

  2. Your identity key

    The same on every device where you type the words.

  3. A key for this device

    Made each time the app runs. Your identity vouches that it is yours.

  4. Signed messages

    The device key signs what you write, so others can check it came from you.

Worth knowing

Lose the words and every device that has them, and nobody can bring your identity back, not even us. There is no account to reset. While one device is still signed in, Settings shows the words again.

Under the hood

  • Identitykeet-identity-key
  • Your other devicesblind-pairing

Rooms and invites

A room is a log everyone writes to.

Each member's device keeps its own log and adds to it. Autobase merges all the logs into one order that every device agrees on, and a small database on top (HyperDB) turns it into messages, profiles and tasks. There is no central copy: the room is the sum of its members' copies.

You join with an invite, a code you paste or scan as a QR code. Your app sends a request, and the app of a member who is online checks the invite and lets you in. From then on the whole history replicates to you, because every member's device holds a copy.

Any member could be running a modified Capy, so no device trusts a record just because it arrived. Before one counts, each device checks its shape, its size and its signature. A record that fails is skipped the same way everywhere.

Where a room lives

On every member's device

Who lets you in

A member who is online

Who checks each record

Every device, before it counts

The invite as a QR code

Drawn on your device

AnaBoYouAutobasemergesOne shared view
Each person writes only to their own log. Autobase gives every device the same merged view.

Joining a room

  1. An invite

    The room's creator makes a code. It can be shown as a QR code, drawn on the device.

  2. A request

    The newcomer pastes it, and their app asks to join.

  3. A member lets them in

    A member's app checks the invite and adds the newcomer as a writer.

  4. The history replicates

    The log copies to the new device and the room opens, messages included.

Under the hood

  • Shared logAutobase
  • DatabaseHyperDB
  • Invitesblind-pairing
  • ChecksAutobase apply
Pear docs: build a multiwriter app with Autobase

Blind peers

A helper that keeps what it can't read.

A room lives on its members' devices. If all of them are offline, a device coming back has nobody to copy from. A blind peer fills that gap. It is an always-on computer that keeps an encrypted copy of the room's data, files included, and hands it to members when they come back. It never has the key that opens any of it, hence blind.

Capy ships with one, run by the Capy team, and there is nothing to set up: every room is registered with it as it opens, except secure rooms, which never are. A blind peer holds signed blocks, so it can keep them or drop them, but it can't change them.

It also keeps the sealed copies of message keys that let a message open while its author is offline (more under storage).

Who runs it

The Capy team

What it keeps

Encrypted copies of rooms

What it sees

IP addresses, how much is stored, when

What it never sees

Messages, files, names

What it can change

Nothing: the blocks are signed

Secure rooms

Never given to it

1 · Everyone is offlineAnaBoBlind peerlocked blocksofflineoffline2 · Ana opens CapyAnaBoBlind peerlocked blockssyncs what she missedoffline
The padlocks are the point: the blind peer stores and serves the blocks, and can't open them.

Under the hood

  • Clientblind-peering
  • What it mirrorsAutobase · Hyperblobs · Hypercore
Pear docs: blind peering

Storage and encryption

Every message has its own key.

Everything lives on the members' devices, in a folder the app keeps (a Corestore). Capy has no database anywhere. Photos, videos and files go in cores of their own, encrypted so that a blind peer can't read them.

Each message is sealed with a key of its own. That key is never in the room's log. It sits in a separate file on each device and travels only to members, over the room's encrypted connections.

So a message can open while its author is away, every device publishes a new prekey each day. The author seals each message's key to the other devices' prekeys, and blind peers keep those copies. Only the device that owns a prekey can open its copy.

Where your data lives

On the members' devices

What seals a message

A key of its own

Where that key is kept

A separate file on each device

Prekeys

New each day, destroyed after about 30 days

Photos, videos, files

Encrypted, in cores of their own

After Delete for everyone

Key dropped, file blocks cleared

SendingMessagesealedSealed messagein the room's logIts keyMembers' devicessent only over the room's encrypted connectionsDeleting for everyoneIts keydestroyed on every device=Unreadableno key opens it
The key and the message live in different places, so destroying the key is enough to make the message unreadable.
  • Delete for everyone is a signed record. Every device checks it, then drops the message's key and clears the files' blocks. What is left in the log is sealed noise.
  • A prekey's private half is destroyed once its time is up (about 30 days, 60 at most), so even the copies a blind peer keeps open for nobody.
  • “Free up space on this device” clears files here only, and they stay cleared after a restart. “Download again” brings them back from a member who has them.

Worth knowing

Delete can't reach what someone already kept. A member who read a message, photographed it or runs a modified app keeps what they have. What is guaranteed: nothing readable is left on honest devices, and nobody who joins later can read it.

Under the hood

  • A key per messageAES-256-GCM
  • PrekeysX25519 · sealed boxes

Secure rooms

Made for one call, then gone.

A secure room is for 2 to 8 people. It has its own folder and its own store, shared with nothing else in the app, and it keeps nothing but the chat: no files, transcripts, minutes, notes or AI.

Its key is made on the owner's device and kept in one file on the device that only your user account can read. It stays there through quits and restarts. The room is erased when the call ends (the default), when its time is up (a day by default, a week at most), when its owner erases it, or when you log out. Erasing purges every core of its store and removes the folder, key file included.

A secure room announces no topic, so it can't be found on the DHT. Members connect straight to each other by key. It is never on your account's list and never given to a blind peer. While one is open, Capy's windows are hidden from screenshots, recordings and screen sharing on macOS and Windows. Linux can't do that, and Capy says so.

People

2 to 8

Where the key lives

On the device, until erased

What it keeps

Only the chat

Blind peers

Never given a copy

Createdkey on the deviceCallchat, audio, videoErasedkey and folder removedkept through quits and restartsnothing leftEach device keeps the key in one fileNever announced on the DHT
By default the room is erased when the call ends. The other ways it ends are in the text.

Worth knowing

Someone in the room can still photograph the screen or run a modified Capy that saves what it sees. Until the room is erased, someone with your computer and your user account can read it, so full-disk encryption (FileVault, BitLocker) is worth having.

Under the hood

  • The roomCorestore · Hyperswarm
  • Hidden windowsElectron setContentProtection

Calls

Calls go between the people in them.

Your microphone is encoded as Opus audio and your camera as VP8 video. Both are cut into small packets and sent straight to the others in the call, over the same encrypted connections the room uses, as unordered messages that don't wait for one another.

The call's insights don't come from a server either. On your computer, a voice detector notices when you talk. Your device writes that, signed, into the room: in batches, every 5 seconds and when you leave. Every device then works out talk share and interruptions from the same records, so every screen shows the same numbers, also for someone who joined late.

Nobody hosts a call. Anyone in it can move the round along, mark a decision or edit the notes. The room's owner, or an admin, can mute or remove someone, and each app obeys only them.

Audio

Opus

Video

VP8

Sent to

The people in the call, encrypted

Talk share

Worked out on every device

AnaYouBoVoice detectorruns on each deviceaudio (Opus) · video (VP8)no server mixes the callTalk share is worked out on every screen from the same records
Each link carries encrypted audio and video straight between two devices. If a direct link fails, the blind relay passes the same encrypted bytes.

Under the hood

  • CodecsOpus · VP8 · WebCodecs
  • TransportProtomux · unordered messages

AI on your computer

The AI runs here, not in the cloud.

Capy's AI is QVAC, Tether's on-device AI. You pick and download each model once in Settings → Notes & AI, and it comes over the peer-to-peer network, not from a website. Until you download one, those features stay off. The models then run in a second process on your computer.

Nobody transcribes you but you. With the transcript on, your computer turns your own voice into text with Whisper or Parakeet and signs each sentence into the room. The text is shared with the room: that is the transcript. The audio is not stored.

When a call ends, the last person to leave writes the minutes with a language model on their own computer, if they have a minutes model. The minutes appear in the room as a card anyone can open.

Stays on your computer

  • The models, and everything they run on
  • Your voice, as sound
  • Catch me up, Prepare me and Search & ask answers
  • Suggestions, until you click

Goes to the room

  • The sentences of your own transcript, signed by you
  • The minutes, when you are the last to leave
  • What you choose to add: a decision, a task

From your voice to the minutes

  1. Your microphone

    Your voice is heard on your computer only.

  2. Whisper or Parakeet

    Turns your speech into text, on your computer.

  3. Signed lines in the room

    Each sentence is signed by you and joins the transcript everyone shares.

  4. A language model

    On the computer of the last person to leave, if it has a minutes model.

  5. The minutes

    They appear in the room as a card that opens the call's notes.

  • Captions can be translated on your computer with Bergamot models.
  • Search & ask finds words in transcripts, minutes and messages, and answers questions about past calls with EmbeddingGemma and the language model, citing the moments.
  • Suggestions for decisions, tasks and the agenda item must quote a line of the transcript. Whatever can't is dropped, and nothing is added until a person clicks.
  • What a model writes is marked as AI and kept apart from what people said.

Worth knowing

No AI service and no Capy server ever receives your voice or your text. A model can still be wrong: treat the AI as a note taker, not as a source of truth.

Under the hood

  • WorkerBare
  • Speech to text@qvac/asr-ggml · Whisper · Parakeet
  • Language model@qvac/llm-llamacpp
  • Models come fromQVAC registry · Hyperswarm
QVAC, by Tether

Updates

New versions come from other peers.

There is no update server. The Capy team publishes each version to the Pear network, and the app downloads it from other computers that already have it, the way a room replicates. Your app checks when it starts and again when a new version appears.

When the download is ready, a card in the sidebar offers Restart. It never restarts in the middle of a call. A production release needs a quorum of the team's signing keys, so a single key can't push an update on its own.

If a new version fails to start twice in a row, Capy puts the previous app back and doesn't try that version again until a newer one arrives. On a Mac outside Applications, Capy offers to move itself there so it can replace itself later.

Update server

None

Where it comes from

Other peers on the Pear network

Release signing

A quorum of the team's keys

If a version fails twice

The previous app comes back

An update's trip

  1. The team publishes

    A new version goes onto the Pear network, signed with the team's keys.

  2. Peers pass it on

    Computers that already have it share it with yours.

  3. Your app checks and downloads

    Capy first checks it can replace itself where it is.

  4. You restart

    Capy offers Restart. The previous app is kept until the new one has started.

Under the hood

  • Updaterpear-runtime

Questions

Short answers.

Can the Capy team read my messages?

No. Messages go between the members' devices and are sealed with keys the team never has. The team runs a few always-on helpers: a blind relay and a blind peer, which see IP addresses and how much encrypted data moves, never what is in it, a seeder that keeps updates available, and an inbox for the bug reports you choose to send.

What happens if everyone in a room is offline?

The room waits. When someone comes back, messages sync. Because Capy keeps encrypted copies on its blind peer, you also get what you missed from it, even if nobody else is online. If you were away for more than 30 days, some messages can show “Waiting for this message” until a member who has the key is online.

Where is my data?

On the devices of the people in each room, in a folder the app keeps. An encrypted copy can also sit on the blind peer. A secure room is only on its members' devices, and is erased.

What if I lose my 24 words?

While one of your devices is still signed in, Settings shows the words again so you can write them down. If you lose the words and every device, nobody can recover your identity, not even us. That is the price of having no account to reset.

Does the AI send anything to a server?

No. Models run on your computer after you download them once, over the peer-to-peer network. The transcript of your voice goes to the room as text, signed by you, because that is what a shared transcript is. The audio is not stored. Capy makes no web requests at all.

Is it free? Why no servers of its own?

Yes, Capy is free, and in beta. Your devices do the work that servers do in other apps: they store the rooms, carry the calls and run the AI. The team only runs a few light helpers, such as the relay and the blind peer, which move and keep encrypted bytes.

What does a blind peer see?

Your device's IP address when it connects, how much encrypted data is stored, and when it is read or written. It can't see what is inside: messages, files, names.

Who can see my IP address?

The people you connect to in a room or a call, the network nodes that help you find them, and the relay and blind peer if they are used. That is how direct connections work. A VPN hides it if that matters to you.

Can someone in the room record it?

Yes. Anyone in a room sees what the room shows and can photograph or record the screen, or run a modified Capy that keeps what it receives. Capy's checks keep a modified app from harming other people's, but they can't stop a member from keeping what they saw. In a secure room, Capy's windows are hidden from screenshots and recordings on macOS and Windows, but a camera pointed at the screen still works.

Privacy PolicyWhat Capy never collects, and what others can see.Download CapyFree, in beta, for macOS. Test builds for Windows and Linux.Pear documentationThe peer-to-peer stack Capy is built on.

Everything here runs on your devices. The team only runs a relay, a blind peer, a seeder for updates and an inbox for bug reports, and none of them can read your rooms.