Need help with charm?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

charmbracelet
177 Stars 11 Forks MIT License 435 Commits 6 Opened issues

Description

The Charm Tool and Library 🌟

Services available

!
?

Need anything else?

Contributors list

Charm

Manage your Charm account and access The Charm Cloud.

Charm Tool Header Treatment
Latest Release GoDoc Build Status

Charm UI Trailer

Installation

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

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
.

Usage

Run without arguments for the TUI. Or, for shortcuts and additional functionality see the CLI usage at

charm help
.

Encryption and Decryption

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 -

How It Works

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 Library

The Charm library is a simple API to the Charm Cloud for doing things like:

  • Frictionless user identification
  • User accounts linking
  • Encrypt and decrypt data
  • Simple SSH key generation
  • Programatically read, write and delete from a user’s Glow markdown stash

For more details and the full feature set check out the Go docs.

Charming Projects

Check out these projects, which use the

charm
library:
  • Glow, a markdown reader for the CLI

License

MIT


Part of Charm.

the Charm logo

Charm热爱开源! / Charm loves open source!

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.