MCPcopy Index your code
hub / github.com/amrit110/oli

github.com/amrit110/oli @v0.1.4-post1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.1.4-post1 ↗ · + Follow
415 symbols 801 edges 73 files 110 documented · 27%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Crates.io Docs.rs License Codecov Rust

oli - Open Local Intelligent assistant

oli is an open-source alternative to Claude Code with powerful agentic capabilities for coding assistance. Features:

  • A modern hybrid architecture:
  • Rust backend for performance and core functionality
  • React/Ink frontend for a beautiful, interactive terminal UI
  • Support for both cloud APIs (Anthropic Claude Sonnet 3.7 and OpenAI GPT4o) and local LLMs (via Ollama)
  • Strong agentic capabilities including file search, edit, and command execution
  • Tool use support across all model providers (Anthropic, OpenAI, and Ollama)

⚠️ This project is in a very early stage and is prone to bugs and issues! Please post your issues as you encounter them.

Installation

Using npm

npm install -g oli-tui

This will install the latest version from npm and handle all dependencies automatically.

Using Homebrew (macOS)

brew install amrit110/oli/oli

Homebrew will download and install the latest version directly.

From Source

# Clone the repository
git clone https://github.com/amrit110/oli
cd oli

# Build both backend and frontend
./build.sh

# Run the hybrid application
./run.sh

Environment Setup

Development Setup

# Install Python dependencies (for pre-commit)
python -m pip install uv
uv venv
uv pip install -e .

# Install pre-commit hooks
pre-commit install

# Run Rust linting and formatting
cargo fmt
cargo clippy

# Run TypeScript checks in the UI directory
cd ui
npm run lint
npm run format

Cloud API Models

For API-based features, set up your environment variables:

# Create a .env file in the project root
echo "ANTHROPIC_API_KEY=your_key_here" > .env
# OR
echo "OPENAI_API_KEY=your_key_here" > .env

Using Anthropic Claude 3.7 Sonnet (Recommended)

Claude 3.7 Sonnet provides the most reliable and advanced agent capabilities:

  1. Obtain an API key from Anthropic
  2. Set the ANTHROPIC_API_KEY environment variable
  3. Select the "Claude 3.7 Sonnet" model in the UI

This implementation includes: - Optimized system prompts for Claude 3.7 - JSON schema output formatting for structured responses - Improved error handling and retry mechanisms

Using Ollama Models

oli supports local models through Ollama:

  1. Install Ollama if you haven't already
  2. Start the Ollama server: bash ollama serve
  3. Pull the model you want to use (we recommend models with tool use capabilities): bash # Examples of compatible models ollama pull qwen2.5-coder:14b ollama pull qwen2.5-coder:3b ollama pull llama3:8b
  4. Start oli and select the Ollama model from the model selection menu

Note: For best results with tool use and agent capabilities, use models like Qwen 2.5 Coder which support function calling.

Usage

  1. Start the application:
./run.sh
  1. Select a model:
  2. Cloud models (Claude 3 Sonnet, GPT-4o) for full agent capabilities
  3. Local models via Ollama (Qwen, Llama, etc.)

  4. Make your coding query in the chat interface:

  5. Ask for file searches
  6. Request code edits
  7. Execute shell commands
  8. Get explanations of code

Architecture

The application uses a hybrid architecture:

┌───────────────┐        ┌───────────────┐
│ React + Ink UI│◄───────┤ Rust Backend  │
│               │  JSON  │               │
│ - UI          │  RPC   │ - Agent       │
│ - Task Display│        │ - Tool Exec   │
│ - Loading     │        │ - Code Parse  │
└───────────────┘        └───────────────┘
  • Rust Backend: Handles agent functionality, tool execution, and API calls
  • React/Ink Frontend: Provides a modern, interactive terminal interface with smooth animations

Examples

Here are some example queries to try:

  • "Explain the codebase and how to get started"
  • "List all files in the project"
  • "Summarize the Cargo.toml file"
  • "Show me all files that import the 'anyhow' crate"

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Acknowledgments

  • This project is inspired by Claude Code and similar AI assistants
  • Uses Anthropic's Claude 3.7 Sonnet model for optimal agent capabilities
  • Backend built with Rust for performance and reliability
  • Frontend built with React and Ink for a modern terminal UI experience
  • Special thanks to the Rust and React communities for excellent libraries and tools

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 180
Function 119
Class 68
Interface 33
Enum 15

Languages

Rust83%
TypeScript17%

Modules by API surface

src/app/core.rs30 symbols
src/apis/api_client.rs24 symbols
src/communication/rpc.rs21 symbols
src/tools/code/parser.rs20 symbols
src/app/utils.rs20 symbols
src/apis/ollama.rs20 symbols
tests/tools/fs/test_search.rs16 symbols
src/apis/anthropic.rs16 symbols
src/apis/openai.rs15 symbols
tests/app/test_logger.rs14 symbols
src/app/state.rs13 symbols
src/tools/fs/file_ops.rs12 symbols

For agents

$ claude mcp add oli \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page