mrkeyoor.com_
Tue 10 Nov 00:35 UTC
AI Toolsevaluationupdated 06 Nov 2026

needle review

Cactus Compute Needle is a model for tool calling, structured extraction and text embedding. Its original repository directs users to Cactus, whose current Python package also includes speech and vision tools. The documented distribution name is cactus-compute; the import name is cactus.

-14,441stars / 7d
Verdict

Follow the move to Cactus for a new local tool-calling evaluation. Our November 2, 2026 run at cc5953b recorded successful install and build commands, followed by a failed test command with missing numpy and jax imports in the supplied tail. The stored test counts have an unresolved discrepancy. This run does not establish current Cactus setup success or model performance. Use complete() to inspect proposed calls before allowing application actions.

We ran it

Lab card: what happened when we ran needleScreenshot of needle (github.com/cactus-compute/cactus)
Install✓ · 26s51 packages · 66 MB
Build✓ · 2s
Tests✗ · 32s179 passed · 28 failed · 20 skipped · 23 errors of 230 (pytest)
Known vulns0(pip-audit)
Repo76 files~13,220 lines of source · 0.8 MB · 2 CI workflows · tests dir

Answers from our run

Does needle build from source?

Dependencies installed in 26 seconds (51 packages), and the build succeeded in 2 seconds. We cloned commit cc5953b into a clean Debian container with 3 CPUs and no project-specific setup.

Do needle's tests pass?

No. The project's own test command finished in 32 seconds and reported 179 passed, 28 failed, 20 skipped, 23 collection errors (pytest).

Does needle have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use needle?

Developers expecting the original Needle repository to provide current code and documentation: its move notice directs them to Cactus.

What are the alternatives to needle?

llama.cpp, MLX LM. Follow the move to Cactus for a new local tool-calling evaluation.

SetupN/AThe historical commands are recorded, but the supplied evidence lacks the README at cc5953b needed to assess setup against that commit's instructions. Current Cactus setup was not tested.
Docs3/5Under the visible coverage rubric, the move notice and current README document a basic evaluation path, including package names, first-use downloads and call inspection. The supplied evidence lacks the README at cc5953b, and current instructions were not independently executed.
CommunityN/AMetadata records zero open issues and pull requests in the moved repository, but supplies no evidence of destination-project responsiveness, support turnaround or adoption.
MaturityN/AThe historical command results do not establish current Cactus runtime reliability, action correctness or successful deployment on an intended device.

Discussed on

  1. hnShow HN: Needle: We Distilled Gemini Tool Calling into a 26M Model776 points
  2. hnShow HN: Needle2: 14MB agentic LLM for phones, wearables, smart home and robots537 points
  3. hnShow HN: Cactus Needle 3: 8-29MB automation models can match DeepSeek V4 Flash236 points

Who it’s for

Developers evaluating local tool selection and structured extraction through the current Cactus package.
Existing Needle users deciding which repository, package and import name to follow.
Engineers who can validate proposed function names and arguments before executing application actions.

Who it’s NOT for

Developers expecting the original Needle repository to provide current code and documentation: its move notice directs them to Cactus.
Applications requiring inspection before every action while using run() unchanged: Cactus documents that run() executes functions and recommends complete() for inspecting proposed calls.
Offline provisioning workflows that cannot arrange assets beforehand: the current package documents engine and model downloads on first use.

Setup reality

Our November 2, 2026 run at commit cc5953b recorded installation success in 26 seconds, 51 dependencies and 66 MB on disk. The build command succeeded in 2 seconds. The test command exited 1 after 32 seconds.

The stored pytest fields report 179 passed, 28 failed, 20 skipped and 23 errors. Those categories sum to 250, while the harness total field is 230. This counting discrepancy is unresolved; the fields do not establish an exhaustive count of unique tests or a pass rate. The log footer reports 17.78 seconds, a different timing scope from the 32-second outer command.

The failure tail names missing numpy and jax modules. It does not establish why those modules were missing or whether adding them would resolve the suite. pip-audit recorded zero known vulnerabilities across 51 scanned packages.

The recorded sandbox configuration specified 3 CPUs, 8 GB RAM and image ghcr.io/astral-sh/uv:python3.12-bookworm. The image label does not establish actual runtime or operating-system versions. The supplied evidence does not include the README at cc5953b. The current Cactus package and its downloaded model assets were not measured in this run.

Start with the repository move

Cactus Needle has moved to cactus-compute/cactus. For a new integration, follow the Cactus repository for current code and documentation, and keep its setup instructions separate from the historical checkout measured here.

The current README describes Needle 3 as a model that calls tools, extracts structured data and embeds text. Cactus also includes speech and vision tools. These documented capabilities make it a candidate for a defined application workflow, but our recorded checks did not measure model accuracy, inference speed or successful device deployment.

What happened when we ran it

Our November 2, 2026 run measured commit cc5953b. Installation succeeded in 26 seconds and the build command succeeded in 2 seconds. The test command failed after 32 seconds with exit code 1. The record lists 51 dependencies, 66 MB on disk and a checkout containing 76 files occupying 0.8 MB. These are measurements of that checkout and environment, not the footprint of a current Cactus deployment with downloaded models.

The stored pytest fields report 179 passed, 28 failed, 20 skipped and 23 errors. Those categories sum to 250, while the harness total field is 230. The counting discrepancy is unresolved. These separate stored fields cannot establish an exhaustive unique-test total or support a pass percentage. The failure log footer reports 17.78 seconds; the outer test command records 32 seconds. Neither timing replaces the other.

The supplied tail names missing numpy and jax modules in prompt construction, checkpoint lookup and Whistle fine-tuning cases. It supports a missing-module finding in this environment. It does not establish why the modules were unavailable, explain every failure or show that installing them would make the suite pass.

pip-audit recorded zero known vulnerabilities across 51 scanned packages. That result does not establish overall product security. The sandbox configuration specified 3 CPUs, 8 GB RAM and image ghcr.io/astral-sh/uv:python3.12-bookworm; actual runtime and operating-system versions require toolchain logs that are not supplied.

Use the current package instructions for a new trial

The Cactus README documents pip install -U cactus-compute, Python 3.9 or later and import cactus. It says the package downloads and caches the engine and requested model weights on first use. Inference runs locally and does not require JAX.

That documented inference requirement concerns the current package. The missing-jax exceptions concern the measured checkout. Neither establishes how the other environment behaves.

The supplied evidence does not include the README at cc5953b. Installation success therefore cannot establish that the measured environment satisfied every documented development or training requirement for that commit.

For an offline evaluation, provision the engine and model assets beforehand, record their identities and check the workflow on the intended machine. This is a suggested next step, not a procedure performed in the recorded run. The measured 66 MB is not a measured total deployment footprint.

Inspect proposed calls before executing actions

Cactus documents that run() executes your functions and returns their results. Use complete() when you want to inspect the proposed calls before executing them.

For an initial evaluation, define representative requests and expected function names and arguments. Include ambiguous requests and inputs your application should reject. Validate proposals against application rules before allowing actions that change state. This evaluation procedure was not performed in our run, and the repository's passing cases do not establish correct decisions on your requests.

For structured extraction, define required fields and how the application should handle missing or invalid values. Documented extraction support does not establish accuracy for a particular document set or language. No executable API example is included here because the supplied example demonstrates run(), while the recommended inspection workflow is described only in prose.

Keep package names and metadata in context

The current README tells cactus-needle users to switch to import cactus and the cactus command. It places Needle 2 on the legacy branch with cactus-compute<4 and identifies the earlier general inference SDK as cactus-engine. Check which package a setup instruction targets before using it.

The supplied repository metadata records a last push on November 5, 2026 and zero open issues and pull requests. The supplied latest-release value is null; the lookup outcome is not established. These fields do not establish release availability, abandonment or maintainer responsiveness. The explicit move notice is the evidence for following Cactus.

Alternatives depend on the task

llama.cpp provides LLM inference in C/C++. Its README documents an OpenAI-compatible API server. Evaluate it when general inference and serving are the main requirements.

MLX LM supports text generation and fine-tuning on Apple silicon. Its README makes it relevant to workflows centered on those tasks and that hardware.

These are alternative starting points for different requirements. The supplied evidence does not establish compatibility with Needle's weights or API, and our run supplies no comparative speed or quality measurements.

How to read the documentation rating

The documentation rating uses a coverage rubric: 1 means essential instructions are absent, 3 means a basic evaluation path is documented, and 5 requires independently verified instructions and operating limits. Intermediate scores reflect coverage between those anchors.

Documentation receives 3 because the supplied move notice and current README identify a basic evaluation path: the distribution and import names, Python requirement, first-use downloads and the distinction between executing and inspecting calls. The supplied evidence does not include the README at cc5953b, and the current instructions were not independently executed. This rating assesses documented coverage, not successful setup or compatibility. Setup ease, community and maturity remain unassessed for the reasons recorded below.

Start the next evaluation in Cactus, record the selected package and model versions, and test proposed calls against your application's rules on the intended hardware.

Alternatives

ProjectWhat it isPick it when
llama.cpp gh↗LLM inference in C/C++, with a documented OpenAI-compatible API server.Evaluate it when general model inference and serving are the main requirements. Compatibility with Needle's weights or API is not established by the supplied evidence.
MLX LMA Python package for text generation and model fine-tuning on Apple silicon.Evaluate it when text generation or fine-tuning on Apple silicon defines the workflow. The supplied evidence provides no comparative performance result against Needle.

Sources

  1. Needle move notice
  2. Current Cactus README
  3. llama.cpp README
  4. MLX LM README

More ai tools reviews

dexter · oh-my-ppt · Agentero · mini-swe-agent · claude-video · nextai-translator · the whole board →