A gist powered CLI snippet retriever.
Save a snippet as a gist in GitHub, retrieve the snippet on the command line.
- GitHub account (duh!)
- GitHub access token with the
gist
scope enabled
Download the binary compatible with your system from here.
If you are using macOS, you can also use Homebrew
to install snpt:
brew tap mike182uk/tap
brew install mike182uk/tap/snpt
Before you can use snpt you will need to sync your gists:
snpt sync
If this is the first time you have synced your gists you will be prompted to input a GitHub access token (you will need create this in your GitHub account). This token should be be created with the gist
scope enabled.
The sync command will download all of your public and private gists and store them locally for fast retrieval by snpt.
You can prevent specific gists from being synced by placing [snpt:ignore]
anywhere in the description of the gist.
snpt ls
This can be useful for searching for a specific snippet:
snpt ls | grep <query>
snpt cp [snippetID|snippetName]
If a snippetID
or snippetName
is not supplied a prompt will be displayed allowing you to choose a snippet to copy to the clipboard.
If using snippetName
to search for a snippet, and there are multiple snippets with the same name, the first snippet matching the name will be used. If you have multiple snippets with the same name it is best to search using snippetId
.
snpt write [snippetID|snippetName]
If a snippetID
or snippetName
is not supplied a prompt will be displayed allowing you to choose a snippet to create a file from. The created file will be named after the name of the gist file.
If using snippetName
to search for a snippet, and there are multiple snippets with the same name, the first snippet matching the name will be used. If you have multiple snippets with the same name it is best to search using snippetId
.
snpt print [snippetID|snippetName]
If a snippetID
or snippetName
is not supplied a prompt will be displayed allowing you to choose a snippet to print to the screen.
If using snippetName
to search for a snippet, and there are multiple snippets with the same name, the first snippet matching the name will be used. If you have multiple snippets with the same name it is best to search using snippetId
.
snpt token
This command will prompt you to input a new GitHub access token.
You can view help for a command by passing the -h
flag when running a command:
snpt sync -h
snpt ❤️ fzf
snpt ls | fzf | snpt cp
Speed this up by creating aliases for common usages:
alias cs="snpt ls | fzf | snpt cp" # cs for copy snippet
alias ws="snpt ls | fzf | snpt write" # ws for write snippet
snpt cp
and snpt write
both accept stdin
as an input. If stdin
is detected snpt will try and extract a snippet ID from it. This is how the above fzf
usage works.
alfred-snpt provides quick access to your snippets from Alfred.
To uninstall snpt from your system you will need to manually delete the snpt binary.
snpt's configuration and gist cache is located at ~/.snpt
. You can safely remove this directory and its contents once you have removed the snpt binary.