tenere 0.8.0

TUI interface for LLMs written in Rust
Documentation

📸 Demo

demo

💎 Supported LLMs

Only ChatGPT is supported for the moment. But I'm planning to support more models in the future.

🔌 Installation

You can download the prebuilt binaries from the release page.

For MacOs users, you can use brew to install it as following:

brew tap pythops/tenere
brew install tenere

Otherwise, you can build from source. This requires Rust compiler and Cargo package manager.

Once Rust and Cargo are installed, run the following command to build:

cargo build --release

This will produce an executable file at target/release/tenere that you can copy to a directory in your $PATH.

⚙️ Configuration

Tenere can be configured using a TOML configuration file. The file should be located in :

  • Linux : $HOME/.config/tenere/config.toml or $XDG_CONFIG_HOME/tenere/config.toml
  • Mac : $HOME/Library/Application Support/tenere/config.toml

General settings

Here are the available general settings:

  • archive_file_name: the file name where the chat will be saved. By default it is set to tenere.archive
  • model: the llm model name. Currently only chatgpt is supported.
archive_file_name = "tenere.archive"
model = "chatgpt"

Key bindings

Tenere supports customizable key bindings. You can modify some of the default key bindings by updating the [key_bindings] section in the configuration file. Here is an example with the default key bindings

[key_bindings]
show_help = '?'
show_history = 'h'
new_chat = 'n'
save_chat = 's'

Chatgpt

To use Tenere's chat functionality, you'll need to provide an API key for OpenAI. There are two ways to do this:

  1. Set an environment variable with your API key:
export OPENAI_API_KEY="YOUTR KEY HERE"
  1. Include your API key in the configuration file:
[chatgpt]
openai_api_key = "Your API key here"
model = "gpt-3.5-turbo"
url = "https://api.openai.com/v1/chat/completions"

The default model is set to gpt-3.5-turbo. check out the OpenAI documentation for more info.

🚀 Usage

There are two modes like vim: Normal and Insert.

Insert mode

To enter Insert mode, You press i. Once you're in, you can use:

Esc: to switch back to Normal mode.

Enter: to create a new line

Backspace: to remove the previous character

Normal mode

When you launch tenere, it's in Normal mode by default. In this mode, you can use:

Enter: to submit the prompt

dd: to clear the prompt.

n: Start a new chat and save the previous one in history.

s: Save the current chat or chat history (history popup should be visible first) to tenere.archive file in the current directory.

Tab: to switch the focus.

j or Down arrow key: to scroll down

k or Up arrow key: to scroll up

h : Show chat history

t : Stop the stream response

q: to quit the app

?: to show the help pop-up. You can dismiss it with Esc

🧭 Roadmap

  • Highlight the chat messages
  • Show the scroll bar
  • Support more models

🛠️ Built with

🙏 Acknowledgments

Big thanks to @orhun and @sophacles for their precious help 🙏

⚖️ License

AGPLv3