Tenere

A crab in the moroccan desert

TUI interface for LLMs written in Rust

📸 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:

bash 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:

bash 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 :

General settings

Here are the available general settings:

```toml archivefilename = "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

toml [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:

bash export OPENAI_API_KEY="YOUTR KEY HERE"

  1. Include your API key in the configuration file:

toml [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

q: to quit the app

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


🧭 Roadmap


🛠️ Built with


🙏 Acknowledgments

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


⚖️ License

AGPLv3