Tinkerbox for Apple Neural Engine
Run models on Apple's Neural Engine through Core AI. Critical inference always runs on the Neural Engine, the CPU does only supplementary work, and the GPU stays idle.
| Model | Task | Notes |
|---|---|---|
LiquidAI/d1-3B (d1-3b) |
Decisions over text and images | docs/models/d1.md |
Requires Apple Silicon (M4 or newer), macOS 27, and Python 3.12 or 3.13. Earlier generations (M1–M3) are not supported due to Neural Engine hardware and offline compiler constraints.
Quickstart
Install the wheel from the GitHub release (Xcode is not required):
python -m pip install ./tinkerbox_ane-*.whl
import tinkerbox_ane
with tinkerbox_ane.load("d1-3b") as model:
result = model.system_one(
"I was charged twice this month.",
{"refund": {"type": "noul", "instructions": "Is this a refund request?"}},
)
print(result)
tinkerbox_ane.load(model_id) loads any model in the catalog and returns the API for its task. It downloads the Core AI bundle for this Mac to ~/Library/Caches/tinkerbox-ane/models/<model>/<revision>/; pass a directory as the second argument to select a local AOT-compiled bundle. Each model package also has its own load(), such as tinkerbox_ane.d1.load().
Decision models expose the System One API: system_one, system_one_batch, probabilities, and probabilities_batch for binary, choice, and score queries, plus count_tokens. Several questions about one input share its computation. Inputs, limits, and execution details are in each model's notes.
Tinkerbox app
A standalone desktop application is in app. To build and launch it from source:
uv run --no-project --python 3.12 python app/run.py
Pass --build-only to create artifacts/swiftui/Tinkerbox.app and the release ZIP without launching. The prebuilt app manages its own Python environment and dependencies via an embedded uv binary.
Architecture & Staging
The Swift host manages persistent state and dynamically allocates attention cache buffers. Initial execution compiles and specializes the AOT asset for the local ANE hardware, after which Core AI reuses its persistent cache.
Weight staging uses an APFS copy-on-write workaround to eliminate redundant disk writes during specialization.
Adding a Model
Model-independent infrastructure is located at the package top level and is shared across models:
| Module | Role |
|---|---|
host.py, host.swift |
Native Core AI host: tiered caches, packed chains and trees, RoPE tables, and named vision inputs |
bundle.py |
Bundle manifest and asset identity verification, downloads, and AOT compilation |
coreai.py, guard.py, publish.py |
Compiler watchdog, ANE placement verification, and Hugging Face releases |
models.json, models.py |
Model catalog shared by tinkerbox_ane.load() and the app |
A model package (such as tinkerbox_ane.d1) provides:
- Neural Graph & Export: Fused FP16 graph (
model.py) and Core AI export (export.py). - Runtime: Tokenization, prompt formatting, readout (
runtime.py), and optional tree planning (tree.py) or vision processing (vision.py). - Package Interface: Exposes
load(asset=None), bundleKIND, and compile/publish CLI wrappers.
To register a model, add an entry to src/tinkerbox_ane/models.json specifying id, name, publisher, summary, task, repo, revision, and min_version. Add notes in docs/models/<id>.md.
Building from Source
Building requires Xcode 27 / Swift 6.4 and uv:
uv sync --locked
uv build
The wheel in dist/ bundles the native tinkerbox-ane-host executable and links against macOS system frameworks. Source and editable installs compile the host during installation. Compilation verifies source identity, function manifests, and full ANE placement.
Each model's notes describe its export, compile, and publishing commands. Reusable Core AI compilation and Hugging Face publishing utilities are provided in tinkerbox_ane.coreai and tinkerbox_ane.publish. To use a compiled bundle locally before publishing:
uv run python -m tinkerbox_ane.install <model> <bundle directory>
Tests
uv run python -m tinkerbox_ane.d1.guard artifacts/validation/smoke -- uv run pytest -q
Metadata
Release files for tinkerbox-ane 2.0.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tinkerbox_ane-2.0.2-py3-none-macosx_26_0_arm64.whl | Python 3 | none | macOS 26.0+ ARM64 | Details |
Release files / tinkerbox_ane-2.0.2-py3-none-macosx_26_0_arm64.whl
| Download URL | tinkerbox_ane-2.0.2-py3-none-macosx_26_0_arm64.whl |
|---|---|
| Size | 125.1 kB |
| Tags | Python 3 macOS 26.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
c3be9c42c644655a7fcbb248dd54b41669cda3adfa07946ee1a9e56b2cf270e4
|
|
BLAKE2b-256 checksum How to use checksums |
74dca26347d96bb4633ba5006385a8ba95288ce8075041ed9584092130b62d31
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for tinkerbox-ane 2.0.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.