1
1
Fork
You've already forked nibble
0
No description
  • Go 98.2%
  • Go Template 1.1%
  • JavaScript 0.3%
  • CSS 0.1%
  • HTML 0.1%
  • Other 0.1%
2026年07月09日 22:07:25 -03:00
.agents/skills refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
.forgejo/workflows ci: inject Version and Commit in release binaries 2026年07月08日 18:01:34 -03:00
.github refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
docs docs: update README with installation scripts and add project logo 2026年07月08日 21:53:15 -03:00
internal fix(config): support lowercase config filename and reset providers cache on reload 2026年07月09日 22:06:17 -03:00
scripts chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
.envrc chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
.gitattributes chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
.gitignore chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
.golangci.yml chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
.goreleaser.yml refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
AGENTS.md refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
CLA.md chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
flake.lock chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
flake.nix refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
go.mod refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
go.sum chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
install.ps1 feat: implement auto-update CLI command, core checkers, install scripts and Forgejo release pipeline 2026年07月08日 17:57:54 -03:00
install.sh feat: implement auto-update CLI command, core checkers, install scripts and Forgejo release pipeline 2026年07月08日 17:57:54 -03:00
LICENSE.md chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
main.go refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
nibble.json refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
README.md docs: rewrite README to align with actual project features, commands, and paths 2026年07月09日 22:07:25 -03:00
run.ps1 chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
schema.json refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00
sqlc.yaml chore: replace nibble codebase with modified crush codebase 2026年07月08日 16:47:28 -03:00
Taskfile.yaml refactor: rename project from crush to nibble, remove explicit AI providers, clean CJK and add NIBBLE logo 2026年07月08日 17:14:15 -03:00

🚀 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

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:

  1. 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.
  2. Model Selection: Nibble will query your endpoint via GET /models and list the available models. You can choose one model for large/complex tasks and another for small/simple tasks.
  3. 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.