alt.freeweights.text / colgrep-agent-2B
From: lightonai <huggingface.co/lightonai>Newsgroups: alt.freeweights.textSubject:

colgrep-agent-2B

Date: 2026-11-15Commit: f798a61Signed: 2DC28CC7B26A283B ✓

Text generation model with 2.5B parameters. Safetensors weights, 5.05 GB in all. Published by lightonai under Apache-2.0.

2.5B params5.05GBcolgrep-agent-2Bsafetensorspermissive
FactsParams2.5BSize5.05 GBFormatssafetensorsTasktext generationLicenseApache-2.0From sourcepermissive
$ fw get lightonai/colgrep-agent-2B
# manifest sha256 55e85cf68eec… · 5.05 GB · 13 files
$ fw verify ./colgrep-agent-2B lightonai/colgrep-agent-2B
From sourceHosted (signed)lightonai/colgrep-agent-2BLast check: 2026-11-15 03:42 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Fine-tune of MiniCPM5-2B.

Works with

Overview

Size
5.05 GB
Weights
5.03 GB (safetensors)
Parameters
2.5B
Formats
safetensors
Task
text generation
License
Apache-2.0 (permissive)
Files
13, each with a sha256
Publisher
lightonai
Added
2026-11-15
Section
alt.freeweights.text
Lineage

Original release from the publisher.

Base model: openbmb/MiniCPM5-2B

Where these bytes come from
Publisher at the pinned commit→You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:42 UTCpassed

Model card

From the publisher at commit f798a61. Shown as plain text with links; images open at the publisher.

library_name: transformers base_model: openbmb/MiniCPM5-2B pipeline_tag: text-generation tags:

  • code
  • code-search
  • tool-use
  • reinforcement-learning
  • colgrep

language:

  • en

license: apache-2.0


ColGrep-Agent-2B#

Image: ColGrep Agent 2B banner

Website LinkedIn X

πŸ“„ Paper | πŸ“ Blog Post | πŸ’» GitHub | πŸ€— Model | πŸ“¦ GGUF

ColGrep-Agent-2B is a lightweight code-localization agent designed to identify the files and line ranges relevant to a GitHub issue, bug report, feature request, or natural-language question about a repository.

Given a question such as "Where are retries configured?" or "Why does the export crash on empty files?", the agent iteratively searches the repository using ColGrep, reads candidate files through a read-only terminal, and returns the precise code locations relevant to the task.

The model powers colgrep --agent and is designed to offload repository exploration from larger coding agents. Rather than consuming thousands of tokens searching through files before making a fix, a larger model can delegate code localization to ColGrep-Agent-2B and receive a focused list of relevant locations.

Its small footprint enables practical local inference, with GPU acceleration when available, without requiring Python, a separate inference server, or an API key.

Image: colgrep: a semantic search, then colgrep --agent

πŸš€ Quick start#

1. Install ColGrep and the model#

Homebrew (macOS / Linux)

brew install lightonai/tap/colgrep && colgrep --install-agent

Shell installer (macOS / Linux)

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/lightonai/next-plaid/releases/latest/download/colgrep-installer.sh | sh && "${CARGO_HOME:-$HOME/.cargo}/bin/colgrep" --install-agent

Windows (PowerShell)

irm https://github.com/lightonai/next-plaid/releases/latest/download/colgrep-installer.ps1 | iex
colgrep --install-agent

Cargo (from source)

cargo install colgrep && colgrep --install-agent

The colgrep --install-agent command downloads the default colgrep-agent-2B-Q8_0.gguf model (approximately 2.5 GB), verifies that it loads, and prepares the prompt cache to accelerate the first inference.

Installation is required only once. No Python environment, external inference server, or API key is necessary.

2. Index a repository#
cd /path/to/project
colgrep init

After the initial indexing, subsequent searches automatically detect modified files and update the index before answering.

3. Ask a question#
colgrep --agent "where does the agent decide which GPU backend llama.cpp uses"

The following example shows a real session on ColGrep's own source code, running on an M3 Pro with Metal acceleration. Individual tool results have been omitted for readability.

$ colgrep --agent "where does the agent decide which GPU backend llama.cpp uses"
β—† colgrep agent  Β· colgrep-agent-2B-Q8_0.gguf (GPU)
❯ where does the agent decide which GPU backend llama.cpp uses

  ● colgrep   llama.cpp GPU backend
  ● terminal  cat -n agent/src/llm/llama.rs
  ● terminal  cat -n agent/src/llm/server.rs
  ● terminal  cat -n agent/src/engine.rs
  ● terminal  cat -n agent/src/llm/llama.rs | sed -n '80,150p'
  ● terminal  cat -n agent/src/llm/server.rs | sed -n '65,130p'
  ● colgrep   find_gpu
  ● terminal  cat -n agent/src/llm/server.rs | sed -n '1,100p'
  ● finish    agent/src/llm/server.rs:103-105, agent/src/llm/server.rs:65-69, …

βœ“ 5 locations Β· 9 turns Β· 2 searches Β· 6 terminal commands Β· 21.7s

agent/src/llm/server.rs:103-105
agent/src/llm/server.rs:65-69
agent/src/llm/llama.rs:101-101
agent/src/llm/llama.rs:115-116
agent/src/engine.rs:57-67

The output follows the path/to/file:START-END format, making it directly usable by developers, scripts, and other coding agents.

Agent progress is printed to stderr only when running in a terminal, while stdout contains only the resulting code locations. This separation makes the command easy to compose with other tools.

Additional usage examples

Scope the search to a directory and display the matching code lines:

colgrep --agent "crash when the config file is empty" ./backend -c

Return structured JSON for downstream applications:

colgrep --agent --json "where are retries configured"

πŸ€– Integration with coding agents#

ColGrep can be integrated into existing coding-agent workflows, allowing larger models to delegate repository exploration to a smaller specialized model.

Install the corresponding hooks and skills:

colgrep --install-claude-code   # Claude Code
colgrep --install-codex         # Codex
colgrep --install-opencode      # OpenCode

For example, once configured, Claude Code can delegate open-ended questions such as "Where is this behavior implemented?" to colgrep --agent, receiving exact file paths and line ranges instead of performing every exploratory search itself.

This division of labor allows larger coding agents to reserve more of their context and computation for understanding issues, planning changes, and generating patches.

πŸ”Ž ColGrep#

ColGrep is a semantic code search tool for terminals and coding agents, built on the NextPlaid search engine. It combines natural-language search with regex filtering to find code by both meaning and exact matches.

ColGrep-Agent-2B extends this search functionality with an iterative search-and-read loop. Rather than relying on a single search query, the agent follows leads, inspects candidate files, refines its searches, and identifies relevant code locations over multiple turns.

🧠 Training and harness#

ColGREP-Agent-2B is built on MiniCPM5-2B and trained in two stages: a short supervised fine-tuning (SFT) cold start followed by reinforcement learning (RL) using GRPO.

We construct multilingual code-localization environments from nebius/SWE-rebench, internlm/SWE-Fixer-Train-110K, and additional scraped repositories covering multiple programming languages. Each training instance pairs a repository with an issue description and a dedicated bug-fix commit. We use the pre-patch repository state as the search environment and derive gold file- and line-level localization targets from the corresponding patch. These data sources are used across both the SFT and RL stages.

We first perform a short cold-start SFT phase using traces generated and filtered with Qwen3.5-27B as a teacher model. This stage teaches tool-call formatting, command ordering, argument and flag usage, and effective repository exploration strategies, with an emphasis on semantic search through ColGrep rather than traditional grep-based search. We then train for 500 steps using GRPO in a dedicated code-localization environment, rewarding accurate file- and line-level identification while penalizing unnecessary exploration steps.

The model operates in a repository exploration environment with access to three tools:

ToolPurpose
colgrepSearch code semantically, with optional regex and path filters.
terminalRead files and inspect the repository through read-only commands.
finishSubmit relevant locations as path/to/file:START-END.

The agent has a 10-turn budget to search and inspect the repository before submitting its final prediction as a set of relevant file paths and line ranges.

πŸ“Š Evaluation#

Image: ColGREP performance vs. model size

We evaluate ColGREP-Agent-2B on SWE-bench Lite and Multi-SWE-bench Flash, adapting both benchmarks into code-localization tasks following the methodology described in our paper. Rather than generating patches or resolving issues end-to-end, the model is tasked with identifying the files and lines of code relevant to each issue. This allows us to evaluate localization accuracy independently of code generation.

| Model | Harness | SWE-bench Lite | Multi-SWE-bench Flash

| File F1 | Line F1 | File F1 | Line F1

| lightonai/colgrep-agent-2B | ColGrep | 76.18 | 19.92 | 62.57 | 15.93

| openbmb/MiniCPM5-2B | ColGrep | 66.72 | 9.62 | 52.01 | 11.31

| google/gemma-4-31B-it | ColGrep | 79.93 | 17.08 | 68.30 | 19.14

| Qwen/Qwen3.5-27B | ColGrep | 77.93 | 15.71 | 68.28 | 16.63

| google/gemma-4-26B-A4B-it | ColGrep | 76.35 | 13.34 | 63.50 | 14.75

| Qwen/Qwen3.8-27B | ColGrep | 60.80 | 7.70 | 59.68 | 11.50

| deepseek-ai/DeepSeek-V4-Flash | ColGrep | 74.04 | 11.36 | 64.26 | 13.64

All models use the ColGREP harness. File and line F1 measure overlap with reference files and lines, respectively. Scores are percentages averaged over five seeds (300 instances per benchmark per seed), using strict predictions without rescue, a 10-turn limit with mandatory final submission, and temperature 0.6 without reasoning for comparison models.

πŸ“š Citation#

@misc{colgrepagent_2026,
  title        = {ColGrep-Agent},
  author       = {Lasbordes, Maxence and Sourty, Raphael and Sinha, Aarush and Chatelain, AmΓ©lie},
  year         = {2026},
  howpublished = {\url{https://huggingface.co/blog/lightonai/colgrep-agent/}}
}

Files

13 files Β· 5.05 GBWeights 5.03 GB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 13 files with their sha256
FileSizesha256
.gitattributes1.78 KB101b0b681cf994725247abbf38ca30ebe0fb7c444a01ead39ffbc9395f2e90e8
README.md11.4 KB9328d2146a2a3edc9dfcc9e0708c71cc37f7e8bd50b746a526c6033f97109a6e
chat_template.jinja9.06 KBcc945752db555d60949b16989df4ccfeb52a313d6b4b5c5229dd786e2e9fcf1c
config.json791 B4329e012eb71be025875b362aad9a3cdb7c09a1fd62628f9f35ce63a3a0053b1
generation_config.json237 B8643a6f784ffacefd3441fe1225237ea2123f107709be2bbcb36bf461892a042
media/banner.png1.34 MB17eee9967a72bdcc5bc1ca3b635d6699140bebc8a341f25cf1a45262f1f11931
media/colgrep-demo.gif138 KB2c555f4a478f86e486638c4770d907694433b67d8e039c8d6a721ce0d03c12f1
media/colgrep_performance_vs_model_size.png263 KB9295b5c91584b432bcd416ff2930f7f6916cd44506426f90212bb007277d4196
model-00001-of-00002.safetensors4.50 GB19c22d8e7c3d1f3276889b5277c4bd9d1d7631687b8797285f56809d1de18f36
model-00002-of-00002.safetensors535 MB22be60355777581fe0ded99c7bf1b0d72d3a4ae863c069f5fbb4ff36549c483f
model.safetensors.index.json31.4 KB58a788415aad8027fdea0c07f00d65c0144b57a905a0a15c5c1b549d25e9bf77
tokenizer.json9.89 MB3e065a558a034185fe299917b398685c1facd0169a9eea1e629eb30c171fed81
tokenizer_config.json434 B5378dcce33a455cfa6a7cd4a5ab54511e787b84b7334ec2d04e54b1d5a1a3cb4
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
f798a61129 pinned now2026-11-15 03:42 UTC13 files Β· 5.05 GB

Use it

$ fw get lightonai/colgrep-agent-2B
# manifest sha256 55e85cf68eec… · 5.05 GB · 13 files
$ fw verify ./colgrep-agent-2B lightonai/colgrep-agent-2B
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/lightonai/colgrep-agent-2B.json --dir ./colgrep-agent-2B $ python3 fw.py verify ./colgrep-agent-2B ./lightonai__colgrep-agent-2B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download lightonai/colgrep-agent-2B --revision f798a61129c6decb5166864e0a3c98373e62c764 --local-dir ./colgrep-agent-2B
transformersLoad the weights in Python.
import os os.environ["HF_ENDPOINT"] = "https://freeweights.allternit.com" from transformers import AutoModelForCausalLM, AutoTokenizer tok = AutoTokenizer.from_pretrained("lightonai/colgrep-agent-2B", revision="f798a61129c6decb5166864e0a3c98373e62c764") model = AutoModelForCausalLM.from_pretrained("lightonai/colgrep-agent-2B", revision="f798a61129c6decb5166864e0a3c98373e62c764", device_map="auto")
vLLMServe an OpenAI-compatible API.
$ HF_ENDPOINT=https://freeweights.allternit.com vllm serve lightonai/colgrep-agent-2B --revision f798a61129c6decb5166864e0a3c98373e62c764

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
9328d2146a2a3edc9dfcc9e0708c71cc37f7e8bd50b746a526c6033f97109a6e
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: lightonai <huggingface.co/lightonai>Newsgroups: alt.freeweights.textSubject: colgrep-agent-2BDate: 2026-11-15Commit: f798a61Signed: 2DC28CC7B26A283B ✓
Upstream
lightonai/colgrep-agent-2B
Pinned commit
f798a61129c6decb5166864e0a3c98373e62c764
Manifest
colgrep-agent-2B.json Β· .minisig
Manifest sha256
55e85cf68eec94b8ac08424a48181923b64fc7b1ff0bda9aac771c35d425d485
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:42 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/lightonai/colgrep-agent-2B.json $ curl -O https://freeweights.allternit.com/manifests/lightonai/colgrep-agent-2B.json.minisig $ minisign -Vm colgrep-agent-2B.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

Parent

openbmb/MiniCPM5-2B Β· this model is a finetune of it

1 model in the catalog name this one as their parent.

Quantizations
1
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download lightonai/colgrep-agent-2B
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. colgrep-agent-2B.json. Provenance. Takedown history: none.

Variants

1 quantized or adapter build of colgrep-agent-2B. Each has its own license check and page.

From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B