Como o Capy funciona
Como o Capy funciona
O Capy não tem contas nem servidor que consiga ler as suas salas. Esta página mostra como, das suas primeiras 24 palavras até a ata depois de uma chamada.
Cada parte é escrita para qualquer pessoa, com uma nota “Por dentro” para quem quer saber o nome das peças de verdade.
- Sem contas
- Peer to peer
- IA no seu computador
Peer to peer, no Pear
Seu aparelho fala direto com o deles.
Na maioria dos apps, uma mensagem vai de você para o servidor de uma empresa, e o servidor a repassa. O Capy não tem esse servidor. Seu computador se conecta aos computadores das pessoas da sua sala, e o app em si não faz nenhuma requisição à web.
Para se encontrarem, os aparelhos usam uma lista telefônica pública que ninguém controla, chamada tabela hash distribuída (DHT). Cada sala tem um tópico. Os aparelhos que o compartilham o procuram, descobrem o endereço uns dos outros e se conectam. Uma técnica chamada hole punching faz a conexão atravessar roteadores e firewalls domésticos, e tudo no enlace é criptografado de ponta a ponta.
Às vezes não dá para fazer uma conexão direta, por exemplo entre duas redes móveis rígidas. Aí o Capy passa por um relay cego: um computador sempre ligado, mantido pela equipe do Capy, que repassa os bytes criptografados entre os dois aparelhos. Ele não consegue lê-los, e só é usado quando a conexão direta não é possível.
Com quem seu aparelho fala
Com as pessoas da sala, direto
Requisições à web feitas pelo app
Nenhuma
Criptografia
De ponta a ponta, em cada enlace
Se o enlace direto falha
Um relay cego repassa bytes cifrados
Por dentro
- RuntimePear · Bare
- Encontrar peersHyperDHT · Hyperswarm
- ConexõesNoise · SecretStream
- Relayblind-relay
Sua identidade
24 palavras, e nenhuma conta.
Não há cadastro, e-mail nem senha. Quando você começa, o Capy cria 24 palavras. Elas são a sua identidade. A única cópia fica no seu aparelho, num arquivo que só a sua conta de usuário consegue ler, e nada é enviado a lugar nenhum.
A partir das palavras, o Capy deriva uma chave de identidade Keet. A cada vez que o app roda, ele também cria uma chave nova para este aparelho, e a sua identidade a atesta. A chave do aparelho assina tudo o que você escreve: mensagens, seu perfil e confirmações de leitura. O app de todo mundo confere essas assinaturas, então ninguém consegue escrever como você, e nenhum servidor precisa dizer quem você é.
Digite as mesmas palavras em outro computador e ele encontra seus outros aparelhos sozinho, e suas salas vêm junto. Ao sair da conta, o aparelho esquece as palavras. Digite-as de novo para voltar.
Onde ficam as palavras
Só no seu aparelho
Conta, e-mail, senha
Nenhum
O que assina suas mensagens
Uma chave do aparelho, atestada pela sua identidade
Ao sair da conta
O aparelho esquece as palavras
Como uma mensagem passa a ser sua
Suas 24 palavras
Ficam só neste aparelho. Nada para resetar, nada enviado.
Sua chave de identidade
A mesma em todo aparelho onde você digita as palavras.
Uma chave para este aparelho
Criada a cada vez que o app roda. Sua identidade atesta que ela é sua.
Mensagens assinadas
A chave do aparelho assina o que você escreve, para os outros conferirem que veio de você.
Vale saber
Se você perder as palavras e todos os aparelhos que as têm, ninguém consegue trazer sua identidade de volta, nem nós. Não existe conta para resetar. Enquanto um aparelho continuar logado, os Ajustes mostram as palavras de novo.
Por dentro
- Identidadekeet-identity-key
- Seus outros aparelhosblind-pairing
Salas e convites
Uma sala é um registro em que todos escrevem.
O aparelho de cada membro mantém o seu próprio registro e acrescenta a ele. O Autobase junta todos os registros numa só ordem com a qual todos os aparelhos concordam, e um pequeno banco de dados por cima (HyperDB) a transforma em mensagens, perfis e tarefas. Não existe cópia central: a sala é a soma das cópias dos seus membros.
Você entra com um convite, um código que você cola ou lê como QR code. Seu app envia um pedido, e o app de um membro que esteja online confere o convite e deixa você entrar. A partir daí todo o histórico é replicado para você, porque o aparelho de cada membro guarda uma cópia.
Qualquer membro pode estar rodando um Capy modificado, então nenhum aparelho confia num registro só porque ele chegou. Antes de valer, cada aparelho confere o formato, o tamanho e a assinatura dele. Um registro que falha é ignorado do mesmo jeito em todo lugar.
Onde vive uma sala
No aparelho de cada membro
Quem deixa você entrar
Um membro que esteja online
Quem confere cada registro
Todo aparelho, antes de valer
O convite como QR code
Desenhado no seu aparelho
Entrando numa sala
Um convite
Quem criou a sala gera um código. Ele pode ser mostrado como QR code, desenhado no aparelho.
Um pedido
A pessoa cola o código, e o app dela pede para entrar.
Um membro deixa entrar
O app de um membro confere o convite e adiciona a pessoa como escritora.
O histórico é replicado
O registro é copiado para o novo aparelho e a sala abre, mensagens incluídas.
Por dentro
- Registro compartilhadoAutobase
- Banco de dadosHyperDB
- Convitesblind-pairing
- VerificaçõesAutobase apply
Blind peers
Um ajudante que guarda o que não consegue ler.
Uma sala vive nos aparelhos dos seus membros. Se todos estiverem offline, quem volta não tem de quem copiar. Um blind peer cobre essa lacuna. É um computador sempre ligado que guarda uma cópia criptografada dos dados da sala, arquivos incluídos, e a entrega aos membros quando eles voltam. Ele nunca tem a chave que abre nada disso, por isso é cego.
O Capy já vem com um, mantido pela equipe do Capy, e não há nada a configurar: cada sala é registrada nele ao abrir, exceto as salas seguras, que nunca são. Um blind peer guarda blocos assinados, então pode mantê-los ou descartá-los, mas não consegue alterá-los.
Ele também guarda as cópias seladas das chaves das mensagens, que permitem abrir uma mensagem com quem a escreveu offline (mais em armazenamento).
Quem mantém
A equipe do Capy
O que guarda
Cópias criptografadas das salas
O que vê
Endereços IP, quanto está guardado, quando
O que nunca vê
Mensagens, arquivos, nomes
O que pode alterar
Nada: os blocos são assinados
Salas seguras
Nunca entram nele
Por dentro
- Clienteblind-peering
- O que espelhaAutobase · Hyperblobs · Hypercore
Armazenamento e criptografia
Cada mensagem tem a sua própria chave.
Tudo vive nos aparelhos dos membros, numa pasta que o app mantém (um Corestore). O Capy não tem banco de dados em lugar nenhum. Fotos, vídeos e arquivos vão em cores próprios, criptografados para que um blind peer não consiga lê-los.
Cada mensagem é selada com uma chave só dela. Essa chave nunca está no registro da sala. Ela fica num arquivo separado em cada aparelho e só viaja para os membros, pelas conexões criptografadas da sala.
Para uma mensagem abrir enquanto quem a escreveu está fora, cada aparelho publica uma nova prekey por dia. Quem escreve sela a chave de cada mensagem para as prekeys dos outros aparelhos, e os blind peers guardam essas cópias. Só o aparelho dono de uma prekey consegue abrir a sua cópia.
Onde ficam seus dados
Nos aparelhos dos membros
O que sela uma mensagem
Uma chave só dela
Onde essa chave fica
Num arquivo separado em cada aparelho
Prekeys
Novas a cada dia, destruídas após cerca de 30 dias
Fotos, vídeos, arquivos
Criptografados, em cores próprios
Depois de Apagar para todos
Chave descartada, blocos dos arquivos limpos
- Apagar para todos é um registro assinado. Cada aparelho o confere, descarta a chave da mensagem e limpa os blocos dos arquivos. O que sobra no registro é ruído selado.
- A metade privada de uma prekey é destruída quando o prazo acaba (cerca de 30 dias, 60 no máximo), então até as cópias que um blind peer guarda não abrem para ninguém.
- “Liberar espaço neste aparelho” limpa os arquivos só aqui, e eles continuam limpos após reiniciar. “Baixar de novo” os traz de volta de um membro que os tenha.
Vale saber
Apagar não alcança o que alguém já guardou. Um membro que leu uma mensagem, a fotografou ou roda um app modificado fica com o que tem. O que é garantido: nada legível sobra nos aparelhos honestos, e ninguém que entre depois consegue lê-la.
Por dentro
- Uma chave por mensagemAES-256-GCM
- PrekeysX25519 · sealed boxes
Salas seguras
Feita para uma chamada, depois some.
Uma sala segura é para 2 a 8 pessoas. Tem pasta e armazenamento próprios, que não são compartilhados com nada mais no app, e não guarda nada além do chat: sem arquivos, transcrições, atas, notas ou IA.
A chave é criada no aparelho de quem criou a sala e fica num único arquivo no aparelho que só a sua conta de usuário consegue ler. Ela continua ali ao fechar e reiniciar. A sala é apagada quando a chamada termina (o padrão), quando o prazo acaba (um dia por padrão, no máximo uma semana), quando quem a criou a apaga ou quando você sai da conta. Apagar limpa cada core do armazenamento e remove a pasta, arquivo da chave incluído.
Uma sala segura não anuncia tópico, então não pode ser encontrada na DHT. Os membros se conectam direto uns aos outros pela chave. Ela nunca entra na lista da sua conta e nunca é entregue a um blind peer. Enquanto uma está aberta, as janelas do Capy ficam fora de capturas de tela, gravações e compartilhamento de tela no macOS e no Windows. O Linux não consegue isso, e o Capy avisa.
Pessoas
De 2 a 8
Onde a chave fica
No aparelho, até a sala ser apagada
O que guarda
Só o chat
Blind peers
Nunca recebem uma cópia
Vale saber
Alguém na sala ainda pode fotografar a tela ou rodar um Capy modificado que guarda o que vê. Enquanto a sala não é apagada, quem tiver o seu computador e a sua conta de usuário consegue lê-la, então vale ter criptografia de disco inteiro (FileVault, BitLocker).
Por dentro
- A salaCorestore · Hyperswarm
- Janelas ocultasElectron setContentProtection
Chamadas
As chamadas vão entre as pessoas que estão nelas.
Seu microfone é codificado em áudio Opus e sua câmera em vídeo VP8. Os dois são cortados em pacotes pequenos e enviados direto aos outros da chamada, pelas mesmas conexões criptografadas que a sala usa, como mensagens fora de ordem que não esperam umas pelas outras.
Os insights da chamada também não vêm de um servidor. No seu computador, um detector de voz percebe quando você fala. Seu aparelho grava isso, assinado, na sala: em lotes, a cada 5 segundos e quando você sai. Cada aparelho calcula então a divisão de fala e as interrupções a partir dos mesmos registros, e por isso todas as telas mostram os mesmos números, inclusive para quem entrou tarde.
Ninguém hospeda uma chamada. Qualquer pessoa nela pode avançar a rodada, marcar uma decisão ou editar as notas. Quem criou a sala, ou um admin, pode silenciar ou remover alguém, e cada app obedece só a eles.
Áudio
Opus
Vídeo
VP8
Enviado para
As pessoas da chamada, criptografado
Divisão de fala
Calculada em cada aparelho
Por dentro
- CodecsOpus · VP8 · WebCodecs
- TransporteProtomux · unordered messages
IA no seu computador
A IA roda aqui, não na nuvem.
A IA do Capy é o QVAC, a IA local da Tether. Você escolhe e baixa cada modelo uma vez em Ajustes → Notas e IA, e ele chega pela rede peer-to-peer, não por um site. Até você baixar um, esses recursos ficam desligados. Os modelos rodam então num segundo processo no seu computador.
Ninguém transcreve você além de você. Com a transcrição ligada, seu computador transforma a sua própria voz em texto com Whisper ou Parakeet e assina cada frase na sala. O texto é compartilhado com a sala: essa é a transcrição. O áudio não é guardado.
Quando uma chamada termina, a última pessoa a sair escreve a ata com um modelo de linguagem no próprio computador, se tiver um modelo de atas. A ata aparece na sala como um cartão que qualquer pessoa pode abrir.
Fica no seu computador
- Os modelos e tudo o que eles usam
- Sua voz, como som
- Me atualiza, a preparação da reunião e as respostas do Buscar e perguntar
- As sugestões, até você clicar
Vai para a sala
- As frases da sua própria transcrição, assinadas por você
- A ata, quando você é o último a sair
- O que você escolhe adicionar: uma decisão, uma tarefa
Da sua voz até a ata
Seu microfone
Sua voz é ouvida só no seu computador.
Whisper ou Parakeet
Transforma sua fala em texto, no seu computador.
Linhas assinadas na sala
Cada frase é assinada por você e entra na transcrição que todos compartilham.
Um modelo de linguagem
No computador da última pessoa a sair, se ela tiver um modelo de atas.
A ata
Aparece na sala como um cartão que abre as notas da chamada.
- As legendas podem ser traduzidas no seu computador com modelos Bergamot.
- Buscar e perguntar acha palavras em transcrições, atas e mensagens, e responde perguntas sobre chamadas passadas com o EmbeddingGemma e o modelo de linguagem, citando os momentos.
- Sugestões de decisões, tarefas e do item da pauta precisam citar uma linha da transcrição. O que não cita é descartado, e nada é adicionado até uma pessoa clicar.
- O que um modelo escreve vem marcado como IA e separado do que as pessoas disseram.
Vale saber
Nenhum serviço de IA e nenhum servidor do Capy recebe a sua voz ou o seu texto. Um modelo ainda pode errar: trate a IA como quem toma notas, não como fonte da verdade.
Por dentro
- WorkerBare
- Fala para texto@qvac/asr-ggml · Whisper · Parakeet
- Modelo de linguagem@qvac/llm-llamacpp
- Os modelos vêm deQVAC registry · Hyperswarm
Atualizações
As versões novas vêm de outros peers.
Não há servidor de atualização. A equipe do Capy publica cada versão na rede Pear, e o app a baixa de outros computadores que já a têm, do mesmo jeito que uma sala é replicada. Seu app confere ao abrir e de novo quando surge uma versão nova.
Quando o download termina, um cartão na barra lateral oferece Reiniciar. Ele nunca reinicia no meio de uma chamada. Uma versão de produção exige um quórum das chaves de assinatura da equipe, então uma chave sozinha não consegue lançar uma atualização.
Se uma versão nova falha ao abrir duas vezes seguidas, o Capy recoloca o app anterior e não tenta aquela versão de novo até chegar uma mais nova. Num Mac fora da pasta Aplicativos, o Capy oferece se mover para lá para poder se atualizar depois.
Servidor de atualização
Nenhum
De onde vem
De outros peers na rede Pear
Assinatura da versão
Um quórum das chaves da equipe
Se uma versão falha duas vezes
O app anterior volta
A viagem de uma atualização
A equipe publica
Uma versão nova entra na rede Pear, assinada com as chaves da equipe.
Os peers repassam
Computadores que já a têm compartilham com o seu.
Seu app confere e baixa
Antes, o Capy confere se consegue se substituir onde está.
Você reinicia
O Capy oferece Reiniciar. O app anterior é mantido até o novo abrir.
Por dentro
- Atualizadorpear-runtime
Perguntas
Respostas curtas.
A equipe do Capy consegue ler minhas mensagens?
Não. As mensagens vão entre os aparelhos dos membros e são seladas com chaves que a equipe nunca tem. A equipe mantém alguns ajudantes sempre ligados: um relay cego e um blind peer, que veem endereços IP e quanto dado criptografado circula, nunca o que há nele, um seeder que mantém as atualizações disponíveis e uma caixa de entrada para os relatos de problema que você decide enviar.
O que acontece se todos de uma sala estiverem offline?
A sala espera. Quando alguém volta, as mensagens sincronizam. Como o Capy guarda cópias criptografadas no blind peer, você também recebe dele o que perdeu, mesmo que ninguém mais esteja online. Se você ficou fora por mais de 30 dias, algumas mensagens podem mostrar “Aguardando esta mensagem” até um membro que tenha a chave ficar online.
Onde estão meus dados?
Nos aparelhos das pessoas de cada sala, numa pasta que o app mantém. Uma cópia criptografada também pode ficar no blind peer. Uma sala segura fica só nos aparelhos dos seus membros, e é apagada.
E se eu perder minhas 24 palavras?
Enquanto um dos seus aparelhos continuar logado, os Ajustes mostram as palavras de novo para você anotar. Se perder as palavras e todos os aparelhos, ninguém consegue recuperar sua identidade, nem nós. É o preço de não ter uma conta para resetar.
A IA envia algo para um servidor?
Não. Os modelos rodam no seu computador depois de você baixá-los uma vez, pela rede peer-to-peer. A transcrição da sua voz vai para a sala como texto, assinada por você, porque é isso que uma transcrição compartilhada é. O áudio não é guardado. O Capy não faz nenhuma requisição à web.
É grátis? Por que não há servidores próprios?
Sim, o Capy é grátis, e está em beta. Seus aparelhos fazem o trabalho que os servidores fazem em outros apps: guardam as salas, levam as chamadas e rodam a IA. A equipe só mantém alguns ajudantes leves, como o relay e o blind peer, que movem e guardam bytes criptografados.
O que um blind peer enxerga?
O endereço IP do seu aparelho quando ele se conecta, quanto dado criptografado está guardado e quando ele é lido ou escrito. Não vê o que há dentro: mensagens, arquivos, nomes.
Quem pode ver meu endereço IP?
As pessoas com quem você se conecta numa sala ou numa chamada, os nós da rede que ajudam a encontrá-las, e o relay e o blind peer, se forem usados. É assim que conexões diretas funcionam. Uma VPN o esconde, se isso importa para você.
Alguém na sala pode gravar?
Pode. Qualquer pessoa numa sala vê o que a sala mostra e pode fotografar ou gravar a tela, ou rodar um Capy modificado que guarda o que recebe. As verificações do Capy impedem que um app modificado prejudique o dos outros, mas não impedem um membro de guardar o que viu. Numa sala segura, as janelas do Capy ficam fora de capturas e gravações de tela no macOS e no Windows, mas uma câmera apontada para a tela ainda funciona.
Tudo isto roda nos seus aparelhos. A equipe só mantém um relay, um blind peer, um seeder das atualizações e uma caixa de entrada para relatos de problema, e nenhum deles consegue ler suas salas.