Skip to main content

staal

Staal is the programming language for agents, built for what they do: sending messages, moving money, changing records. Its compiler refuses a program that could act without permission, use a model's answer unchecked, let untrusted text instruct a model, or overspend its budget, and its runtime journals every action so a crashed run resumes without repeating one.

This package installs the staalc compiler and runtime, and a Python interface to it. No Rust toolchain is needed.

pip install staal
staalc check program.staal
staalc run program.staal

From Python, through Staal's C interface. Your app decides the policy (here, a refund limit per customer tier) and Staal enforces it:

import staal
lib = staal.Library()          # the library installed with this package
limit = 500 if customer["tier"] == "gold" else 50
out = lib.run("refund.staal", {
    "entry": "main",
    "inputs": {"complaint": complaint},
    "grants": {"pay": {"cap": "payments.refund", "each": {"amount": str(limit), "currency": "USD"}}},
    "model": {"provider": "anthropic", "model": "claude-sonnet-5-5", "api_key": {"env": "ANTHROPIC_API_KEY"}},
}, journal="refund.journal")
if out["status"] == "done":
    print(out["result"])

Every call returns the JSON object described in include/staal.h, as a dict. staalc build also needs a C compiler (cc) to link executables.

Platforms. Python 3.8 or newer, on Linux (x86_64 and arm64, glibc 2.28 or newer) and macOS (Apple Silicon, macOS 11 or newer; Intel, macOS 10.12 or newer), from 0.24.0. Version 0.23.0 has Linux x86_64 and macOS 15 wheels only. Elsewhere, build from source.

Status. A preview: tested on all four platforms above, with no independent security review yet. The tutorial takes about an hour.

Licence. Apache-2.0 WITH LLVM-exception. The package contains staalc and its Rust dependencies, whose licences are in LICENSE-THIRD-PARTY.txt.

Metadata

Release files for staal 0.24.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for staal 0.24.1
File Actions
staal-0.24.1-py3-none-manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64 Details for staal-0.24.1-py3-none-manylinux_2_28_x86_64.whl
staal-0.24.1-py3-none-manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64 Details for staal-0.24.1-py3-none-manylinux_2_28_aarch64.whl
staal-0.24.1-py3-none-macosx_11_0_arm64.whl Python 3 none macOS 11.0+ ARM64 Details for staal-0.24.1-py3-none-macosx_11_0_arm64.whl
staal-0.24.1-py3-none-macosx_10_12_x86_64.whl Python 3 none macOS 10.12+ x86-64 Details for staal-0.24.1-py3-none-macosx_10_12_x86_64.whl

Total release size: 111.5 MB

Release files / staal-0.24.1-py3-none-manylinux_2_28_x86_64.whl

Download URL staal-0.24.1-py3-none-manylinux_2_28_x86_64.whl
Size 31.8 MB
Tags Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
c067e645451be22bef5ecb9f630119b99f44076396694cbe5c3b7bbcb3e6a5c9
BLAKE2b-256 checksum
How to use checksums
000fc5c652bd2466b39f619aee6d97f700b465da061f31eb09302df068a1d69d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / staal-0.24.1-py3-none-manylinux_2_28_aarch64.whl

Download URL staal-0.24.1-py3-none-manylinux_2_28_aarch64.whl
Size 29.3 MB
Tags Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
f91c2b58f0a42a877ba5ec1e4a35db3320a747baedcb4666c6bad9283460786c
BLAKE2b-256 checksum
How to use checksums
09d28cbde61cd22a0de9764b8f4be593b7cddbdc301e66de9f97b6b3438ebcfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / staal-0.24.1-py3-none-macosx_11_0_arm64.whl

Download URL staal-0.24.1-py3-none-macosx_11_0_arm64.whl
Size 24.2 MB
Tags Python 3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
7fcc6173aacb194f59322c82248b3cedca8f5eec1b4ebd6883e274e470914dde
BLAKE2b-256 checksum
How to use checksums
dda271a3c376585dd527f3ea9f556893ce6be09691afefc66d06200f93ca94b1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Release files / staal-0.24.1-py3-none-macosx_10_12_x86_64.whl

Download URL staal-0.24.1-py3-none-macosx_10_12_x86_64.whl
Size 26.2 MB
Tags Python 3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
21ceac3523a60ae1e00204b04b0230482f35bee5c7f8e6abcad1b64a9d1174b3
BLAKE2b-256 checksum
How to use checksums
2ff665c6c2032311e9d9c50a4906e37759e06a720ba8e354f92c21fa8b608d60
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

Security for staal 0.24.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 4 files in this release have been uploaded with provenance metadata.

Select from 4 files

Attestation for staal-0.24.1-py3-none-manylinux_2_28_x86_64.whl

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 28, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page