Or the command line only.
# What is it?
- Manage cryptographic keys, sigchains and user identities.
- Search for keys, verify and import them.
- Securely store passwords and secrets.
- Encrypt, decrypt, sign, verify (using Saltpack).
- Create a secure connection (Wormhole) between 2 computers (using Noise).
- Most features are available in both the app and on the command line.
- 100% open source (github.com/keys-pub) and cross platform (macOS, Windows, Linux).
- Coming soon: Backup/sync keys/secrets to a private git repository.
- Coming soon: Support for hardware keys like SoloKeys, YubiKeys, FIDO2.
- Coming soon: Mobile apps.
This project is in development and has not been audited.
Key management is hard. We need tools, libraries, apps, services and documentation to help us.
# How does it work?
The default key is a Ed25519/X25519 key capable of signing and encryption.
We can link this key to your identity on Github, Twitter, Reddit, etc, by creating a signed statement and publishing it both there and on your sigchain. (You can either revoke the sigchain statement or remove the signed statement to "unlink".)
The Saltpack format is used for signing and encryption, providing authenticity, repudability and anonymity.
Your keys and secrets are protected by a keyring which is secured by both the OS and a user supplied password.
The app and command line utility connect to a
keysd daemon thats runs as a gRPC service on your computer.
keys pull gabriel@github kex1mnseg28xu6g3j4wur7hqwk8ag3fu3pmr2t5lync26xmgff0dtryqupf80c > echo "hi 🤓" | keys encrypt -a -r gabriel@github BEGIN SALTPACK ENCRYPTED MESSAGE. kcJn5brvybfNjz6 D5ll2Nk0Z2co0as ...
The above example pulls the public key for the Github user gabriel, verifies it and creates an encrypted saltpack message.
# What else?
# Go Libraries
All the features in the app are available through Go libraries.