About this project

OnIt is an AI agent harness designed for task automation. It provides a language model with a set of tools, a working directory, and a memory of completed actions, then iterates until the task is complete. The agent is consistent across all front ends—only the interface changes. **Front Ends** - Terminal text UI (default) - Browser chat UI with Google login (`onit serve web`) - A2A protocol server (`onit serve a2a`) - Telegram or Viber bot gateway (`onit serve gateway`) - Docker container mode (`onit --container`) **Model Server Support** OnIt connects to any OpenAI-compatible endpoint. Supported backends include: - Self-hosted: vLLM, SGLang, Ollama, MLX (Apple silicon) - Hosted: OpenRouter, Ollama cloud The model must support tool calling for the agent to function. **MCP Tools** The agent drives work through MCP (Model Context Protocol) tools including: - Web search (via Ollama web search API or DuckDuckGo fallback) - Weather lookup (OpenWeatherMap) - Shell execution (jailed to working directory) - File editing - Document search (local indexing) - GitHub repository management - Code execution **Installation** Requires Python 3.10–3.12. Install from source: ``` git clone https://github.com/sibyl-oracles/onit.git cd onit && pip install -U --upgrade-strategy eager -e '.[all]' ``` **Configuration** `onit setup` walks through endpoint configuration (URL, API key, model name). API keys are stored in the OS keychain, never in config files. Supports multiple endpoints with failover and rotation. **Integrations** - GitHub: git operations and repository management via API - Hugging Face: model and dataset downloads - Local document search with indexing **Session Management** Sessions persist across restarts. Commands like `\model`, `\host`, `\key` allow runtime switching. `\save` persists endpoint configuration. **Security** - Shell is jailed to the working directory - Container mode provides hardened isolation - Command allowlisting in container mode - API keys stored in OS keychain **License:** Apache License 2.0