Skip to main content

No project description provided

Project description

Ainator

PyPI - Version PyPI - Python Version License

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, analyze tools.
  • 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

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
    code Faster repos embeds (llama-index CodeSplitter, HierarchicalNodeParser, BAAI/bge-small-en-v1.5 embeddings, LanceDB).
    site Faster Website scraping & embedding (Parsel + Chunkie).
    generic Feed 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 (or mypy src/ainator)
  • Coverage: Configured for ainator, tests.
  • Version: Managed via src/ainator/__about__.py (currently 0.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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ainator-0.0.3.tar.gz (1.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ainator-0.0.3-py3-none-any.whl (23.2 kB view details)

Uploaded Python 3

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

Hashes for ainator-0.0.3.tar.gz
Algorithm Hash digest
SHA256 23c585c630235f43600b1d7241f39c21ccb1106e7cb5914ba7e9f26cadf18777
MD5 d709515f42298389f2c9f8f2400e3a30
BLAKE2b-256 22bddb0c935e0754eb1ac1bb36f16d7bd08eee32cd6257333dafdcbfb7a7faba

See more details on using hashes here.

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

Hashes for ainator-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6bec5b8e7e7f6fea6aab9eadfa86dc2e475d7d59d0586323de812224a190ea96
MD5 dd6a5b8c2407f5143df0e204a9b572ff
BLAKE2b-256 eee21bc01ab0613a3c81c440f1b44e65c8c9207ba530ce9c53a4530fb9f607eb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page