Skip to content

Chat with LLM in your terminal, be it shell generator, story teller, linux-terminal, etc.

Notifications You must be signed in to change notification settings

jiacai2050/shellgpt

Repository files navigation

ShellGPT

Chat with LLM in your terminal, be it shell generator, story teller, linux-terminal, etc.

Install

pip install -U shgpt

Or install latest version

pip install --force-reinstall -U git+https://github.com/jiacai2050/shellgpt.git

This will install two commands: sg and shellgpt, which are identical.

After install, use sg --init to create required directories(mainly ~/.shellgpt).

Usage

ShellGPT has three modes to use:

  • Direct mode, sg [question] or pipeline like echo question | sg.
  • REPL mode, sg -r, chat with LLM.
  • TUI mode, sg -t, tailored for infer shell command.

Model

By default, shellgpt uses Ollama as its language model backend, requiring installation prior to usage.

Alternatively, one can set up shellgpt to utilize OpenAI compatible API endpoints:

export SHELLGPT_API_URL=https://api.openai.com
export SHELLGPT_API_KEY=<token>
export SHELLGPT_MODEL='gpt-3.5-turbo'

# or Cloudflare Worker AI
export SHELLGPT_API_URL=https://api.cloudflare.com/client/v4/accounts/<account-id>/ai
export SHELLGPT_API_KEY=<token>
export SHELLGPT_MODEL='@cf/meta/llama-3-8b-instruct'

See conf.py for more configs.

TUI

There are 3 key bindings to use in TUI:

  • ctrl+j, Infer answer
  • ctrl+r, Run command
  • ctrl+y, Yank command

TUI screenshot

System contents

There are some built-in system contents in shellgpt:

  • default, used for ask general questions
  • typo, used for correct article typos.
  • slug, used for generate URL slug.
  • code, used for ask programming questions
  • shell, used for infer shell command
  • commit, used for generate git commit message, like git diff | sg -s commit

Users can define their own content in ~/.shellgpt/contents.json, it a JSON map with

  • key being content name and
  • value being content body

Or you can just copy contents.json to play with, it's generated from Awesome ChatGPT Prompts.

$ sg -s linux-terminal pwd
/home/user

$ sg -s javascript-console 0.1 + 0.2
0.3

Users can share their customized contents in discussions.

License

GPL-3.0

About

Chat with LLM in your terminal, be it shell generator, story teller, linux-terminal, etc.

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published