Bonsai-27B-GGUF
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
A 45M-parameter open model for tool calling, device use and structured extraction, packed into one 14 MB binary that runs in about 28 MB of RAM. For developers who need function calling on phones, boards and browsers.
Needle 2 is a kit in the Developer category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page, a zip of its files. Nothing in it runs by itself.
pip install cactus-needle
Needle 2 is a small open model, 45M parameters in size, built to call tools, operate devices and pull out structured data. The whole model is one 14 MB binary that needs about 28 MB of RAM for a full session. Text goes in and structured JSON comes out, and a grammar built from your schemas constrains every token.
Developers who want function calling on small hardware, such as phones, single-board computers, VR headsets and microcontrollers. It also suits anyone who needs structured data pulled from text without a big model or a network call.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Mobile apps | App developers | Run tool calling on the phone itself | Let a user say what they want and call the matching function |
| Embedded devices | Hardware makers | Put a function-calling model on a small board | Control a device from a spoken or typed request |
| Smart home | Home automation developers | Turn requests into structured commands | Map a sentence to a thermostat setting |
| Agents | Agent builders | Route among a large tool catalog cheaply | Declare many tools and let retrieval pick the top few |
You can skip it if you need open-ended writing or long reasoning. The card describes tool calling, device use and structured extraction.
| Use case | Who | What they get back |
|---|---|---|
| Tool calling | Developers | A structured call with typed arguments |
| Structured extraction | Data teams | JSON that follows your schema |
| Device control | Hardware makers | Actions chosen from the tools you declare |
You need Python and one pip package.
pip install cactus-needle
Decorate a Python function with the tool decorator. Its signature gives the argument types and its docstring is the tool description. Then create the agent and call run. Needle chooses which function to call, runs it with your code, passes the output back to the model and then gives you the closing answer.
import needle
@needle.tool
def get_weather(city: str):
"Get the current weather for a city."
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")["reasoning"])For more control, describe each argument in a Google-style Args block, give defaults for optional arguments, and use a Literal for a fixed set of choices the model cannot step outside of.
from typing import Literal
@needle.tool
def set_thermostat(temperature: int, mode: Literal["heat", "cool", "auto"] = "auto"):
"""Set the thermostat.
Args:
temperature: target temperature in Celsius
mode: heating strategy to use
"""
return {"temperature": temperature, "mode": mode}
agent = needle.Needle(tools=[set_thermostat])
agent.run("make it 21 and cool the room")You declare a weather function and ask what it is like in Lagos right now. Needle picks the weather call, runs your function and returns an answer built from the result. With the thermostat tool, asking for 21 degrees and cooling gives a call with those two values.
A tool-calling model reads a request and decides which function to run and with what values. Needle 2 does this in a tiny package. A first small step is to install it and run the weather example. Describe your tools well, since the model reads those descriptions to decide what to call.
It is built on the authors' Simple Attention Network recipe and compressed to CQ2-bit with Cactus Quants. A grammar working at byte level, compiled from your schemas, limits what each token can be. A learned head gives each response a confidence score so you can set a threshold. A retrieval head shows only the top five tools each turn, and a 256-token sliding window keeps memory near 28 MB.
A 45M-parameter open model for tool calling, device use and structured extraction, packed into one 14 MB binary that runs in about 28 MB of RAM. For developers who need function calling on phones, boards and browsers.
Made by Cactus-Compute on Hugging Face. These notes are Mindket's, written from its model page and model card; the model's own files and license are on Hugging Face.
What it is: Needle 2 is a small open model, 45M parameters in size, built to call tools, operate devices and pull out structured data. The whole model is one 14 MB binary that needs about 28 MB of RAM for a full session. Text goes in and structured JSON comes out, and a grammar built from your schemas constrains every token.
Who it suits: Developers who want function calling on small hardware, such as phones, single-board computers, VR headsets and microcontrollers. It also suits anyone who needs structured data pulled from text without a big model or a network call.
Industry | Who uses it | How they use it | Example
Mobile apps | App developers | Run tool calling on the phone itself | Let a user say what they want and call the matching function
Embedded devices | Hardware makers | Put a function-calling model on a small board | Control a device from a spoken or typed request
Smart home | Home automation developers | Turn requests into structured commands | Map a sentence to a thermostat setting
Agents | Agent builders | Route among a large tool catalog cheaply | Declare many tools and let retrieval pick the top few
You can skip it if you need open-ended writing or long reasoning. The card describes tool calling, device use and structured extraction.
Where to use it:
Use case | Who | What they get back
Tool calling | Developers | A structured call with typed arguments
Structured extraction | Data teams | JSON that follows your schema
Device control | Hardware makers | Actions chosen from the tools you declare
How to set it up: You need Python and one pip package.
pip install cactus-needle
How to use it: Decorate a Python function with the tool decorator. Its signature gives the argument types and its docstring is the tool description. Then create the agent and call run. Needle chooses which function to call, runs it with your code, passes the output back to the model and then gives you the closing answer.
import needle
@needle.tool
def get_weather(city: str):
"Get the current weather for a city."
return {"city": city, "temp_c": 27, "sky": "clear"}
agent = needle.Needle(tools=[get_weather])
print(agent.run("what's it like in Lagos right now?")["reasoning"])
For more control, describe each argument in a Google-style Args block, give defaults for optional arguments, and use a Literal for a fixed set of choices the model cannot step outside of.
from typing import Literal
@needle.tool
def set_thermostat(temperature: int, mode: Literal["heat", "cool", "auto"] = "auto"):
"""Set the thermostat.
Args:
temperature: target temperature in Celsius
mode: heating strategy to use
"""
return {"temperature": temperature, "mode": mode}
agent = needle.Needle(tools=[set_thermostat])
agent.run("make it 21 and cool the room")
Example: You declare a weather function and ask what it is like in Lagos right now. Needle picks the weather call, runs your function and returns an answer built from the result. With the thermostat tool, asking for 21 degrees and cooling gives a call with those two values.
For newcomers and experts: A tool-calling model reads a request and decides which function to run and with what values. Needle 2 does this in a tiny package. A first small step is to install it and run the weather example. Describe your tools well, since the model reads those descriptions to decide what to call.
It is built on the authors' Simple Attention Network recipe and compressed to CQ2-bit with Cactus Quants. A grammar working at byte level, compiled from your schemas, limits what each token can be. A learned head gives each response a confidence score so you can set a threshold. A retrieval head shows only the top five tools each turn, and a 256-token sliding window keeps memory near 28 MB.
Declare tools as Python functions
Needle reads the request and your descriptions
Grammar constrains the call to your schema
Your function runs and the answer comes back
Good to know:
Download its files with Hugging Face's command line:
pip install -U huggingface_hub
hf download Cactus-Compute/needle2
Then follow the usage in its model card. Nothing in this kit runs by itself.
README.md 6 KB
Listed Hugging Face models in the same category that share the most tags with this one.
| Product | Downloads, last 30 days | Likes | Parameters | License | Last change |
|---|---|---|---|---|---|
| Needle 2 This page | 1,736 | 341 | — | apache-2.0 | |
| Needle 3Shares needle · webassembly · function-calling | 147,784 | 411 | — | apache-2.0 | |
| WhistleShares webassembly · edge · quantization | 94,489 | 570 | — | apache-2.0 | |
| BotPsy-0.8B-GGUFsShares function-calling · edge · tool-calling | 827 | 17 | 752M | apache-2.0 | |
| BotPsy-0.8BShares function-calling · edge · tool-calling | 215 | 14 | 853M | apache-2.0 | |
| MNN-Pocket-0.3BShares edge · on-device · text-generation | 3,397 | 197 | 362M | apache-2.0 |
Posts and comments that name this project on Hacker News, Bluesky, X, Reddit, Facebook and YouTube, found by a weekly search and on Trendshift. Mindket doesn’t write or check them. Open one to read it where it was posted.
lmstudio-community · Kit
A GGUF conversion of the 27B Bonsai model for LM Studio, with a 3.80 GB Q1_0 language file and a 0.93 GB BF16 vision projector. Tested for text, vision and par…
LibertAIDAI · Kit
Runs DeepSeek-V4.1-Flash-1017 as a 2.9 bits-per-weight EXL3 quantization, a 196 GiB copy for people serving large models on their own hardware. Perplexity stay…
facebook · Kit
Generates short music clips from a text description or an audio prompt, in the small checkpoint of facebook's MusicGen. It suits developers and music hobbyists…
alpindale · Kit
Tags every character of C source code for syntax highlighting with a tiny neural network of about 984 weights, run through a small C program. For developers an…
prithivMLmods · Kit
Try a set of LoRAs for the FLUX.2 Klein image model in a Gradio app that runs in your browser or on your own computer. Made for people who make or test AI imag…
Sokheng · Kit
Reads Khmer and English text from documents, receipts and photos of signs, using a detector for text lines and a recogniser for each line. Suits developers who…