- Go 98.2%
- Go Template 1.1%
- JavaScript 0.3%
- CSS 0.1%
- HTML 0.1%
- Other 0.1%
🚀 Nibble
Your terminal-first AI coding assistant. Fully compatible with OmniRoute and OpenAI-style custom APIs.
█▄ █ ▀█▀ █▀▀█ █▀▀█ █ █▀▀
█ █ █ █ █▀▀▄ █▀▀▄ █ █▀▀
█ ▀█ ▄█▄ █▄▄█ █▄▄█ █▄▄█ ▄▄█
Nibble Logo
What is Nibble?
Nibble is a terminal-based coding assistant that integrates your local development environment directly with a custom LLM provider via the OpenAI API protocol. It is specifically designed to work out-of-the-box with OmniRoute as its primary AI backend.
Nibble connects to your workspace, reads context from files, interacts with Language Server Protocols (LSP), manages parallel agent swarms, and executes actions directly from the CLI.
Features
- OmniRoute Focused: Built to work with your own OmniRoute instance as the single endpoint.
- Dynamic Model Loading: Automatically discovers and lists models directly from your custom endpoint
/v1/models. - Dynamic MCP TUI Management: Supports on-the-fly configuration reloading and TUI management of Model Context Protocol (MCP) servers.
- Agent Swarms & Progress Tracking: Persistent display of execution goals (TODO list) in the sidebar, streaming progress, and parallel sub-agent status tracking.
- Advanced Clipboard Paste Integration: Copy images or large texts and paste them directly in the prompt using
alt+v(or standard paste), automatically inserting reference tokens ([paste_N]). - Session-Based Context: Maintain multiple work sessions and contexts per project.
- LSP Integration: Uses local LSPs (like
gopls) to feed precise structural code context to the model. - Cross-Platform: Works seamlessly on macOS, Linux, and Windows (PowerShell/WSL).
Installation & Setup
Quick Installation (Recommended)
You can quickly install the pre-compiled binary using the official installation scripts.
Unix Systems (Linux/macOS)
Run the following command in your terminal:
curl -fsSL https://codeberg.org/andeerc/nibble/raw/branch/main/install.sh | bash
Windows (PowerShell)
Run the following command in PowerShell:
iex (irm -useb https://codeberg.org/andeerc/nibble/raw/branch/main/install.ps1)
Build from Source
Prerequisites
- Go 1.26.4 or later installed.
Compilation
To compile the project and generate the executable:
# Clone the repository
git clone https://codeberg.org/andeerc/nibble.git
cd nibble
# Build the executable
go build -o nibble .
How It Works (Onboarding)
On your very first execution, Nibble will start an onboarding assistant directly in the terminal:
- Configure Provider: It will ask you for:
- Base URL: The URL of your OmniRoute instance (e.g.
https://api.omniroute.io/v1). - API Key: Your OmniRoute authorization key.
- Base URL: The URL of your OmniRoute instance (e.g.
- Model Selection: Nibble will query your endpoint via
GET /modelsand list the available models. You can choose one model for large/complex tasks and another for small/simple tasks. - Enjoy: Your terminal assistant is ready.
Note
All credentials and model settings are saved securely in your global configuration file:
~/.local/share/Nibble/Nibble.json(on Linux/macOS) or%LOCALAPPDATA%\Nibble\Nibble.json(on Windows).
Configuration Files
Nibble supports both global and project-level configuration files.
Global Configuration File Example
This file is generated during the onboarding flow at ~/.local/share/Nibble/Nibble.json (on Linux/macOS) or %LOCALAPPDATA%\Nibble\Nibble.json (on Windows):
{
"providers": {
"omniroute": {
"id": "omniroute",
"name": "OmniRoute",
"base_url": "https://api.omniroute.io/v1",
"type": "openai",
"api_key": "YOUR_API_KEY",
"models": [
{
"id": "model-large",
"name": "Large Model"
},
{
"id": "model-small",
"name": "Small Model"
}
]
}
}
}
Project Configuration File
You can place a nibble.json or .nibble.json configuration file at the root of your workspace to customize local settings (e.g., LSPs, excluded files, hooks, etc.).
Commands
Start the TUI
Runs the main terminal user interface:
nibble
Run Non-Interactively
Ask Nibble to perform a task directly from the CLI without opening the full interface:
nibble run "Check if there are any linting issues in this repository"
View and Follow Logs
Logs are kept in the local directory under .nibble/logs/Nibble.log. You can view or follow logs:
# Follow logs in real-time
nibble logs --follow
# Tail recent logs
nibble logs --tail 200
Check and Install Updates
Performs an in-place atomic upgrade directly from Codeberg:
nibble update
Contributing
Feel free to fork the repository on Codeberg and submit issues or pull requests.
License
This project is licensed under the FSL-1.1-MIT License. See LICENSE.md for details.