Ainator
Ainator is a CLI/API framework for AI agents built on the agno framework. It provides interactive chat, persistent sessions, knowledge bases (RAG), and built-in tools for shell execution, file operations, and web search.
Features
- Interactive Chat: Persistent sessions with compression and summarization
- Knowledge Bases (RAG): Embed code repositories (AST-aware chunking), websites, and directories
- Built-in Tools: Shell execution (with safety controls), file operations, DuckDuckGo search
- Session Management: List, switch, show, and compress sessions
- Learning & Memory: User profile, memory, and session context
- Cultural Knowledge: Context-aware cultural knowledge integration
- KeyboardInterrupt Handling: Proper handling of interruption signals
- Skills System: Extensible via
.ainator/skills/directory - MCP Support: Local, remote, any MCP is configurable
- Web Server: FastAPI server with Swagger documentation
- Model Support: VLLM, DeepSeek, OpenAI, Anthropic...
Installation
pip install ainator
Quick Start
# Run a one-off prompt (creates new session)
ainator hi "What is the capital of France?"
# Continue in existing session
ainator but "Tell me more about that"
# Or start interactive chat
ainator chat
# Or Start the web server (localhost:7777/docs)
ainator server
# Then consume it through https://github.com/agno-agi/agent-ui
Commands
Chat & Prompt
ainator hi "your prompt"- One-off prompt execution (creates new session)ainator but "your prompt"- Continue in existing sessionainator chat- Interactive chat session
Test-Driven Development & Fixing
ainator fix "python my_script.py or any command or pytest"- Run until rc == 0
Session Management
ainator sessions- List all sessionsainator switch <id>- Switch to a sessionainator show- Show messages in current session
Skills Management
ainator skills- List available skills
RAG Management
ainator rag code add ./path/to/repo python- Add code repositoryainator rag website add <url>- Add website contentainator rag search <knowledge-name> "query"- Search knowledge baseainator rag remove <knowledge-name>- Remove knowledge baseainator rag- Show RAG status
Server
ainator server- Start FastAPI web server (port 7777)
Configuration
Configuration file is auto-managed, but you can still hack it if you want to
tweak parameters: .ainator/config.yml
Example Configuration
agent:
add_culture_to_context: true
add_history_to_context: true
compress_tool_results: true
enable_session_summaries: true
reasoning: true
reasoning_max_steps: 5
reasoning_min_steps: 2
store_events: true
update_cultural_knowledge: true
update_memory_on_run: true
compression_manager: agno.compression.manager:CompressionManager compress_token_limit=60000 compress_tool_results=True
compression_model: agno.models.vllm:VLLM id=coder
db: ainator.db.sqlite:AsyncSqliteDb db_file=/home/jpic/src/ainator/.ainator/agno.db
extra_skills: []
knowledge:
agno:
path: /home/jpic/src/agno/libs/agno/agno
plugin: code
learning_machine: agno.learn:LearningMachine user_profile=False user_memory=False session_context=True entity_memory=False learned_knowledge=True
model: agno.models.vllm:VLLM id=coder
session_id: bf51cd29-c374-4074-b0eb-faa54f2a6e70
session_name: Fixing Configuration Tests with Temporary Directories
tools:
- agno.tools.file:FileTools base_dir=/home/jpic/src/ainator
- agno.tools.shell:ShellTools
- agno.tools.duckduckgo:DuckDuckGoTools
mcp:
- url: https://docs.agno.com/mcp
- commad: npx -y @modelcontextprotocol/server-google-maps
Model Configuration Examples
# VLLM
model: agno.models.vllm:VLLM id=coder
# DeepSeek
model: agno.models.deepseek:DeepSeek id=deepseek-chat
Environment Variables
AINATOR_MODEL- Override the model configuration
Architecture
Core Framework
- agno: Core AI agent framework (agents, models, tools, SQLite database)
- cli2: Command-line interface framework
Knowledge Plugins
- code: Repository embedding with AST-aware chunking
- Uses llama-index CodeSplitter and HierarchicalNodeParser
- BAAI/bge-small-en-v1.5 embeddings
- LanceDB vector storage
- site: Website scraping with Parsel
- generic: Directory embedding descriptive file names is required
Skills System
Extensible via .ainator/skills/ directory, just create a skill in there or
clone a skills repo such as:
git clone https://github.com/anthropics/skills .ainator/skills/anthropics
Renderer
Streaming Markdown output
Server
FastAPI server via AgentOS, consumable with AgentUI or the AgentOS client, or plain HTTP even.
Tools
- Enhanced shell execution with chunked output
- File operations
- DuckDuckGo search
- Custom knowledge tools (RAGs)
Compression
Automatic
Learning
- User profile management
- Memory system
- Session context tracking
Development
Installation for Development
pip install -e '.'
Testing
pytest tests/
Version
Version 0.0.3 (defined in src/ainator/__about__.py)
License
MIT © 2026-present jpic
Links
Metadata
Release files for ainator 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ainator-0.1.7.tar.gz | 24.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ainator-0.1.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.0 kB
Release files / ainator-0.1.7.tar.gz
| Download URL | ainator-0.1.7.tar.gz |
|---|---|
| Size | 24.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cf075ed9c080bb97fb7d4884fec0f5d0e70f94df4a690f62a2b8ed32abea517e
|
|
BLAKE2b-256 checksum How to use checksums |
921afa2526f58f400e4a64004ab33d795c4c5e9b4a92d5866011ae7f7d16efab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|
Release files / ainator-0.1.7-py3-none-any.whl
| Download URL | ainator-0.1.7-py3-none-any.whl |
|---|---|
| Size | 23.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
967a27d1f80fa85b60c292c3dfc2e9a0d5f741cc7b3045b0ae84df2325b0fc3b
|
|
BLAKE2b-256 checksum How to use checksums |
f216aba57706266971efdc04be604470f95eed1999101b8dd83b676c10e23639
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.2
|