The Charm Tool and Library 🌟
Manage your Charm account and access The Charm Cloud.
Use your fave package manager:
# macOS or Linux brew tap charmbracelet/tap && brew install charmbracelet/tap/charm
Arch Linux (btw)
yay -S charm-tool
nix-env -iA nixpkgs.charm
Or you can download a binary from the releases page. macOS, Linux, Windows, FreeBSD, and OpenBSD binaries are available, as well as Debian, RPM, and Alpine packages. ARM builds are also available for Linux, FreeBSD, and OpenBSD.
Or just build and install it yourself:
git clone https://github.com/charmbracelet/charm.git cd charm go install
Bash/Zsh/Fish completion is also available. See
charm help completion.
Run without arguments for the TUI. Or, for shortcuts and additional functionality see the CLI usage at
The Charm Tool (and Charm library) includes a simple, powerful encryption interface. Data encrypted with Charm is decryptable only by machines linked to your Charm account. Even we couldn’t decrypt your data if we somehow got our hands on it.
# Encryption is easy echo "Secret message" | charm encrypt
Save an encrypted message to disk
echo "Secret message" | charm encrypt > secret_message.json
Decryption is easy too
cat secret_message.json | charm decrypt
You can encrypt any kind of data
charm encrypt < my_secret_photo.jpg > encrypted_photo.json
Encrypt and compress
charm encrypt < secret_document.md | gzip > encrypted_document.json.gz
Decompress, decrypt, and read wth Glow
gunzip encrypted_document.json.gz | charm decrypt | glow -p -
Encryption works by issuing symmetric keys (basically a generated password) and encrypting it with the local SSH public key generated by this library. That encrypted key is then sent up to our server. We can’t read it since we don’t have your private key. When you want to decrypt something or view your stash, that key is downloaded from our server and decrypted locally using the SSH private key. When you link accounts, the symmetric key is encrypted for each new public key. This happens on your machine and not our server, so we never see any unencrypted data.
The Charm library is a simple API to the Charm Cloud for doing things like:
For more details and the full feature set check out the Go docs.
Check out these projects, which use the
Part of Charm.
Charm热爱开源! / Charm loves open source!