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

gistr

v2.0.2

Published

Gistr - View, save and pull files from Github's Gists.

Downloads

43

Readme

gistr

Gistr - View, save and pull files from Github's Gists.

Build Status

Why?

gistr is designed to be a small and a simple tool to quickly push and pull files from Github's Gists. You may have that useful index.css or something else saved, which you always include for your projects, but it is a hassle to find and fetch all those various files, as they have probably been scattered among various different projects and gists.

Simply put - the goal, when using this tool, is that you can start building your own local "database" of different kinds of files, which you can then easily fetch for your other projects. This local database itself, can then be stored as a gist or a file and restored to other machines at will.

Gists?

As I could not figure out anything better to use and I don't want to host files on a server of my own - I decided to use Github's Gists as a starting storage for files.

Install

npm install -g gistr

Usage

Create a gist from file(s)

gist add <file1> <file2> ... [<-b (1 gist, n files)>] [<-d="" (Gist description)>] [<-v (Verbose logging)>]

Uploads one or more files as one or more gists to Github and saved a reference to those files into a local database-file.

Example:
gist add myfile1.txt myfile2.txt --bundle -d="Gist description" -v

Create a gist from folder

gist add-dir <directory> [<-d="" (Gist description)>] [<-v (Verbose logging)>]

Uploads all files in a folder as a single gist to Github and saves a reference to that gist into a local database-file.

Example:
gist add-dir "path/to/folder"
gist add-dir folder -d="Folder full of files"

List gists

gist list

Lists references to gisted files, located in a local database-file.

Find gists by description or filename

gist find <search>

Find references to gisted files, located in a local database-file.

Example:
gist find gulpfile
gist find "math library"

Show gist details

gist show <Gist #>

Outputs details of a saved gist reference, located in a local database-file.

Gist #'s can be found by calling gist list.

Example:
gist show 5
gist show 4 --tofile (Creates a file named gist-<gistID>.txt to the cwd)

Pull gist from Github's Gists

gist pull <Gist #> <[-v (Verbose logging)]>

Pulls a gist and all associated files to that gist from Github's Gists.

Example:
gist pull 3 (Pulls the gist and writes the files into cwd)
gist pull 2 -d="somefolder" (Pulls the gist and writes the files into cwd/somefolder/)

Export local database

gist export-db [<-f (Export to file)>] <[-v (Verbose logging)]>

Exports the local database to a file or as a gist if -f or --tofile -parameter is not given.

To export the local database as a gist, access-token has to be set, as the database file could contain your Github access-token. Having the access-token being set as a requirement guarantees that the gist is made under your Github profile as a secret gist.

File-export does not require the access-token to be set, but be careful as the exported file might still contain your access-token if it is set.

Example:
gist export-db (Locates the database-file and gists it)
gist export-db -f

Import local database

gist import-db <--file="path/to/db-export.gs"> <[-v (Verbose logging)]>
gist import-db <--id="yourdbexportgistid"> <[-v (Verbose logging)]>

Import local database from a file or from an exported gist.

If importing from a file, --file parameter is expected and needs to point to an exported .gs-file.

If importing from a gist, --id parameter is expected and needs to be an id of the gist that has the storage file.

Example:
gist import-db -f (Assumes a file named gistr-db-export.gs exists in the cwd)
gist import-db --id="somegistid"
gist import-db -f="path/to/some/db.file"

Purge / delete local database

gist purge-db

Deletes the local database file and performs a runtime unlink of the database-file. Basically factory resets the program.

Aliases

General

gistr = gstr = gist

gist -h = gist --help = gist help
gist -v = gist --version = gist version

gist add = gist create = gist creategist
gist add-dir = gist add-folder = gist add-directory

gist list = gist gists
gist find = gist search
gist show = gist details
gist pull = gist get

gist add-token = gist save-token = gist set-token
gist remove-token = gist delete-token = gist unset-token
gist show-token = gist display-token = gist view-token

gist import-db = gist get-db

gist purge-db = gist remove-db = gist delete-db


When creating gists:

Bundle multiple files into a single gist

-b = --bundle

Gist description

-d="" = --desc="" = --description=""

Verbose logging

-v = --verbose


When showing gist details:

Output gist details to file (defaults to terminal output)

--tofile


When pulling gists:

To output pulled gists to some other directory than the current working directory

-d="" = --dir="" = --directory=""


When exporting database:

-f="" = --tofile=""


When importing database:

-f="" = --file=""

Authentication

Optionally, or if 60 anonymous gists per hour is not enough for you, you can use an access-token based authentication with gistr.

Simply generate a new access-token for your github account by following the instructions here: https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/

And use command gist add-token --token="yourtokenhere" to let gistr use it for gisting.

The only permission or scope you need to grant for the access-token is the gist one, obviously.

NPM

https://www.npmjs.com/package/gistr

Screenshots

Gisting a file

Listing and searching for gists