1.2.2 • Published 5 months ago

hidr v1.2.2

Weekly downloads
-
License
ISC
Repository
-
Last release
5 months ago

Hidr - Secure Secret Sharing CLI

Hidr is a CLI tool for securely sharing secrets and credentials (sensitive data). It encrypts secrets using AES-256-GCM, ensuring that the encryption key never leaves your device. Secrets can be shared with a TTL (time-to-live) and a read limit, making it ideal for one-time or temporary secret sharing.

Features

  • Secure encryption using AES-256-GCM
  • Share secrets as text or from a file
  • Set expiration (TTL) for secrets
  • Limit the number of times a secret can be viewed
  • Share secrets that can only be viewed by a specific user

Installation

You can use Hidr without installation via npx:

npx hidr <command>

Or install it globally:

npm install -g hidr

Once installed, simply run hidr <command>

Usage

Sharing Secrets

To share a secret directly:

npx hidr share "my-secret-password"

To share a secret from a file:

npx hidr share -f path/to/secret.env

You can also set a time-to-live (TTL) and a read limit:

npx hidr share "my-secret" -t 2h -l 3
  • -t, --ttl <ttl>: Defines when the secret expires, after which it cannot be viewed. (e.g., 1m, 2h, 1d). Default is 7 days.
  • -l, --limit <count>: Defines the number of times the secret can be viewed.

After running a share command, Hidr will display a command to retrieve the secret.

Viewing Secrets

To view a secret:

npx hidr view <secret-id>

To save the secret to a file:

npx hidr view <secret-id> -o output.txt

Sharing secrets with a specific user/device

First, create an identifier on the device that will view the secrets by running:

npx hidr init <user-id>

<user-id> is a unique identifier for a device. It can be any string e.g "georgeben-mbp", "website.com".

The init command generates a key pair for your device, allowing others to share secrets only your device can view.

To share a secret with a specific user, add the -u flag:

npx hidr share "secret-api-key" -t 1h -l 1 -u <user-id>

This will generate a secret that can only be viewed by the user with the given <user-id>.

Examples

  • Share a secret with a 1-hour expiration that can only be viewed once
npx hidr share "super-secure-code" -t 1h -l 1

Output:

To view this secret, run:
npx hidr view abc123def456
  • Retrieve the secret:
npx hidr view abc123def456

Output:

super-secure-code
Remaining reads: 0

Security

This tool is built for privacy and security.

  • Local Encryption: Secrets are encrypted locally on your device using AES-256-GCM.
  • Private: The encryption key never leaves your device

License

MIT

Contributing

Pull requests are welcome! For major changes, please open an issue first to discuss what you'd like to change.

1.2.2

5 months ago

1.2.1

5 months ago

1.2.0

5 months ago

1.0.0

5 months ago