The project's README from github.com/cactus-compute/cactus. As one markdown file: README.md.
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-compute
Python 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"))
cactus-compute[train]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.