Install
Supported platforms#
| Linux x64 | Linux ARM64 | macOS Apple Silicon | macOS Intel | Windows x64 | |
|---|---|---|---|---|---|
| Python 3.9+ (one wheel per platform) | yes | yes | yes | yes | yes |
| Node.js 18+ (a prebuilt addon per platform) | yes | yes | yes | yes | yes |
| Rust 1.88+ (crates published when the code opens) | later | later | later | later | later |
criogenai engine on the registry (Python / Node.js) | from 16 Nov | from 16 Nov | from 16 Nov | from 16 Nov | 0.1.7 / 0.1.7 |
Until then: the old criogen package | 0.1.3 / 0.1.3 | 0.1.3 / 0.1.3 | 0.1.3 / 0.1.3 | 0.1.2 / 0.1.3 | – |
Other platforms (Windows on ARM, Alpine/musl, 32-bit) are not supported yet.
Install#
pip install criogenai
# with Pydantic models as tool arguments and typed output:
pip install "criogenai[pydantic]"The package is called criogenai; in code you import criogenai.
The wheel contains the Rust engine, so nothing else is needed. It is typed
(py.typed): mypy and your editor know every type.
npm install criogenai
# or, with another package manager (they all use the npm registry):
pnpm add criogenai
yarn add criogenai
bun add criogenainpm installs the engine for your platform automatically
(criogenai-linux-x64, -darwin-arm64, -windows-x64, …). Works from
TypeScript and JavaScript, as CommonJS or ES modules.
The Rust crates are published when CriogenAI's code opens, at 10,000 installs (a Rust crate ships its source). Until then, use the Python or TypeScript package; they run the same Rust engine. This is what you will add then:
[dependencies]
criogenai-agent = { version = "0.1", features = ["sqlite"] }
criogenai-providers = "0.1"
criogenai-storage = { version = "0.1", features = ["sqlite"] }
serde_json = "1"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }| Crate | What it gives you |
|---|---|
criogenai-core | The workflow engine: steps, edges, routers, state, pauses, retries |
criogenai-providers | Messages, tools and models (OpenAI, Anthropic, Gemini, Ollama, vLLM, …) |
criogenai-agent | Agents: tools, approvals, structured output, hooks, threads, memory |
criogenai-storage | In memory, SQLite (sqlite), Postgres (postgres), encryption (encryption) |
criogenai-telemetry | OpenTelemetry and Langfuse export |
criogenai-gateway | The OpenAI-compatible LLM gateway (library and binary) |
API keys#
Models read their keys from environment variables: OPENAI_API_KEY,
ANTHROPIC_API_KEY, GEMINI_API_KEY, OPENROUTER_API_KEY. Self-hosted
models (Ollama, vLLM, LM Studio) need none. Keys never appear in errors or
logs: CriogenAI removes them from provider error messages.
Check the install#
python -c "import criogenai; print(criogenai.__version__, criogenai.ready_sync())"node -e "import('criogenai').then(async (c) => console.log(await c.ready()))"ready() loads the engine and reports the platform; it never throws. If the
engine cannot load, see Troubleshooting.
Next#
- Quickstart: an agent, a conversation and an approval in a few minutes.
- Tutorial: build a support agent: a complete small app, step by step.