Skip to content

chat is this real - is a simple tui LLM chat client

License

Notifications You must be signed in to change notification settings

worldsayshi/cir

Repository files navigation

A LLM Chat client on the terminal built with tview.

Status: Pre-Alpha

Requirements

  • fzf-tmux
  • OPENAI_API_KEY as env variable

Install

go install github.com/worldsayshi/cir@main

Then just run cir to start it. It will store the session in a ~/.cir folder. For a separate session, use the -session flag like this: cir -session my-session.yaml.

Key bindings

  • Ctrl-o - Manage context
  • Ctrl-s - Submit message
  • (Shift-)Tab - Toggle focus between input and chat history

Run from this repo

Run:

go run .

Test:

go test ./...

TODOs for Beta

  • [/] Refactor application.go so that the control flow is more DAG-like, now it's spaghet
  • More context info
    • Add the file names sent to the printed chat message
  • Allow code edits
  • Bug: Getting Error: <nil> in log
  • Cleanup: Get rid of frivolous panics

Alpha TODO log

  • Bug: refactor and fix messages handling so that messages are updated properly
  • adding context files using fzf?
    • Define working set data in session data structure:
      • workingFiles with path and last submitted checksum
    • Manage current working set in TUI - store in session file
    • Just add them to the message
    • Add them but hide them from rendering
    • Add them to the session data, calculate and store checksum whenever they are added to the sent data, only send when checksum change (sort of untested but seems to work I think??)
  • Add backwards compatibility for session yaml storage
  • Prompt templates for sending context
  • Make the history view scrollable
  • QOL: Also store the current wip chat message in the session (on exit?)

Nice to have's

About

chat is this real - is a simple tui LLM chat client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages