tenere

From public sources

🤖 TUI for LLMs

AI toolCategory: AI ToolsOpen sourcedata checked Oct 16, 2026

Overview

  • chatgpt
  • cli
  • llamacpp
  • llm
  • ollama
  • ratatui
  • rust
  • tui

Installation

Commands are shown, never run by the marketplace. Check them against the official documentation.

Compatibility

Unknown means no evidence was found — not that the product is incompatible.
PlatformStatusArchitectureEvidenceConfidence
WindowsCompatiblearm64official build in release v0.11.3: tenere-aarch64-pc-windows-msvc.exe0.70
Compatiblex86_64official build in release v0.11.3: tenere-x86_64-pc-windows-msvc.exe0.70
macOSCompatiblearm64official build in release v0.11.3: tenere-aarch64-apple-darwin0.70
Compatiblex86_64official build in release v0.11.3: tenere-x86_64-apple-darwin0.70
LinuxCompatiblex86_64official build in release v0.11.3: tenere-x86_64-unknown-linux-musl0.70
Web browserUnknown———
Server / self-hostedUnknown———
Container (OCI)Unknown———

Releases

checked Oct 30, 2026
v0.11.3LatestSep 1, 2025Official source ↗

Files in 0.11.3

The marketplace does not host these files: downloads go to the official source. Files have not been scanned by us.
FilePlatformSizeSHA-256Download from the official source
tenere-aarch64-apple-darwinmacos · arm646.9 MB5ebfea26c54e…Official source ↗
tenere-aarch64-pc-windows-msvc.exewindows · arm64 · exe8 MB5dfba4579c5c…Official source ↗
tenere-x86_64-apple-darwinmacos · x86_647.4 MB635f5b391c65…Official source ↗
tenere-x86_64-pc-windows-msvc.exewindows · x86_64 · exe8.8 MBec94c87ba870…Official source ↗
tenere-x86_64-unknown-linux-gnulinux · x86_648.3 MB713d56ec867f…Official source ↗
tenere-x86_64-unknown-linux-musllinux · x86_648.5 MBcd1f407e7ab1…Official source ↗

Release history

Quality profile

algorithm quality-v1.0 · assessed Oct 16, 2026
Quality Score80
Risk Score0
Confidence 1.00
Quality Score and Risk Score are different measures. A high score does not guarantee safety.

Score components

Maintenance · 2012
last activity 159 days ago
Documentation · 1515
README 7004 chars, description present
Ready to use · 1515
install instructions: yes; releases: yes
Metadata · 1010
4/4 of description, homepage, license, topics
Releases · 106
10 release(s), latest 409 days ago
Category confidence · 105
classifier confidence 0.5
Adoption · 107
684 stars (log-dampened, 10k = max)
License clarity · 55
SPDX GPL-3.0
Community · 55
issues enabled, 34 forks

License

GPL-3.0
Known licensefrom the repository host

This is the catalog policy status, not legal advice.

Sources

github.com/pythops/tenerePrimary★ 684 starslast activity May 10, 2026Primary repository · Confidence 1.00

Reviews

Sign in to write a review

No reviews yet.

Alternatives

README

From pythops/tenere · license GPL-3.0 · fetched Oct 30, 2026

📸 Demo

[Demo]

🪄 Features

  • Syntax highlights
  • Chat history
  • Save chats to files
  • Vim keybinding (most common ops)
  • Copy text from/to clipboard (works only on the prompt)
  • Multiple backends
  • Automatically load the last saved chat into history

💎 Supported Backends

  • ChatGPT
  • llama.cpp
  • ollama

🚀 Installation

📥 Binary releases

You can download the pre-built binaries from the release page

📦 crates.io

tenere can be installed from crates.io

cargo install tenere

❄️ NixOS / Nix

Tenere is available in nixpkgs and can be installed via configuration.nix:

environment.systemPackages = with pkgs; [
  tenere
];

For non-NixOS systems, install directly with:

nix-env -iA nixpkgs.tenere

📱 Mobile (nix-on-droid)

Tenere works on Android via nix-on-droid (demo).

To set up (tutorial):

  1. Install nix-on-droid from F-Droid
  2. Add tenere to your packages in ".config/nixpkgs/nix-on-droid.nix":
  3. Run nix-on-droid switch
  4. Create your config at ".config/tenere/config.toml"

🍺 Homebrew

brew install tenere

⚒️ Build from source

To build from the source, you need 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. By default, the configuration file is located at:

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

🛠 Custom Configuration Path

You can optionally specify a custom path for the configuration file using the -c flag. This allows you to override the default configuration file location.

Example Usage

# Use the default configuration path
tenere

# Specify a custom configuration path
tenere -c ~/path/to/custom/config.toml

General settings

Here are the available general settings:

  • llm: the llm model name. Possible values are:
    • chatgpt
    • llamacpp
    • ollama
llm  = "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'

ℹ️ Note

To avoid overlapping with vim key bindings, you need to use ctrl + key except for help ?.

Chatgpt

To use chatgpt as the backend, you'll need to provide an API key for OpenAI. There are two ways to do this:

Set an environment variable with your API key:

export OPENAI_API_KEY="YOUTR KEY HERE"

Or

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.

llama.cpp

To use llama.cpp as the backend, you'll need to provide the url that points to the server :

[llamacpp]
url = "http://localhost:8080/v1/chat/completions"

If you configure the server with an api key, then you need to provide it as well:

Setting an environment variable :

export LLAMACPP_API_KEY="YOUTR KEY HERE"

Or

Include your API key in the configuration file:

[llamacpp]
url = "http://localhost:8080/v1/chat/completions"
api_key = "Your API Key here"

More infos about llama.cpp api here

Ollama

To use ollama as the backend, you'll need to provide the url that points to the server with the model name :

[ollama]
url = "http://localhost:11434/api/chat"
model = "Your model name here"

More infos about ollama api here

⌨️ Key bindings

Global

These are the default key bindings regardless of the focused block.

ctrl + n: Start a new chat and save the previous one in history and save it to tenere.archive-i file in data directory.

Tab: Switch the focus.

j or Down arrow key: Scroll down

k or Up arrow key: Scroll up

ctrl + h : Show chat history. Press Esc to dismiss it.

ctrl + t : Stop the stream response

q or ctrl + c: Quit the app

?: Show the help pop-up. Press Esc to dismiss it

Prompt

There are 3 modes like vim: Normal, Visual and Insert.

Insert mode

Esc: to switch back to Normal mode.

Enter: to create a new line.

Backspace: to remove the previous character.

Normal mode

Enter: to submit the prompt

h or Left: Move the cursor backward by one char.

j or Down: Move the cursor down.

k or Up: Move the cursor up.

l or Right: Move the cursor forward by one char.

w: Move the cursor right by one word.

b: Move the cursor backward by one word.

0: Move the cursor to the start of the line.

$: Move the cursor to the end of the line.

G: Go to the end.

gg: Go to the top.

a: Insert after the cursor.

A: Insert at the end of the line.

i: Insert before the cursor.

I: Insert at the beginning of the line.

o: Append a new line below the current line.

O: Append a new line above the current line.

x: Delete one char under to the cursor.

dd: Cut the current line

D: Delete the current line and

dw: Delete the word next to the cursor.

db: Delete the word on the left of the cursor.

d0: Delete from the cursor to the beginning of the line.

d$: Delete from the cursor to the end of the line.

C: Change to the end of the line.

cc: Change the current line.

c0: Change from the cursor to the beginning of the line.

c$: Change from the cursor to the end of the line.

cw: Change the next word.

cb: Change the word on the left of the cursor.

u: Undo

p: Paste

Visual mode

v: Switch to visual.

y: Yank the selected text

Contributing

  • No AI slop.
  • Only submit a pull request after having a prior issue or discussion.
  • Keep PRs small and focused.

⚖️ License

GNU General Public License v3.0 or later

Open the repository ↗