PyTorch module
Freeze source behavior as an oracle, inventory parameter names and shapes, then build the smallest readable MLX graph.
Start with a PyTorch module, model directory, checkpoint, or existing MLX project. Leave with an architecture route, deterministic weight map, parity ladder, benchmark receipts, and an honest publication boundary.
The tool reads metadata and safe tensor headers first. It does not import repository code, execute remote model code, or pretend an unfamiliar architecture is a decoder-only Transformer.
Freeze source behavior as an oracle, inventory parameter names and shapes, then build the smallest readable MLX graph.
Inspect configs, tokenizer assets, safetensors headers, custom-code risks, provenance, and routing signals without importing the project.
Recognize safetensors, GGUF, ONNX, Keras, Flax/Orbax, TensorFlow, and Core ML shapes while keeping executable formats quarantined.
Inventory evaluation boundaries, runtime and fast-path hints, parity and benchmark signals, plus proof gaps. Static inspection does not validate numerical correctness.
Weak identity, truncated inspection, unsafe files, or conflicting routes produce blockers—not a confident recommendation assembled from substrings.
Local inspection emits portable relative paths, a complete artifact-tree fingerprint, and identity-bound license evidence by default. Promotion receipts bind exact experiments and controlled quality artifacts; rejected evidence stays visible.
Every phase creates evidence for the next. Optimization does not get to rewrite the history of a port that never matched its source.
Inventory metadata, formats, lineage, custom-code risk, tensors, and architecture signals.
Select a controlled family, traits, capabilities, workloads, and the matching runbook.
Capture deterministic source intermediates, masks, caches, state, and task outputs.
Implement the plain graph with explicit shapes, axes, state updates, and evaluation points.
Record every rename, transpose, split, merge, reshape, dtype decision, and unmapped tensor.
Compare embeddings, blocks, logits or outputs, state transitions, and task behavior in stages.
Change one bottleneck at a time; keep experimental or lossy paths behind explicit consent.
Bind workload, runner, quality, baseline, raw output, rollback, and model lineage into receipts.
python3 mlx-model-porting/scripts/inspect_model.py /path/to/model \
--output inspection.json \
--markdown inspection.md
The registry covers dense and MoE Transformers, vision-language and audio-language systems, diffusion and flow, speech stacks, state-space hybrids, time series, graph models, codecs, vocoders, and CV backbones. Coverage means the routing and guard behavior is tested; it does not mean every checkpoint has been ported end to end.
The complete family list is available in the repository’s architecture registry. Interactive route cards require the local generated data file.
The catalog separates source-reported potential, historical observations, promotion-ready local measurements, and rejected configurations. Missing evidence is never inferred.
11 receipts are retained: 10 performance observations, 1 rejected configuration, and 0 promotion-ready local speed claims.
The effective catalog withholds 9 of 9 numeric records. No source-reported range is currently profile-eligible.
Client presets cover Claude Code, Codex, Cursor, Gemini CLI, Windsurf, and GitHub Copilot. The installer is atomic and idempotent; explicit destinations remain available when a client changes discovery conventions.
python3 mlx-model-porting/scripts/install_skill.py \
--client codex