| Crates.io | jutella |
| lib.rs | jutella |
| version | 0.8.1 |
| created_at | 2024-09-19 08:19:46.208616+00 |
| updated_at | 2025-12-18 15:36:26.09181+00 |
| description | Chatbot API client library and CLI interface. |
| homepage | |
| repository | https://github.com/dmitry-markin/jutella |
| max_upload_size | |
| id | 1380052 |
| size | 233,681 |
Chatbot API client library and CLI interface. Supports OpenAI (including Azure auth flavor) and OpenRouter chat completions API.
Rolling context window with min/max token limits.
Image & PDF file attachments.
Image generation and editing (only with OpenRouter).
To get started with CLI, put your API key and endpoint into ~/.config/jutella.toml. See a config example.

Invoking the CLI with jutella -x makes it copy every response to clipboard on X11.
Install cargo from https://rustup.rs/.
Install the CLI from crates.io with cargo install jutella.
Alternatively, clone the repo and build the CLI with cargo build --release. The resulting executable will be target/release/jutella.
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.