https://github.com/nart38/ollmao
Simple TUI client for ollama
https://github.com/nart38/ollmao
bubble-tea bubbletea cli go golang llm ollama ollama-client terminal terminal-based tui
Last synced: 3 months ago
JSON representation
Simple TUI client for ollama
- Host: GitHub
- URL: https://github.com/nart38/ollmao
- Owner: nart38
- License: bsd-3-clause
- Created: 2024-02-08T17:42:45.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-27T08:33:02.000Z (over 2 years ago)
- Last Synced: 2025-01-16T08:11:42.950Z (over 1 year ago)
- Topics: bubble-tea, bubbletea, cli, go, golang, llm, ollama, ollama-client, terminal, terminal-based, tui
- Language: Go
- Homepage:
- Size: 67.4 KB
- Stars: 6
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
README
#+title: ollmao
Warning: App is incomplete and under heavy construction.
Simple ollama tui client written in go with [[https://github.com/charmbracelet/bubbletea][Bubble Tea]]. Inspired by [[https://github.com/ggozad/oterm][oterm]].
[[./ollmao-demo.gif]]
* Installation
Install it via go install.
#+BEGIN_SRC shell
go install github.com/nart38/ollmao@latest
#+END_SRC
* Usage
#+BEGIN_SRC shell
# Start ollama service at background if it is not runnig already.
systemctl start ollama
# You can list installed models using ollama.
ollama list
# Start tui with ollmao . For example chat with starling-lm:
ollmao starling-lm
#+END_SRC
** Keybindings
*** Insert Mode Bindings
Enter: Send message
ESC: Change mode to pager mode
Ctrl-C: Quit
*** Pager Mode Bindings
i: Change mode to insert mode
j/k: Scroll down/up
Ctrl-C or : Quit
Most of the pager bindings you used to works thanks to Vievport Bubble.
* Todos
- [X] Prettify tui with Lip Gloss
- [X] Implement proper interaction with viewport.
- [ ] Implement export to JSON chat history.
* Contributing
I will try to keep scope of this app relatively narrow. I'm not planning to make
this app extremely feature rich AI tui. I want it to be a simple app that suits
my use case. But if you encounter a bug, have a nice idea or simply want to show me
a better way to get things done, please feel free to open an issue.