Skip to main content

manicule-mlx

The Metal-native embedding backend for manicule, on Apple Silicon.

uv pip install manicule manicule-mlx

Then select it:

[embedding]
provider = "mlx"

License — read this first

This package is GPL-3.0-or-later. manicule itself is MIT. They live in one repository and they are not under one license.

License
manicule — everything under src/manicule/ MIT
manicule-plugin-example, manicule-plugin-hostile MIT
manicule-mlx — everything under this directory GPL-3.0-or-later

The reason is one dependency. mlx-embeddings is GPL-3.0, and a backend that links it is very likely a derivative work. Rather than make the whole project copyleft to obtain one accelerated backend — which is what manicule did until this split — the backend that carries the obligation is packaged on its own. MIT code may be incorporated into a GPL work freely; the reverse is not true, which is why the boundary falls exactly here.

What that means in practice:

  • Installing manicule alone gets you an MIT program with no GPL anywhere in its dependency closure. The onnx backend is the default and runs everywhere.
  • Installing both produces a combined work on your machine that is GPL-3.0. Running it imposes nothing on you — the GPL's obligations attach to distribution. If you redistribute the combination, they attach to you.
  • Writing a plugin for manicule does not make it GPL. Writing one that imports manicule_mlx very likely does.

Nothing here decides it for you. Take advice if you intend to distribute either manicule or a plugin under other terms.

Why it exists

On Apple Silicon this backend is roughly 4–5× faster than onnxruntime on the indexing path. Measured on an M4 Max, BAAI/bge-m3, 512-token chunks, batch 32, five interleaved repetitions:

Chunk length MLX onnxruntime Ratio
128 tokens 136.7 chunks/s 24.5 chunks/s 5.58×
256 tokens 64.1 chunks/s 12.3 chunks/s 5.23×
512 tokens 25.6 chunks/s 6.0 chunks/s 4.28×
~24 tokens (a query) 98.7 chunks/s 80.0 chunks/s 1.23×

The gap is on indexing, not on queries. A corpus of 270 000 chunks is about 3 hours here and about 12 on onnxruntime; a single query differs by roughly two milliseconds, which vanishes under the generation call that follows it.

The vectors are the same either way. Cosine agreement between the two backends is 0.99999998 with a largest component difference of 2.1 × 10⁻⁵, retrieval ranking is identical, and the two write byte-identical canonical fingerprints. backend is excluded from EmbedFingerprint identity precisely so that installing or removing this package is never a re-embed. tests/test_parity.py in this package is what licenses that claim, and it is the reason the test lives here rather than in manicule: the plugin asserts parity against the reference, in the same CI run.

Requirements

Apple Silicon. mlx-embeddings is marked sys_platform == 'darwin' and platform_machine == 'arm64', so on any other platform this distribution installs and the backend refuses at setup with a message naming onnx — rather than failing to install and taking the rest of an environment with it.

Metadata

Release files for manicule-mlx 0.2.14

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

Source distribution (sdist)

Source distribution for manicule-mlx 0.2.14
File Size Uploaded Provenance
manicule_mlx-0.2.14.tar.gz 38.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for manicule-mlx 0.2.14
File Interpreter ABI Platform
manicule_mlx-0.2.14-py3-none-any.whl Python 3 none any Details

Total release size: 62.9 kB

Release files / manicule_mlx-0.2.14.tar.gz

Download URL manicule_mlx-0.2.14.tar.gz
Size 38.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9728140b1cd163602b9ce57071395f7969d9b87c2cf3acdd9995b496f238310f
BLAKE2b-256 checksum
How to use checksums
10cfce630ccc1d0260cd3ecb512329fbd237dec755ee1a427526eca3458450c2
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 24, 2026.

Transparency log

Release files / manicule_mlx-0.2.14-py3-none-any.whl

Download URL manicule_mlx-0.2.14-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8026b64b27e79cbd70c7bfd80919dee4f50afbea188a4383996982485b94e4bd
BLAKE2b-256 checksum
How to use checksums
a485636693b8c3ce4f3061e5b192f8e2390b564eb3d571d8f7876bafdb2768aa
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 24, 2026.

Transparency log

Security for manicule-mlx 0.2.14

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 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for manicule_mlx-0.2.14.tar.gz

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 24, 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.

Release history Release notifications | RSS feed

This release

0.2.14 This release

2 release files Full provenance

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