cactus-compute/needle

▲ 404 stars today★ 11,832⑂ 758

Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, structured extraction and embeddings on phones, wearables, smart homes, robots, cars and microcontrollers.

About cactus-compute/needle

cactus-compute/needle is an open-source project on GitHub, mainly written in Python. Automation foundation model for tiny devices: 2-bit, 8-29 MB, tool calls, structured extraction and embeddings on phones, wearables, smart homes, robots It currently holds 11,832 stars and 758 forks with 29 open issues, and was last pushed on 2026-09-19 (repository created 2026-02-24).

Project Overview

Git Homed tracks it on the Today's Trending board, currently at rank #13 with 404 new stars today.

GitHub Repository Details

Repository cactus-compute/needle · default branch main · size 4632 KB · watchers 66 · source: GitHub REST API and repository README

README

Needle

A foundation model for mobiles, wearables, robots, smart home, automotive and microcontrollers. The whole model is a single 8-29 MB binary built on our Simple Attention Network, and we trade general chat capacity to beat models 10x its size on mobile tool calls and match 2-3x bigger models on extraction.

Needle 3 at a glance

Needle 3 is a Laddered Simple Attention Network: a Monarch Hadamard MLP in place of the FFN, GQA attention with causal conv taps, engram n-gram memory read by gather, and multi-lane hyper-connections, trained so that every depth from 2 to 20 layers is a deployable model. Most of its parameters sit in the engram, so the 121M model does the arithmetic of a 50M one. A byte-level grammar compiled from your schemas constrains every token, and every response carries a calibrated confidence score from a learned head. The architecture diagram is on the release page.

Benchmarks

Tool calling is exact-match accuracy on the full test splits, extraction is field micro-F1 on the full test splits.

Needle 3 against baselines on six benchmarks

The interactive frontier plot, the architecture and the fine-tuning results are at cactuscompute.com/needle.

Get started

pip install cactus-needle

Try it in the browser at cactuscompute.com/needle; the weights and every platform engine are on Hugging Face.

Decorate a function: the signature gives the argument types, the docstring is the tool description, and run() completes the loop, executing your function and returning its results.

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?")["results"])

[{'city': 'Lagos', 'temp_c': 27, 'sky': 'clear'}]

Every turn returns one JSON object with function_calls, the model's reasoning and a calibrated confidence; an off-topic request returns an empty list rather than a guess. needle.Needle(tools=[...], generation=2) keeps running Needle 2 for existing deployments.

Guides

llms.txt in this repo carries the same reference for AI coding assistants.

Customisation

Needle was designed to be customised. Its capacity is a ladder, and a subnetwork as small as 2 layers, fine-tuned on one product's tools, runs optimally on devices far smaller than the full model needs. Fine-tuning on DroidCall lifts every subnetwork by 18 to 36 points, and from 4 layers up the tuned subnetwork passes DeepSeek V4 Flash, starting at 29M parameters.

Every subnetwork before and after fine-tuning on DroidCall and on Mobile Actions
pip install "cactus-needle[train]"
needle finetune data.jsonl --epochs 10 --out adapter.safetensors
needle build --lora adapter.safetensors --layers 8 --out tuned.cact

Local fine-tuning trains and exports at 4 bits; the fine-tuning guide has the rest. The 2-bit post-training and quantisation behind the shipped model, enriched with Cactus proprietary datasets, run on the Cactus Platform.

Deploy

Every deployment target ships a prebuilt engine under 1 MB that loads the needle3.cact weights at start. needle build --platform [--layers N] fetches that engine and puts the weights beside it.

One engine per platform folder
needle build --platform macos-arm64
needle build --platform linux-arm64 --layers 8 --out ./pi
./macos-arm64/needle --model needle3.cact --tools tools.json --serve

The devices guide lists every folder and what ships in it.

By default, telemetry is turned on in the binary. To turn it off, set environment variables NEEDLE_TELEMETRY=0 and DO_NOT_TRACK=1.

Citation

Needle is built by the Cactus Compute team. If you use it in your work, please cite:

@misc{needle3_2026,
  title        = {Needle: Automation Foundation Model for Tiny Devices},
  author       = {Ndubuaku, Henry and Mosoyan, Karen and Mroz, Jakub and Cylich, Noah and
                  Kumar, Satyajit and Sandhu, Parkirat and Shemet, Roman and Lee, Justin H.},
  year         = {2026},
  organization = {Cactus Compute, Inc.},
  howpublished = {\url{https://github.com/cactus-compute/needle}}
}

GitHub Stars & Activity

11,832Stars
758Forks
29Open issues
PythonLanguage

GitHub Popularity

GitHub stars11,832
Forks758
Open issues29
Primary languagePython
LicenseApache-2.0
Stars gained today404
Created2026-02-24
Last pushed2026-09-19

Trending History

Daily boardrank #13 · ▲ 404 stars

Related GitHub Projects

1

Significant-Gravitas / AutoGPT

Python★ 187,458⑂ 46,009▲ 30 stars
2

docling-project / docling

Python★ 67,380⑂ 4,855▲ 629 stars
3

paperless-ngx / paperless-ngx

Python★ 45,402⑂ 3,137▲ 32 stars
4

anthropics / financial-services

Python★ 35,231⑂ 5,236▲ 236 stars
5

harvard-edge / cs249r_book

Python★ 28,375⑂ 3,589▲ 31 stars
6

browser-use / browser-harness

Python★ 17,832⑂ 1,747▲ 86 stars
7

FareedKhan-dev / train-llm-from-scratch

Python★ 10,089⑂ 1,400▲ 196 stars
8

zhouxiaoka / autoclip

Python★ 7,797⑂ 1,517▲ 325 stars

More Trending Repositories