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.22

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.22
File Size Uploaded Provenance Actions
manicule_mlx-0.2.22.tar.gz 38.5 kB With provenance Details for manicule_mlx-0.2.22.tar.gz

Built distribution (wheel)

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

Total release size: 62.9 kB

Release files / manicule_mlx-0.2.22.tar.gz

Download URL manicule_mlx-0.2.22.tar.gz
Size 38.5 kB
Tags Source
SHA-256 checksum
How to use checksums
62f8b8d7e0100159801ba9eff646670d8e46973a64c3659dace1162c7aba8369
BLAKE2b-256 checksum
How to use checksums
5b1bb5e4915f885e78c03820bb9aa29d3aebb2760789805687d2b8faeed35684
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 30, 2026.

Transparency log

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

Download URL manicule_mlx-0.2.22-py3-none-any.whl
Size 24.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f0598f874421d0a097fe2397ca71e152f3a31d4e769d17b0cb4a4bb9e3337af
BLAKE2b-256 checksum
How to use checksums
0446084d7cb7270a6b02cc119f15f53433f4b3af101dca5beff61f7c80190bcc
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 30, 2026.

Transparency log

Security for manicule-mlx 0.2.22

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

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for manicule_mlx-0.2.22.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 30, 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.22 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