Manual do Safe8bit
Tudo o que a app e o comando safe8bit fazem, com exemplos. As secções marcadas Pro precisam da licença; o resto é grátis no Lite.
Instalar
O Safe8bit precisa do macOS 15 ou mais recente. A app é assinada e notarizada pela Apple e o download é o mesmo para o Lite e para o Pro.
$ brew trust safe8bit-app/tap
$ brew install --cask safe8bit-app/tap/safe8bit
O Homebrew instala a app em /Applications e o comando safe8bit no terminal. Também podes usar o botão Descarregar e arrastar a app para Aplicações. Nesse caso, o comando para pôr o safe8bit no terminal está em Definições › Terminal (CLI).
Para atualizar: brew upgrade --cask safe8bit. O cofre não é tocado.
Criar o cofre
- Abre o Safe8bit. No ecrã Criar o teu cofre, escolhe uma palavra-passe mestra com pelo menos 12 caracteres e confirma-a.
- Deixa ligado Desbloquear com Touch ID (Secure Enclave) para abrires o cofre com a impressão digital.
- Carrega em Criar cofre.
- Logo a seguir, cria o kit de emergência.
A palavra-passe mestra nunca é guardada em lado nenhum. Se a esqueceres e não tiveres o kit de emergência, o cofre fica perdido. Ninguém o consegue abrir, nem nós.
Se já usas o Safe8bit noutro Mac com o iCloud ligado, o ecrã mostra Há um cofre Safe8bit no teu iCloud. Carrega em Usar o cofre do iCloud e abre-o com a mesma palavra-passe mestra.
O Touch ID fica associado às impressões digitais que estão registadas no Mac. Se juntares ou apagares uma, voltas a precisar da palavra-passe mestra uma vez.
Ativar o Pro
- Compra o Pro em safe8bit.com/comprar. A chave chega por email, de
licencas@safe8bit.com; se não aparecer, procura no lixo ou no spam. - Na app, vai a Definições › Licença.
- Cola a chave (começa por
SBL1.) e carrega em Ativar.
A chave é verificada no Mac, sem internet. Vale até ao fim do período pago mais 7 dias, e a cada renovação chega uma chave nova para colares no mesmo sítio (Atualizar). A mesma chave serve em todos os teus Macs.
A janela
A barra lateral tem estas secções:
| Início | Resumo do cofre e a nota de saúde, que desce com cada problema que o Radar encontra. |
| Projetos | Os teus projetos e os segredos de cada um, com filtro por ambiente. |
| Radar | Segredos que precisam de atenção. Aparece um ponto vermelho quando há problemas graves. |
| Escudo IA | Estado do Escudo e os últimos bloqueios. |
| Detetor | Procura segredos em claro no disco. |
| Códigos 2FA | Todos os códigos, a renovar em tempo real. |
| Agente SSH | As tuas chaves SSH e o agente. |
| Passkeys | As passkeys guardadas. |
| Gerador | Palavras-passe, frases e tokens. |
| Adicionar ⌘N | Novo segredo ou projeto, importar ou abrir uma partilha. |
Em baixo estão as Definições (⌘,) e o cadeado Bloquear o cofre (⌘L). O cofre também bloqueia sozinho ao fim do tempo que escolheres, ao adormecer o Mac, ao bloquear o ecrã e ao trocar de utilizador. As janelas do Safe8bit não aparecem em capturas nem em partilhas de ecrã.
Projetos
Cada segredo pertence a um projeto. Cria-o em Projetos › Novo projeto e escolhe nome, cor e ícone.
Dá ao projeto o nome da pasta do código (por exemplo Loja para ~/Development/Loja). Assim, o safe8bit run encontra-o sozinho quando o corres dentro dessa pasta.
No topo de um projeto tens Editar, Usar no código e Adicionar. Com o botão direito num projeto, Editar… ou Eliminar…. Eliminar um projeto apaga todos os segredos dele, e isso não se pode desfazer.
Usar no código mostra como ler as variáveis em Node, Python, Ruby, Deno e Swift, o comando safe8bit run já pronto, um texto para dares a um agente de IA, e os botões para copiar o .env de produção ou montar o .env sem disco.
Segredos e campos
Ao criar um segredo escolhes o tipo, e ele já vem com os campos certos:
| Tipo | Campos |
|---|---|
| API Key | Serviço, API Key, Secret, URL |
| OAuth / App | Provedor, Client ID, Client Secret, Redirect URL, Scopes |
| Cloud | AWS, Google Cloud ou Azure, já com os nomes de variável (AWS_ACCESS_KEY_ID, GOOGLE_CREDENTIALS, AZURE_…) |
| Servidor | Host, Porta, Utilizador, Palavra-passe, URL |
| Credencial | URL, Utilizador, Palavra-passe (é o tipo que o AutoFill preenche) |
| Base de dados | Host, Porta, Base de dados, Utilizador, Palavra-passe, Connection string |
| Chave Apple (.p8) | Key ID, Issuer ID, Team ID, Finalidade e o ficheiro .p8 anexado |
| Ficheiro | Descrição e o ficheiro anexado |
| Ficheiro .env | Cola o .env inteiro; ao guardar, cada variável fica num campo |
| Nota segura | Texto livre |
| Chave SSH | Chave privada, chave pública, impressão digital |
| Passkey | Só os sites as criam, nunca à mão |
- + Campo junta campos do tipo Texto, Segredo, Multilinha ou URL. Se um campo visível parecer uma chave, a app sugere Tornar Segredo.
- Anexo: arrasta um ficheiro até 4 MB. No segredo podes copiar o conteúdo ou Guardar como….
- Validade: Nunca, 90 dias, 6 meses, 1 ano ou uma data. O Radar avisa 14 dias antes.
- Etiquetas (separadas por vírgulas) e Notas.
- Histórico: guarda as últimas 10 versões, sempre que um valor sensível muda. Restaurar… volta a uma delas.
- Num
.envtens ainda Copiar como .env, Exportar .env… e Separar variáveis.
Ao copiar um valor, ele sai da área de transferência ao fim de 30 segundos (podes mudar nas Definições), a não ser que entretanto tenhas copiado outra coisa. Os gestores de área de transferência são avisados para não o guardar.
Ambientes e variáveis
Cada segredo pode ter um ambiente: Nenhum, Dev, Staging ou Prod. Os segredos sem ambiente são a base: entram em todos os ambientes, e os do ambiente escolhido sobrepõem-se a eles.
Para um campo chegar ao terminal, dá-lhe um nome de variável. No editor do segredo, cada campo tem uma pastilha $ à direita do nome: escreve lá STRIPE_SECRET_KEY, por exemplo. Só são aceites maiúsculas, algarismos e _. Deixa vazio para o campo não ser exportado. No segredo, o nome aparece como $STRIPE_SECRET_KEY.
Para dar nomes a muitos campos de uma vez, abre Usar no código › Campos sem variável e carrega em Aplicar nomes.
Depois, no terminal: safe8bit run -e prod -- npm start. Ver Terminal.
Códigos 2FA
No editor do segredo, carrega em Código 2FA e escolhe uma destas formas:
- cola o link
otpauth://…ou a chave de configuração que o site te dá; - Colar QR: tira uma captura do QR para a área de transferência com ⌃⇧⌘4 e cola;
- Imagem com QR…: escolhe uma imagem com o QR.
Aparece logo o código atual. Os códigos ficam também na secção Códigos 2FA: clica num para o copiar. Copiar um campo 2FA copia sempre o código, nunca a semente. São aceites códigos de 6 a 8 dígitos, com SHA1, SHA256 ou SHA512.
Quando copias a palavra-passe de uma Credencial que tem 2FA, recebes uma notificação com Copiar código. Durante 2 minutos, ⌃⇧Espaço abre já nesse código. A área de transferência nunca é trocada sem tu pedires. Desliga em Definições › Acesso rápido.
AutoFill e passkeys
Para o Safe8bit preencher logins no Safari e nas apps:
- Vai a Definições › AutoFill e carrega em Abrir Definições do Sistema.
- Em Geral › Preenchimento automático e palavras-passe, liga o Safe8bit.
O AutoFill preenche as Credenciais (o campo URL decide em que site aparecem), os códigos 2FA de qualquer segredo e as passkeys. Pede sempre Touch ID ou a palavra-passe mestra; nunca preenche em silêncio.
Sugerir logins automaticamente no Safari vem desligado. Se o ligares, os utilizadores e os domínios (nunca as palavras-passe) passam a estar num índice do sistema, fora do cofre, para o Safari os sugerir.
Passkeys
Quando um site (o GitHub, por exemplo) te oferecer criar uma passkey, escolhe o Safe8bit. Ela fica no projeto Passkeys. Para entrar, o site pede a passkey e tu confirmas com Touch ID. As passkeys não podem ser partilhadas.
Acesso rápido
⌃⇧Espaço abre uma pesquisa por cima de qualquer app. Procura no título, no projeto e nas etiquetas.
- ↩ copia o valor principal e volta à app onde estavas;
- ↑ ↓ escolhem o resultado;
- os botões de cada linha copiam outro campo: palavra-passe, código 2FA, utilizador, chave pública ou
.env; - esc fecha.
Se o cofre estiver bloqueado, pede para o desbloquear primeiro. O atalho não se pode mudar, mas podes desligá-lo em Definições › Acesso rápido.
Gerador
| Palavra-passe | 8 a 128 caracteres (24 por omissão), com minúsculas, maiúsculas, algarismos e símbolos, e a opção de evitar caracteres parecidos (0 O 1 l I). |
| Frase | 3 a 12 palavras (5 por omissão), separadas por hífen, ponto, espaço ou nada. |
| Token | 16 a 128 bytes (32 por omissão), em Hex ou Base64url. |
Mostra os bits de entropia do que gerou. No editor de um segredo, o botão Gerar abre o gerador e Usar põe o valor no campo.
Radar de rotação
Mostra cada segredo pela idade (anéis aos 30 dias, 90 dias e 1 ano) e assinala os que precisam de atenção:
| expirado / expira | passou da validade, ou expira nos próximos 14 dias |
| recusada | o último safe8bit test foi recusado pelo serviço |
| repetido | o mesmo valor (8 ou mais caracteres) em mais do que um sítio |
| fraca | palavra-passe de uma Credencial com menos de 50 bits de entropia |
| antigo | mais de um ano sem mudar (API Key, Credencial, Base de dados, Chave Apple e SSH) |
| RSA | chave SSH RSA; prefere Ed25519 |
| 2FA inválido | a semente do código 2FA não é válida |
Filtra por todos, só prod ou com alertas. Abrir vai ao segredo. Num valor repetido de propósito, Está ok deixa de avisar. Para rodar uma chave recusada: gera uma nova no serviço, cola-a no segredo e confirma com safe8bit test. A análise é toda feita no Mac.
Detetor e importação
Detetor
Na secção Detetor, escolhe uma pasta (por exemplo ~/Development) e carrega em Procurar. Encontra segredos esquecidos em claro:
.enve variantes (os modelos como.env.exampleficam de fora);- chaves
.p8,.p12,.pfx,.pem,.key,.jkse.keystore; - chaves SSH (
id_rsa,id_ed25519, …) e JSON de service accounts; *.propertiesde assinatura e segredos,.sentryclirc,*secret*.xcconfige notas.txtque parecem segredos.
Ignora node_modules, .git, Pods, build e afins. Na revisão escolhes o que guardar e em que projeto, e vês o que já está no cofre. Se quiseres, os originais vão para o Lixo depois de importados.
Importar de outro gestor
Em Adicionar › Importar de outro gestor, escolhe o ficheiro exportado: CSV do Apple Passwords, Chrome, Firefox, 1Password ou Bitwarden, ou JSON do Bitwarden (não cifrado). Os logins tornam-se Credenciais (com o 2FA, se existir), as notas tornam-se Notas seguras e as pastas tornam-se projetos. Os duplicados são saltados. Cartões e identidades não são importados.
O ficheiro exportado tem tudo em claro. Deixa a app movê-lo para o Lixo no fim, e esvazia o Lixo.
Partilhas Pro para criarLite para abrir
Para dar um segredo a alguém sem o colar num chat:
- No segredo, carrega no ícone de partilha (Partilhar num ficheiro cifrado).
- Escolhe a validade: 1 hora, 1 dia ou 7 dias.
- Criar ficheiro… cria um ficheiro
.safe8bite mostra a passphrase (SBSH-…). Envia o ficheiro por AirDrop, Slack ou email, e a passphrase por outro canal.
Vão os campos, o anexo e as notas. Ficam de fora o histórico, o projeto e as etiquetas. Passkeys e chaves SSH não se partilham. A passphrase não fica guardada em lado nenhum.
Quem recebe abre o ficheiro com duplo clique, ou em Adicionar › Abrir partilha, cola a passphrase e carrega em Guardar no cofre. Por omissão, fica no projeto Partilhados e o ficheiro vai para o Lixo. Abrir funciona no Lite. Depois da validade, o ficheiro é recusado.
iCloud
Em Definições › iCloud, liga Sincronizar o cofre pelo iCloud. O cofre vai já cifrado para o teu iCloud: a Apple só vê dados cifrados. Nos outros Macs, abre o Safe8bit e escolhe Usar o cofre do iCloud.
- A palavra-passe mestra e o kit de emergência servem em todos os Macs. O Touch ID configura-se em cada um.
- Se dois Macs mudarem o cofre ao mesmo tempo, as alterações juntam-se segredo a segredo. Ganha a edição mais recente, e a outra fica no histórico.
- Se o iCloud já tiver um cofre diferente, escolhes entre Usar o do iCloud neste Mac (o local fica guardado como cópia de segurança) e Substituir o do iCloud por este.
Kit de emergência
É a única forma de recuperar o cofre se esqueceres a palavra-passe mestra. Cria-o em Definições › Kit de emergência › Criar kit de emergência….
- A app gera uma chave de recuperação (
SBRK-…) e mostra-a uma única vez. - Imprime-a ou guarda o PDF, e põe-no num sítio seguro, longe do Mac.
- Marca Guardei a chave num sítio seguro e carrega em Concluir.
Para recuperar: no ecrã de bloqueio, carrega em Perdeste a palavra-passe? Usar o kit de emergência, escreve a chave (maiúsculas, espaços e hífenes não contam) e escolhe uma palavra-passe mestra nova.
Criar um kit novo invalida o anterior. O kit protege contra esquecer a palavra-passe, não contra perder o Mac: para isso, usa o Time Machine ou o iCloud.
Definições
| Separador | O que tem |
|---|---|
| Bloqueio | Bloquear após 1, 5 ou 15 minutos ou 1 hora (1 minuto por omissão). Limpar a área de transferência após 15, 30 ou 60 segundos (30 por omissão). |
| Segurança | Ligar ou desligar o Touch ID e mudar a palavra-passe mestra. |
| AutoFill | Estado no sistema e sugestões no Safari. |
| iCloud | Sincronização entre Macs. |
| Acesso rápido | O atalho ⌃⇧Espaço e o código 2FA depois da palavra-passe. |
| Terminal (CLI) | Como instalar o safe8bit se não usaste o Homebrew. |
| Guarda do git | Bloquear commits, o índice e os repositórios protegidos. |
| Agente SSH | Ligar o agente e quando pedir o Touch ID. |
| Kit de emergência | Criar ou gerir a chave de recuperação. |
| Licença | Ativar, renovar ou remover o Pro, e a tabela Lite e Pro. |
Terminal: como funciona Pro
O Homebrew instala o comando safe8bit junto com a app. Cada comando abre o cofre só para esse pedido e pede o Touch ID (ou a palavra-passe mestra, se não houver Touch ID). Os valores nunca aparecem no ecrã, a não ser que os peças com read, otp ou env.
De onde vêm as variáveis
Um projeto dá variáveis ao terminal de duas formas:
- Segredos do tipo .env: o conteúdo inteiro entra como está.
- Campos com nome de variável: na app, dás a um campo um nome como
STRIPE_SECRET_KEYe esse campo passa a ser a variávelSTRIPE_SECRET_KEY.
Primeiro entram os segredos sem ambiente (a base), depois os do ambiente que escolheste com -e. Se a mesma variável aparecer nos dois, ganha a do ambiente.
Que projeto é usado
Sem -p, o safe8bit procura um projeto com o nome da pasta atual, ou de uma pasta acima. Em ~/Development/Loja/apps/web, encontra o projeto Loja e escolhe o .env de apps/web, se existir. Com -p Loja escolhes o projeto à mão.
Opções comuns
| Opção | O que faz |
|---|---|
-p, --project NOME | Projeto. Por omissão, o da pasta atual. |
-e, --env AMBIENTE | dev, staging ou prod. A base (sem ambiente) entra sempre primeiro. |
-s, --secret TÍTULO | Só esse segredo .env (ex.: apps/web/.env). Pode repetir. |
-o, --out FICHEIRO | Grava num ficheiro com permissões 600 em vez de escrever no ecrã. |
--password-stdin | Lê a palavra-passe mestra da primeira linha do stdin, sem Touch ID. Sem terminal, a palavra-passe é pedida numa janela. |
--vault CAMINHO | Usa outro ficheiro de cofre. |
safe8bit run
Corre um comando com as variáveis do projeto no ambiente. Não fica nenhum .env no disco, e o safe8bit dá lugar ao teu comando, por isso nenhuma cópia do cofre fica em memória.
$ safe8bit run -e prod -- npm start
safe8bit: 6 variáveis de Loja · Prod (Stripe + Supabase + .env)
$ safe8bit run -p Loja -e dev -- python manage.py runserver
Tudo o que vem depois de -- é o teu comando, tal como o escreverias.
safe8bit env
Escreve o .env do projeto no ecrã ou num ficheiro, para as ferramentas que só sabem ler um ficheiro.
$ safe8bit env -e prod -o .env.production
# exporta para a shell atual
$ eval "$(safe8bit env -e dev --export)"
Um ficheiro escrito por env fica no disco em claro até o apagares. Sempre que der, usa run ou mount.
safe8bit mount
Cria o .env como um pipe: quem o abre recebe as variáveis do projeto, mas nada fica gravado no disco. Pede o Touch ID uma vez.
# monta ./.env até Ctrl-C
$ safe8bit mount -e dev
# desmonta sozinho daqui a 8 horas
$ safe8bit mount config/.env --for 8h
# lista o que está montado
$ safe8bit mounts
# desmonta os da pasta atual
$ safe8bit unmount
Funciona com quem abre e lê o ficheiro: python-dotenv 1.1 ou mais recente, dotenv (Node) e docker compose. O Next.js e o Vite recusam pipes; aí usa safe8bit run -- npm run dev.
unmount e mounts funcionam sem licença, para poderes sempre desfazer um mount.
safe8bit read e safe8bit otp
Escrevem um valor ou o código 2FA atual. A referência é safe8bit://Projeto/Segredo/Campo.
$ safe8bit read "safe8bit://Loja/Supabase/API Key"
$ safe8bit read "safe8bit://Loja/App Store Connect/anexo" -o AuthKey.p8
$ safe8bit otp safe8bit://Loja/GitHub
O campo anexo (ou attachment) devolve o ficheiro anexado ao segredo, como uma chave .p8. Com -o, o ficheiro fica com permissões 600.
safe8bit list
Mostra projetos, segredos e os nomes das variáveis, nunca os valores. É seguro para correr à frente de outras pessoas ou de um agente de IA.
$ safe8bit list -p Loja
Stripe [API Key] prod
API Key → $STRIPE_SECRET_KEY, Webhook → $STRIPE_WEBHOOK_SECRET
apps/web/.env [Ficheiro .env] dev
DATABASE_URL, NEXT_PUBLIC_SUPABASE_URL
safe8bit test
Pergunta a cada serviço se as chaves do projeto ainda funcionam, com um pedido só de leitura e sem custo. Conhece a OpenAI, a Anthropic, o Stripe, o GitHub, a Vercel e o Supabase.
$ safe8bit test
✓ Stripe › API Key
~ OpenAI › API Key: sem quota
✗ GitHub › Token: recusada (401)
| ✓ válida | o serviço aceitou a chave |
| ~ limitada | aceite, mas sem permissão para este pedido, sem quota ou com o limite atingido |
| ✗ recusada | revogada, expirada ou errada; o comando sai com código 1 |
Depois de rodar uma chave na app, confirma a nova com safe8bit test -p PROJETO -s SEGREDO.
safe8bit push
Envia as variáveis do projeto (as mesmas do run) para as Environment Variables da Vercel: prod vai para Production, staging para Preview e dev para Development.
# mostra o que mudava
$ safe8bit push --to vercel -e prod --dry-run
$ safe8bit push --to vercel -e prod
- Cria as variáveis que faltam e atualiza as que já existem. Nunca apaga variáveis na Vercel.
- Uma variável que na Vercel é partilhada por vários ambientes é separada: os outros ambientes ficam com o valor que tinham.
- Antes de enviar, testa as chaves como o
safe8bit test. Se algum serviço recusar uma chave, não envia nada. - O projeto e a equipa da Vercel vêm do
.vercel/project.json(o que overcel linkcria). O token vem do segredo Vercel do projeto ou, se não houver, de outro projeto.
| Opção | O que faz |
|---|---|
--vercel-project NOME | Projeto na Vercel, se não houver .vercel/project.json. |
--team ID | Equipa da Vercel (team_…). |
--token REFERÊNCIA | Onde está o token, como safe8bit://Projeto/Segredo/Campo. |
--dry-run | Mostra o que mudaria, sem enviar. |
--yes | Não pede confirmação. |
--skip-test | Envia sem testar as chaves, mesmo que haja chaves recusadas. |
safe8bit license
Diz se o Pro está ativo, de quem é a licença e até quando vale. Funciona sempre, com ou sem licença.
$ safe8bit license
Versão: Pro, licença de ana@exemplo.pt válida até 13 Nov 2027.
Sem licença ou com ela expirada, os comandos Pro param e dizem onde ativar ou renovar.
Guarda do git Pro bloqueiaLite regista
Um hook de pre-commit compara as linhas novas de cada commit com os valores do cofre. Se encontrar um, o Pro bloqueia o commit antes de a chave chegar ao GitHub. No Lite, avisa e deixa passar.
# no repositório atual
$ safe8bit guard install
# em todos os repositórios dessa pasta
$ safe8bit guard install ~/Development
$ git commit -m "config"
1 valor do cofre neste commit. Commit bloqueado.
A Guarda não abre o cofre a cada commit, por isso não pede Touch ID. Usa um índice com impressões (HMAC-SHA256) dos valores, com uma chave que só o Secure Enclave deste Mac consegue derivar. Os valores não ficam no índice, e valores com menos de 8 caracteres não entram.
| Comando | O que faz |
|---|---|
guard install [PASTA] | Instala o hook no repositório, ou em todos os que houver na pasta. |
guard uninstall [PASTA] | Remove o hook e repõe o que lá estava antes. |
guard scan [CAMINHO...] | Verifica ficheiros. Sem caminhos, todos os ficheiros do repositório. |
guard history | Procura valores do cofre em todo o histórico do git. |
guard status | Mostra o índice e o hook do repositório atual. |
guard list | Repositórios com o hook e o que cada um encontrou no último commit. |
guard index | Refaz o índice agora (pede Touch ID). |
guard --staged | Verifica o que está staged. É o que o hook corre. |
Falso alarme? Acrescenta safe8bit:allow à linha e ela passa a ser ignorada. Para saltar a verificação uma vez, usa git commit --no-verify.
Já commitaste uma chave? Tirá-la do código não chega: ela continua no histórico. Roda-a no serviço e guarda a nova no cofre.
Escudo para agentes de IA Pro bloqueiaLite regista
Liga-se aos hooks do Claude Code e do Cursor e vê cada pedido do agente antes de ele o fazer:
- bloqueia ler
.env, chaves e ficheiros de credenciais; - bloqueia ler ficheiros que contêm valores do cofre e escrever esses valores no código;
- pergunta-te antes de comandos que mostram segredos, como
printenvousafe8bit read.
No Lite, o Escudo regista o que teria bloqueado e deixa o agente continuar.
# nos agentes que encontrar (~/.claude, ~/.cursor)
$ safe8bit shield install
# só no Claude Code
$ safe8bit shield install --claude
# agentes protegidos e últimos bloqueios
$ safe8bit shield status
$ safe8bit shield uninstall
safe8bit shield scan
Procura chaves esquecidas nas instruções e nas configurações dos agentes: CLAUDE.md, AGENTS.md, .mcp.json e os ficheiros de configuração do Claude, do Cursor, do Codex e do Gemini.
$ safe8bit shield scan ~/Development
Com o Escudo ligado, o agente pode correr a tua app com safe8bit run sem nunca ver os valores. O Touch ID é pedido a ti, não ao agente.
Agente SSH Pro
As chaves SSH ficam no cofre e nunca saem dele. Cada ssh ou git push pede o teu Touch ID, mesmo com a app fechada.
- Em Agente SSH (ou Definições › Agente SSH), liga Usar as chaves do Safe8bit (ssh, git). Se o macOS pedir, autoriza o Safe8bit em Itens de início de sessão.
- Carrega em Nova chave e escolhe Gerar chave Ed25519 ou Importar ficheiro…. São aceites Ed25519, ECDSA P-256 e RSA; chaves com passphrase não.
- Copia a configuração que a app mostra para o
~/.ssh/config. Fica assim:
Host *
IdentityAgent "~/Library/Group Containers/8H697DPSV4.com.erik.safebit/agent.sock"
- Põe a chave pública no GitHub (ou no servidor) e testa:
ssh -T git@github.com.
Em Pedir Touch ID escolhes a frequência: Sempre (por omissão), uma vez a cada 15 minutos, 1, 4 ou 8 horas, ou até bloquear o ecrã. Por omissão, as aprovações esquecem-se ao bloquear o ecrã ou adormecer. O pedido diz que app quer usar que chave.
Sem licença Pro, o agente continua a correr mas não oferece chaves.
Lite e Pro
| Funcionalidade | Lite | Pro |
|---|---|---|
| Cofre por projeto (API keys, .env, credenciais, bases de dados, .p8) | ✓ | ✓ |
| AutoFill, passkeys e códigos 2FA | ✓ | ✓ |
| Gerador e Radar de rotação | ✓ | ✓ |
| Detetor e importação | ✓ | ✓ |
| Abrir partilhas e kit de emergência | ✓ | ✓ |
| Sincronizar pelo iCloud | ✓ | ✓ |
| Terminal: run, env, read, otp, list, mount, push, test | — | ✓ |
| Agente SSH com Touch ID | — | ✓ |
| Guarda do git | só regista | bloqueia |
| Escudo para agentes de IA | só regista | bloqueia |
| Criar partilhas cifradas | — | ✓ |
Sem licença, ou com ela expirada, o cofre e os segredos continuam todos lá. safe8bit license, unmount e mounts funcionam sempre. Ver preços.
Segurança
- Cifra: o cofre é um único ficheiro cifrado com AES-256-GCM. A chave deriva da palavra-passe mestra com Argon2id (256 MiB de memória, 4 passagens). Não há metadados em claro: sem a palavra-passe nem os nomes dos projetos se leem.
- Touch ID: a chave do cofre fica protegida pelo Secure Enclave do Mac e só sai com a tua impressão digital.
- Quase sem rede: a app não tem telemetria. Uma vez por dia lê
safe8bit.com/appcast.xmlpara ver se há versão nova (desliga-se em Definições › Bloqueio › Atualizações); a atualização só se instala quando carregas em Instalar, e tem de vir assinada pelo Safe8bit. Fora isso, só osafe8bit teste osafe8bit pushcontactam os serviços que tu escolhes. - Onde está:
~/Library/Group Containers/8H697DPSV4.com.erik.safebit/Library/Application Support/SafeBit/vault.sbv, com permissões 600. O Time Machine faz cópia dele, já cifrado. - No ecrã: as janelas não aparecem em capturas nem em partilhas de ecrã. O terminal nunca mostra valores, a não ser os que pedes com
read,otpouenv.
Perguntas
Como passo o cofre para um Mac novo?
Liga o iCloud nos dois Macs (Definições › iCloud) e, no Mac novo, escolhe Usar o cofre do iCloud. Sem iCloud, copia o vault.sbv para o mesmo sítio no Mac novo (ou restaura-o do Time Machine) e abre-o com a palavra-passe mestra.
O safe8bit run diz que não encontra o projeto.
O nome da pasta não coincide com o de nenhum projeto. Usa -p NOME, ou muda o nome do projeto para o da pasta. safe8bit list mostra os nomes dos projetos.
O projeto não tem variáveis.
O terminal só vê segredos do tipo .env e campos com nome de variável. Ver Ambientes e variáveis.
O Next.js ou o Vite ignoram o .env montado.
Recusam pipes. Usa safe8bit run -- npm run dev.
Posso usar o safe8bit num script ou no CI?
No teu Mac, sim: sem Touch ID disponível, usa --password-stdin. Em servidores de CI não, porque o cofre vive no Mac. Para a Vercel, usa o safe8bit push.
O que acontece quando o Pro expira?
A app volta ao Lite. Os segredos ficam todos, os comandos Pro param, e a Guarda e o Escudo continuam a correr, mas só registam.
Ainda tenho dúvidas.
Escreve para suporte@safe8bit.com.