1.2.2 • Published 10 months ago

hidr v1.2.2

Weekly downloads
-
License
ISC
Repository
-
Last release
10 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

10 months ago

1.2.1

10 months ago

1.2.0

10 months ago

1.0.0

10 months ago