Skip to content

Commit

Permalink
Update README with instructions.
Browse files Browse the repository at this point in the history
  • Loading branch information
AYM1607 committed Nov 10, 2023
1 parent 4d0ccd6 commit c91fc40
Showing 1 changed file with 39 additions and 0 deletions.
39 changes: 39 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,41 @@
# ccclip
End to end encrypted cloud clipboard.

# Installation

Download the prebuilt latest release binary for your OS/arch and ensure that it's in your path.

# Configuration

By default, ccclip looks for a ccclip directory in the [user home directory](https://pkg.go.dev/os#UserHomeDir) and it'll store the configuration file and device keys there.
You don't need to do anything if you want to stores your config in the default location; to override this behavior, use the `--config-dir` global flag.

# Instructions

### Create an account with

```bash
ccclip register -e {your-email}
```
This will prompt you for your password. Your input won't be shown, that's expected (we like to be safe right!?). Just press enter.
Passwords are stored as bcrypt hashes in the server.

### Register your device

```bash
ccclip register.
```
This will prompt you for your password.
An [X25519](https://pkg.go.dev/crypto/ecdh) key pair is created and stored in your configuration directory.
A "device" is created and associated to your account, the device id is stored in your configuration file.
Only the public key is sent to the server (duh).

### Save and retrieve your clipboard

The root command `ccclip` serves both purposes, if you pipe something to its stdin, it'll read it and save it as your clipboard.
If you don't pass anything then it'll retrieve your current clipboard and output it through stdout.

There's a caveat: When a clipboard is created, the sending device encrypts the data for each of the currently registered devices
individually. This means that if you register a new device, it won't immediately have access to the current clipboard because
its public key wasn't available when the clipboard was created. The benefit of this is that your data is end-to-end encrypted and I'll never
be able to see it nor an attacker if we're compromised :)

0 comments on commit c91fc40

Please sign in to comment.