No project description provided
Project description
Ainator
Ainator is a command-line interface (CLI) and API framework for running powerful AI agents. Built on top of the agno agent library, it provides persistent session management, Retrieval-Augmented Generation (RAG) over code repositories and websites, integrated tools (shell, files, DuckDuckGo search), knowledge plugins, and a FastAPI web server.
Perfect for developers seeking a local, configurable AI assistant for coding, debugging, documentation querying, and more.
Features
- Interactive Chat: Real-time terminal conversations with streaming responses and tool usage visualization.
- Persistent Sessions: Auto-saved conversations with switchable contexts and auto-generated names.
- Knowledge Bases (RAG):
- Embed code repositories (AST-aware chunking, parallel processing, LanceDB storage).
- Embed websites (scraping with Parsel + chunking).
- Query with
search,think,analyzetools.
- Built-in Tools:
- Chunked shell execution for safety.
- File read/write operations.
- DuckDuckGo search.
- Custom knowledge tools.
- Configurable: YAML config for models (e.g., xAI Grok, OpenAI), DB, tools, knowledge.
- Web API: FastAPI server for programmatic agent access.
- Plugin System: Extensible RAG knowledge via entry points (
ainator.knowledge).
Installation
pip install ainator
Requirements: Python ≥3.8. Dependencies: agno, ddgs, chunkie, parsel.
Runs in any directory; creates .ainator/config.yml on first use.
Quickstart
1. Interactive Chat
ainator chat
Start a persistent chat session (default model: xAI Grok). Supports streaming, tools, history.
2. One-off Prompts
ainator prompt "Fix the bug in my Python script"
Creates/saves a new session. Continue in same session:
ainator but "Also add unit tests"
3. Session Management
ainator session list # List sessions (ID, date, name)
ainator session switch <id> # Switch to session
ainator session show # Show messages in current session
4. Manage Knowledge (RAG)
Add code repo (embeds with code-aware splitting):
ainator rag code add ./path/to/repo python # language=python, num_workers=12
Adds to config as knowledge.<repo-name>.
Add website (similar via rag site add <url>).
ainator rag site add https://cli2.readthedocs.io
Adds to config as knowledge.<domain-slug-url-slug>.
Search knowledge:
ainator rag search <knowledge-name> "your query"
Remove knowledge:
ainator rag remove <knowledge-name>
View RAGs:
ainator rag
5. Web Server
ainator server
- Agno-AGI Open Source Web UI available
- Swagger docs at
http://localhost:7777/docs(Powered by the glorious Agno AgentOS)
Config Inspection
ainator # help
Shows current session (if any) and full config.
Configuration Hacking
Local .ainator/config.yml, auto-created/updated, but can be hacked manually
for hacking purposes:
model: agno.models.xai:xAI id=grok-beta # Or openai:gpt-4o, etc.
db: agno.db.sqlite:SqliteDb db_file=.ainator/agno.db
tools:
- agno.tools.file:FileTools base_dir=.
- agno.tools.shell:ShellTools
- agno.tools.duckduckgo:DuckDuckGoTools
knowledge: {} # Populated via CLI, e.g.:
# myrepo:
# plugin: code
# path: /path/to/repo
The format is dotted.path.to.module:ClassName arg0 argN kwarg0=value0 to
customize Agno framework object casting, so, you can extend the solution with
your own python code right there in the config, for hacking purpose of course.
Architecture
- Core: agno (agents, models, tools, SQLite DB).
- CLI: cli2 CLI framework.
- Knowledge Plugins:
Plugin Description codeFaster repos embeds (llama-index CodeSplitter, HierarchicalNodeParser, BAAI/bge-small-en-v1.5 embeddings, LanceDB). siteFaster Website scraping & embedding (Parsel + Chunkie). genericFeed local directories to Agno Knowledge directly. - Renderer: Streaming Markdown with reasoning/tool steps.
- Server: FastAPI via agno AgentOS.
Development
git clone <repo-url> # e.g., https://yourlabs.io/oss/ainator
cd ainator
pip install -e '.[types]' # editable + mypy
- Type check:
hatch run types:check(ormypy src/ainator) - Coverage: Configured for
ainator,tests. - Version: Managed via
src/ainator/__about__.py(currently0.0.1). - Plugins: Add via
[project.entry-points."ainator.knowledge"].
No tests yet; contribute!
License
MIT © 2026-present jpic
See LICENSE.txt.
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ainator-0.0.3.tar.gz.
File metadata
- Download URL: ainator-0.0.3.tar.gz
- Upload date:
- Size: 1.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23c585c630235f43600b1d7241f39c21ccb1106e7cb5914ba7e9f26cadf18777
|
|
| MD5 |
d709515f42298389f2c9f8f2400e3a30
|
|
| BLAKE2b-256 |
22bddb0c935e0754eb1ac1bb36f16d7bd08eee32cd6257333dafdcbfb7a7faba
|
File details
Details for the file ainator-0.0.3-py3-none-any.whl.
File metadata
- Download URL: ainator-0.0.3-py3-none-any.whl
- Upload date:
- Size: 23.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bec5b8e7e7f6fea6aab9eadfa86dc2e475d7d59d0586323de812224a190ea96
|
|
| MD5 |
dd6a5b8c2407f5143df0e204a9b572ff
|
|
| BLAKE2b-256 |
eee21bc01ab0613a3c81c440f1b44e65c8c9207ba530ce9c53a4530fb9f607eb
|