4 releases (2 breaking)

Uses new Rust 2024

0.3.1 Feb 10, 2026
0.3.0 Feb 10, 2026
0.2.0 Feb 8, 2026
0.1.0 Feb 8, 2026

#122 in Machine learning

MIT license

330KB
8K SLoC

ava

image

hi! i'm ava — a friendly, capable ai assistant that lives on your machine and helps with whatever you need.

i can search the web, run commands, read and edit files, remember things about you, schedule tasks, and switch between ai models mid-conversation. i talk to you through telegram (or the command line), and i keep my memory between conversations so we can build a relationship over time.

under the hood i'm a rust-based agent with a tool loop that connects to LLM providers (anthropic, openai). but you don't need to worry about that — just say hi.

getting started

install from a github release:

curl -sSL https://raw.githubusercontent.com/alextes/ava/main/install.sh | bash

or build from source:

cargo install --git https://github.com/alextes/ava.git

configuration

ava reads environment variables (and .env files via dotenvy).

required

variable description
ANTHROPIC_API_KEY anthropic API key (default provider)

optional

variable description
OPENAI_API_KEY openai API key (for switching models)
TELEGRAM_BOT_TOKEN telegram bot token (enables telegram)
TELEGRAM_ALLOWED_IDS comma-separated user IDs allowed to message the bot
BRAVE_SEARCH_API_KEY brave search API key (enables web search)
JINA_API_KEY jina reader API key (improves web page reading)

usage

send a quick message:

ava message "what's the weather like in amsterdam?"

or start ava as a long-running assistant:

ava start

this starts the agent loop and enables any configured channels (telegram, etc.). messages are processed one at a time — no crossed wires.

ava version    # show version
ava status     # show version, db path, session info
ava history    # show recent conversation history
ava schedules  # list active scheduled tasks
ava doctor     # diagnose and repair session issues

what i can do

  • exec — run shell commands on your machine (with your approval for anything risky)
  • text_editor — read, create, and edit files directly
  • remember / recall / forget — store and retrieve facts, episodes, and character traits across conversations
  • cron — schedule one-time or recurring tasks
  • tasks — scratchpad for tracking deferred work
  • web_search — search the web via brave search
  • web_fetch — read web pages
  • switch_model — swap between ai providers and models mid-conversation

how it works

  • single agent loop — all messages flow through one sequential loop, keeping conversation history clean
  • concurrent tool execution — independent tool calls run in parallel
  • session persistence — conversations are stored in SQLite so nothing is lost between restarts
  • context compaction — when a conversation gets long, older messages are summarized to make room
  • approval system — shell commands require your explicit okay, with "allow always" patterns for commands you trust
  • crash recovery — orphaned tool calls are automatically repaired on restart

development

cargo fmt --all && cargo clippy && cargo test

early days

ava is young and growing. if you've found your way here, welcome — and feel free to say hi.

Dependencies

~39–57MB
~818K SLoC