Run text, speech and vision models locally with one Python package. Cactus provides tool calling, structured extraction, transcription, image understanding and model fine-tuning.
pip install -U cactus-computePython 3.9 or later. The package downloads and caches the engine and requested model weights on first use. Inference runs locally and does not require JAX.
Needle 3 calls tools, extracts structured data and embeds text.
import cactus
@cactus.tool
def get_weather(city: str):
"Get the current weather for a city."
return {"city": city, "temp_c": 27, "sky": "clear"}
with cactus.Cactus(tools=[get_weather]) as agent:
print(agent.run("What's the weather in Lagos?")["results"])run() executes your functions and returns their results. Use complete() when you want to inspect the proposed calls before executing them.
Whistle transcribes speech in seven languages, with word timestamps and speech embeddings.
import cactus
print(cactus.transcribe("clip.wav")["text"])Use a 16 kHz WAV file. Install cactus-compute[mic] for other sample rates or microphone capture.
Mirage describes images and extracts structured data.
import cactus
print(cactus.Mirage().describe("photo.png"))- Python API and CLI
- Runtime binaries and supported platforms
- Fine-tune Needle or Whistle with
cactus-compute[train] - Reference for coding assistants
Migrating from cactus-needle? Use import cactus and the cactus command. Needle 2 remains on the legacy branch with cactus-compute<4. The earlier general inference SDK is now cactus-engine.
Anonymous Python usage counts can be disabled with CACTUS_TELEMETRY=0. See LICENSE for the Apache 2.0 license.