Skip to main content

Crate ait

Crate ait 

Source
Expand description

§AI in the Terminal

ait is a terminal user interface for interacting with several generative large language models from multiple providers. It uses the genai crate to communicate with the model providers. The TUI is built using the ratatui crate.

§Installation

Installation requires cargo to be installed.

cargo install ait

§Manual installation

Clone this repository and cd to the ait directory and run the application using:

cargo run

Install the application by running:

cargo install --force --path .

The binary name is ait.

Binaries are also available for download under Releases.

§Usage

The chat interface is modal and starts in the ‘normal’ mode. By pressing the i key text can be input into the text area. More information can be found by pressing the ? key. To submit queries to the model providers, you either need to obtain an API key and set the appropriate environment variable OR you need a running Ollama instance on http://localhost:11434.

To start the TUI simply run

ait

If you want to provide a custom system prompt, it can be achieved like this:

ait --system-prompt "You are a helpful, friendly assistant."

If you want to add context to your conversation, use the --context argument.

ait --context my_file.txt

ait can also read from stdin to add context:

cat my_file.txt | ait

A powerful pattern is to use a text serializer such as yek and use this as context input:

yek my_file.txt | ait

Or serialize all file in a directory and add as context:

yek my_dir | ait

§Chat history

Chat history is stored as a sqlite database (facilitated by the rusqlite crate) in the platform’s standard data directory:

  • macOS: ~/Library/Application Support/ait/chats.db
  • Linux: ~/.local/share/ait/chats.db
  • Windows: %APPDATA%\ait\chats.db

In addition, ait will store a log of the latest chat in the platform’s cache directory:

  • macOS: ~/Library/Caches/ait/latest-chat.log
  • Linux: ~/.cache/ait/latest-chat.log
  • Windows: %LOCALAPPDATA%\ait\latest-chat.log

I’m probably the only one using this tool but for users of ait version 0.5.1 and earlier, to keep your old database, simply copy it from the previous location:

cp ~/.cache/ait/chats.db <new platform specific location according to list above>

Modules§

ai
GenAI chat client.
app
Application.
chats
Chat list.
cli
Command line interface.
event
Terminal events handler.
handler
Event handler.
models
Model selector.
snippets
Snippets finder.
storage
Chat conversations storage.
tui
Terminal user interface.
ui
Widget renderer.