chatgpt-tui

command module
v0.4.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 12, 2024 License: MIT Imports: 18 Imported by: 0

README

ChatGPT tui README

My first ever terminal UI! Everything is stored locally on sqlite and written in Go!

Technologies

  • Go
  • bubbletea: A Go framework for terminal user interfaces. It's a great framework that makes it easy to create TUIs in Go.
  • openai: OpenAI's REST Api
  • sqlite: A C library that provides a lightweight disk-based database that doesn't require a separate server process (perfect for terminal apps, in my opinion).
  • lipgloss: Style definitions for nice terminal layouts!
  • bubbles: Some general use components for Bubble Tea apps!

Installation

Please make sure that you expose a CHAT_GPT_API_KEY inside of your environment; we require it to make api calls!

Set up your api key

export CHAT_GPT_API_KEY="some-key" # you would want to export this in your .zshrc
brew tap tearingitup786/tearingitup786
brew install chatgpt-tui
chatgpt-tui

To get access to the release candidates, install command:

brew install rc-chatgpt-tui
rc-chatgpt-tui

Config

We provide a config.json file within your directory for easy access to essential settings. On most Macs, the path is ~/.chatgpt-tui/config.json. This file includes the URL used for network calls to the TUI, specified as chatGPTApiUrl: "https://api.openai.com/v1/chat/completions". Additionally, the systemMessage field is available for customizing system prompt messages.

Demo

tui demo

Global Keybindings

  • Tab: *Change focus between panes. The currently focused pane will be highlighted with a pink border.
    • You can only change focus if Prompt Pane is not in insert mode
  • Ctrl+o: Toggles zen mode
  • Ctrl+c: Exit the program

Prompt Pane

  • i: Enters insert mode (you can now safely paste messages into the tui)
  • esc: Exit insert mode for the prompt

Chat Messages Pane

  • y: Copies the last message from ChatGPT into your clipboard.
  • Y: Copies all messages from the ChatGPT session into your clipboard.

Settings Pane

  • m: Opens an input dialog to change the model.
  • f: Opens an input dialog to change the frequency of updates.
  • t: Opens an input dialog to set the maximum number of tokens per message.

Sessions Pane

  • Ctrl+N: Creates a new session.
  • d: Deletes the currently selected session from the list.
  • Enter: Switches to the session that is currently selected.

Please refer to this guide as you navigate the TUI. Happy exploring!

Dev notes

The SQL db is stored in you your/home/directory/.chatgpt-tui, as well as the debug log. To enable debug mode, export DEBUG=1 before running the program.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL