Claude Code in a Box
Collection
How to replace Claude Code with a Mac Studio: https://spicyneuron.substack.com/p/a-mac-studio-for-local-ai-6-months • 5 items • Updated • 2
How to use spicyneuron/MiniMax-M2.7-MLX-4.9bit with MLX:
# Make sure mlx-lm is installed
# pip install --upgrade mlx-lm
# Generate text with mlx-lm
from mlx_lm import load, generate
model, tokenizer = load("spicyneuron/MiniMax-M2.7-MLX-4.9bit")
prompt = "Write a story about Einstein"
messages = [{"role": "user", "content": prompt}]
prompt = tokenizer.apply_chat_template(
messages, add_generation_prompt=True
)
text = generate(model, tokenizer, prompt=prompt, verbose=True)How to use spicyneuron/MiniMax-M2.7-MLX-4.9bit with Pi:
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "spicyneuron/MiniMax-M2.7-MLX-4.9bit"
# Install Pi:
npm install -g @mariozechner/pi-coding-agent
# Add to ~/.pi/agent/models.json:
{
"providers": {
"mlx-lm": {
"baseUrl": "http://localhost:8080/v1",
"api": "openai-completions",
"apiKey": "none",
"models": [
{
"id": "spicyneuron/MiniMax-M2.7-MLX-4.9bit"
}
]
}
}
}# Start Pi in your project directory: pi
How to use spicyneuron/MiniMax-M2.7-MLX-4.9bit with Hermes Agent:
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "spicyneuron/MiniMax-M2.7-MLX-4.9bit"
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default spicyneuron/MiniMax-M2.7-MLX-4.9bit
hermes
How to use spicyneuron/MiniMax-M2.7-MLX-4.9bit with MLX LM:
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "spicyneuron/MiniMax-M2.7-MLX-4.9bit"
# Install MLX LM
uv tool install mlx-lm
# Start the server
mlx_lm.server --model "spicyneuron/MiniMax-M2.7-MLX-4.9bit"
# Calling the OpenAI-compatible server with curl
curl -X POST "http://localhost:8000/v1/chat/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "spicyneuron/MiniMax-M2.7-MLX-4.9bit",
"messages": [
{"role": "user", "content": "Hello"}
]
}'MiniMax-M2.7 optimized for MLX.
# Start server at http://localhost:8080/chat/completions
uvx --from mlx-lm mlx_lm.server \
--host 127.0.0.1 \
--port 8080 \
--model spicyneuron/MiniMax-M2.7-MLX-4.9bit
| metric | mlx-community_MiniMax-M2.7-4bit | baa-ai_MiniMax-M2.7-RAM-155GB-MLX | 4.9 bit (this model) |
|---|---|---|---|
| bpw | 4.501 | 5.4278 | 4.915 |
| peak memory (1024/512) | 129.632 | 156.051 | 141.458 |
| prompt tok/s (1024) | 739.996 ± 1.565 | 708.147 ± 0.818 | 723.742 ± 0.880 |
| gen tok/s (512) | 48.703 ± 0.116 | 40.253 ± 0.077 | 42.270 ± 0.143 |
| perplexity | 9.120 ± 0.047 | 8.835 ± 0.045 | 4.590 ± 0.027 |
| hellaswag | 0.504 ± 0.011 | 0.509 ± 0.011 | 0.512 ± 0.011 |
| piqa | 0.786 ± 0.01 | 0.787 ± 0.01 | 0.791 ± 0.009 |
| winogrande | 0.636 ± 0.014 | 0.661 ± 0.013 | 0.666 ± 0.013 |
Tested on a Mac Studio M3 Ultra with:
mlx_lm.perplexity --sequence-length 2048 --seed 123
mlx_lm.benchmark --prompt-tokens 1024 --generation-tokens 512 --num-trials 5
mlx_lm.evaluate --tasks hellaswag --seed 123 --num-shots 0 --limit 2000
mlx_lm.evaluate --tasks piqa --seed 123 --num-shots 0 --limit 2000
mlx_lm.evaluate --tasks winogrande --seed 123 --num-shots 0 --limit 2000
Quantized with a mlx-lm fork, drawing inspiration from Unsloth/AesSedai/ubergarm style mixed-precision GGUFs. MLX quantization options differ than llama.cpp, but the principles are the same:
4-bit
Base model
MiniMaxAI/MiniMax-M2.7