9 releases (breaking)

0.8.1 Dec 18, 2025
0.8.0 Dec 6, 2025
0.7.0 Oct 29, 2025
0.6.0 Sep 9, 2025
0.2.0 Sep 19, 2024

#947 in Web programming


Used in jutella-xmpp

MIT license

115KB
2K SLoC

jutella

License crates.io docs.rs

Chatbot API client library and CLI interface. Supports OpenAI (including Azure auth flavor) and OpenRouter chat completions API.

Features

  1. Rolling context window with min/max token limits.
  2. Image & PDF file attachments.
  3. Image generation and editing (only with OpenRouter).

Command line interface

To get started with CLI, put your API key and endpoint into ~/.config/jutella.toml. See a config example.

Screenshot

Invoking the CLI with jutella -x makes it copy every response to clipboard on X11.

Installation

  1. Install cargo from https://rustup.rs/.
  2. Install the CLI from crates.io with cargo install jutella.
  3. Alternatively, clone the repo and build the CLI with cargo build --release. The resulting executable will be target/release/jutella.

Library

To use the chat API, initialize ChatClient with OPENAI_API_KEY and ChatClientConfig:

let mut chat = ChatClient::new(Auth::Token(api_key), ChatClientConfig::default())?;

Request replies via ChatClient::ask():

let answer = chat.ask("What is the highest point on Earth?".to_string()).await?;
println!("{answer}");

ChatClient keeps the conversation context and uses it with every ask() to generate the reply.

Dependencies

~21–43MB
~497K SLoC