npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@snipt/cli

v0.0.16

Published

Secure content management with end-to-end encryption

Downloads

8

Readme

@snipt/cli

oclif Version Downloads/week License

Project overview

Secure content management with end-to-end encryption.

Important information for users

This is an early-stage project and as such only provides low-level functionality and APIs at present. Please note the APIs might change before reaching v1.0.

Basic usage

First, create an account. This will also generate a set of ECC encryption keys associated with your account.

Alice$ snipt create-account --email "[email protected]" --name "Alice's personal 👩‍💻" --passphrase "numbingrelatableliquefy"

A verification email will be sent to the provided email address. Once you've verified your email, you can start using e2e to manage content securely.

Alice$ snipt create --from-file "credentials.csv" --passphrase "numbingrelatableliquefy"
{"MessageId":"BhY0TShLng","MessageStatus":"Creating"}

You can then read your message.

Alice$ snipt read BhY0TShLng --passphrase "numbingrelatableliquefy"

To list all messages for your account, use the following command.

Alice$ snipt messages

You can share messages with other accounts.

Alice$ snipt share BhY0TShLng --email "[email protected]" --name "🕵️‍♂️" --passphrase "numbingrelatableliquefy"
{"MessageGrantId":"JjqKaUpwS0"}

The nominated account will receive an email notification that read access has been granted to your message.

They will be able to read your message using the --grant option.

Bob$ snipt read BhY0TShLng --grant

Users can view all their grants using the following command.

Bob$ snipt grants

FAQs

Why are there account limits in place?

Compute and storage cost money, therefore the most sensible thing to do at the moment is to make sure these costs can be covered when usage exceeds certain parameters.

Currently, users are able to create 10 messages per month and share each message with 1 additional user for free.

Additionally, we offer 2 paid tiers for users who wish to upgrade:

1. Personal tier

  • 30 messages per month
  • 3 grants per message
  • Ability to delete messages

Cost: ~ 1 ☕️ per month (please contact [email protected] to subscribe)

2. Team tier

  • 100 messages per month
  • 5 grants per message
  • Ability to delete messages
  • Ability to set auto-expiry on messages

Cost: ~ 3 ☕️ per month (please contact [email protected] to subscribe)

Please note that there are additional restrictions (rate-limiting and daily request quotas) in place for each user and upgrading to a paid tier does not remove or update them.

Why do I need to provide my email?

Your email address is used for account-related transactional email only.

We currently use email to verify customers' accounts, and to notify customers of account-related activity such as obtaining access rights to a message.

The only 3rd party we share your email address with is Stripe, however this only applies in the case that you decide to upgrade your account to a paid tier.

Why are my requests sometimes taking longer than expected?

There may be 2 reasons for this:

  1. Currently the API is only deployed in eu-west-2 (London) therefore some users will likely experience longer than usual response times; and
  2. The platform is mostly serverless therefore some users might occasionally experience cold starts resulting in longer than usual response times (e.g. ~1 second).

Roadmap to v1.0

Currently, there is an in-progress quick-and-dirty GitHub project to help track progress against a stable v1.0 release.

See https://github.com/e2e-tech/cli/projects/1 for more details.

Usage

$ npm install -g @snipt/cli
$ snipt COMMAND
running command...
$ snipt (-v|--version|version)
@snipt/cli/0.0.16 darwin-x64 node-v14.15.0
$ snipt --help [COMMAND]
USAGE
  $ snipt COMMAND
...

Commands

snipt create

create end-to-end encrypted message

USAGE
  $ snipt create

OPTIONS
  -c, --curve=curve25519|ed25519|p256|p384|p521|brainpoolP256r1|brainpoolP384r1|brainpoolP512r1|secp256k1
      [default: curve25519] ecc curve name used to generate message keypair

  -f, --from-file=from-file
      path to file

  -n, --name=name
      message display name

  -p, --passphrase=passphrase
      passphrase associated with the account key ring

  --profile=profile
      [default: default] account profile to use

EXAMPLES
  $ snipt create --from-file "keys.csv"
  $ snipt create --from-file "keys.csv" --name "A very secret file indeed 🔒"
  $ snipt create --from-file "keys.csv" --curve "p521" --passphrase "numbingrelatableliquefy"
  $ snipt create --from-file "keys.csv" --profile "personal"

See code: src/commands/create.js

snipt create-account

create an account

USAGE
  $ snipt create-account

OPTIONS
  -c, --curve=curve25519|ed25519|p256|p384|p521|brainpoolP256r1|brainpoolP384r1|brainpoolP512r1|secp256k1
      [default: curve25519] ecc curve name used to generate account keypair

  -e, --email=email
      (required) email associated with the account

  -n, --name=name
      [default: LON-158160-C02ZR0Z9MD6W] name associated with the account

  -p, --passphrase=passphrase
      passphrase associated with the account key ring

  --profile=profile
      [default: default] namespace to associate this account configuration with

EXAMPLES
  $ snipt create-account --email "[email protected]"
  $ snipt create-account --email "[email protected]" --name "Alice personal 👩‍💻" --passphrase "numbingrelatableliquefy"
  $ snipt create-account --email "[email protected]" --curve "brainpoolP256r1" --profile "personal"

See code: src/commands/create-account.js

snipt grants

list message grants for account

USAGE
  $ snipt grants

OPTIONS
  -x, --extended          show extra columns
  --columns=columns       only show provided columns (comma-separated)
  --csv                   output is csv format [alias: --output=csv]
  --filter=filter         filter property by partial string matching, ex: name=foo
  --no-header             hide table header from output
  --no-truncate           do not truncate output to fit screen
  --output=csv|json|yaml  output in a more machine friendly format
  --profile=profile       (required) [default: default] account profile to use
  --sort=sort             property to sort by (prepend '-' for descending)

See code: src/commands/grants.js

snipt help [COMMAND]

display help for snipt

USAGE
  $ snipt help [COMMAND]

ARGUMENTS
  COMMAND  command to show help for

OPTIONS
  --all  see all commands in CLI

See code: @oclif/plugin-help

snipt messages

list messages for account

USAGE
  $ snipt messages

OPTIONS
  -x, --extended          show extra columns
  --columns=columns       only show provided columns (comma-separated)
  --csv                   output is csv format [alias: --output=csv]
  --filter=filter         filter property by partial string matching, ex: name=foo
  --no-header             hide table header from output
  --no-truncate           do not truncate output to fit screen
  --output=csv|json|yaml  output in a more machine friendly format
  --profile=profile       (required) [default: default] account profile to use
  --sort=sort             property to sort by (prepend '-' for descending)

See code: src/commands/messages.js

snipt read ID

fetch and decrypt end-to-end encrypted message

USAGE
  $ snipt read ID

ARGUMENTS
  ID  unique message id

OPTIONS
  -g, --grant                  resolve message using an account grant
  -p, --passphrase=passphrase  passphrase associated with account keychain, if any
  --profile=profile            [default: default] account profile to use

EXAMPLES
  $ snipt read nNl0i5ZpMV
  $ snipt read qOWlubPK5p --passphrase "numbingrelatableliquefy"
  $ snipt read xfipgqnRka --grant
  $ snipt read IeBaoboTpW --grant --passphrase "numbingrelatableliquefy"

See code: src/commands/read.js

snipt share ID

share an end-to-end encrypted message with another account

USAGE
  $ snipt share ID

ARGUMENTS
  ID  unique message id

OPTIONS
  -e, --email=email            account email to share message with
  -n, --name=name              message grant display name
  -p, --passphrase=passphrase  passphrase associated with account keychain, if any
  -u, --url                    create a one time grant url
  --profile=profile            [default: default] account profile to use

EXAMPLES
  $ snipt share nNl0i5ZpMV --email "[email protected]"
  $ snipt share qOWlubPK5p --email "[email protected]" --name "🕵️‍♂️" --passphrase "numbingrelatableliquefy"
  $ snipt share nNl0i5ZpMV --url
  $ snipt share nNl0i5ZpMV --url --passphrase "numbingrelatableliquefy"

See code: src/commands/share.js