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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

manicule_mlx-0.1.11.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

manicule_mlx-0.1.11-py3-none-any.whl (24.3 kB view details)

Uploaded Python 3

File details

Details for the file manicule_mlx-0.1.11.tar.gz.

File metadata

  • Download URL: manicule_mlx-0.1.11.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for manicule_mlx-0.1.11.tar.gz
Algorithm Hash digest
SHA256 0c9985307905b897663b5655e4896c2d974d7e58975de326f6ae72f55efaf7b4
MD5 19523a172d8bc928b1b96e787627a41c
BLAKE2b-256 421f801a93de0f7b37d5e98e6410d334628fbfaf3e7757a2cfd6b783ccb24ed3

See more details on using hashes here.

Provenance

The following attestation bundles were made for manicule_mlx-0.1.11.tar.gz:

Publisher: release.yml on mgd43b/manicule

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file manicule_mlx-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: manicule_mlx-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 24.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for manicule_mlx-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 46410ab98c2e5f314b474dc33c46c16b0f2fbe0dc3b5976a87f611a9eb6db449
MD5 2aafdd0e629e48fbc9adfa654f0a18f5
BLAKE2b-256 94830fcd80247c6b55e3994f23094dd41a242e664235414cb9b23953aac1fa12

See more details on using hashes here.

Provenance

The following attestation bundles were made for manicule_mlx-0.1.11-py3-none-any.whl:

Publisher: release.yml on mgd43b/manicule

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.15

2 files

0.1.14

2 files

0.1.13

2 files

0.1.12

2 files

This release

0.1.11 This release

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

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