Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cristianoliveira/snipgpt
A pluggable CLI to generate short snippets using openai LLM
https://github.com/cristianoliveira/snipgpt
aitools chatgpt copilot openai shell snippets terminal tools unix
Last synced: about 1 month ago
JSON representation
A pluggable CLI to generate short snippets using openai LLM
- Host: GitHub
- URL: https://github.com/cristianoliveira/snipgpt
- Owner: cristianoliveira
- License: mit
- Created: 2023-04-08T09:05:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-02-28T10:44:49.000Z (10 months ago)
- Last Synced: 2024-11-09T02:38:37.744Z (about 1 month ago)
- Topics: aitools, chatgpt, copilot, openai, shell, snippets, terminal, tools, unix
- Language: JavaScript
- Homepage:
- Size: 269 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# snipgpt ![npm](https://img.shields.io/npm/v/snipgpt?color=red) [![CI checks](https://github.com/cristianoliveira/snipgpt/actions/workflows/on-push.yml/badge.svg?branch=main)](https://github.com/cristianoliveira/snipgpt/actions/workflows/on-push.yml)
A CLI to generate short snippets using OpenAI LLM (See also: [snipgpt.nvim](https://github.com/cristianoliveira/snipgpt.nvim))
### Why
**I know what I want to do, but the syntax is on the way.** :)
> Sometimes I just don't remember the syntax when working with a language/lib/coreutils and I just need a snippet to remember how it works. Using Google takes too long and more often than not to useless places. ChatGPT is helpful, but, oh boy, it is verbose. Copilot is a bit inconvenient, it works only on an IDE, and is expensive compared to openai.
>
> -- Impatient developerCommon usages:
- SHELL: Looking for a snippet to use curl and send JSON data. Or I need to use some advanced feature of a CLI like `sed` or `awk`.
- BASH: Sometimes I like to create small bash scripts, but I forget every single time how to do simple things like check if a variable is empty or loop through lists, because of the bash's odd syntax.
- CSS: I know a given selector/property exists, but I forgot the syntax and arguments.
- BOILERPLATE: Sometimes I just need a quick boilerplate to start experimenting on something or just to getting started. (see examples below)
- TEST: To start testing a module, I just need a snippet test scenario and I expand from there.
- ALGORITHMS: I know an algorithm that solves the issue, but I don't remember how to implement it.### Demo
![snipgpt demo](https://raw.githubusercontent.com/cristianoliveira/snipgpt/main/snipgpt-demo.png)
## Usage
Prerequisite: Make sure you have set `OPENAI_API_KEY` ([obtaining my secret key](https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key))
```bash
export OPENAI_API_KEY=yourkey
```As a repl:
```bash
npx snipgpt
```Pass the request directly
```bash
npx snipgpt loop in COBOL
```Pipe a request to it
```bash
echo "post json using curl" | npx snipgpt
```To generate a boilerplate of any kind
```bash
echo "node: a package.json for an express app" | npx snipgpt > package.jsonecho "node: an express app running on port 8888" | npx snipgpt > index.js
npm i && npm start # It gets the boilerplate right with an incredible accuracy :)
```Generate generic documentations
```bash
echo "a readme of a node app, with 'getting started', 'installation' and 'running' sections" | npx snipgpt > README.md
```## Getting started
Clone this repo and install the dependencies.
```bash
git clone [email protected]:cristianoliveira/snipgpt.git
cd snipgpt
npm i
```Obtain your OpenAI key following these [instructions](https://help.openai.com/en/articles/4936850-where-do-i-find-my-secret-api-key).
```bash
cp .env.example .env
# edit the file with your key
echo "OPENAI_API_KEY=your-key" > .env
```All good. Now run it:
```bash
npm start
```It will open a prompt where you can request for short snippets. It also works
for other stuff, for instance, to ask for examples of how to use a given
command from the coreutils.See: `./example.sh`
### Automated checks
Running unit tests
```bash
npm test
# or
npm test -- --watch
```## LICENSE
The dude abides. AKA MIT.