Instructions to use ARO-Lang/aro-coder-4bit with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use ARO-Lang/aro-coder-4bit 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("ARO-Lang/aro-coder-4bit") 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) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use ARO-Lang/aro-coder-4bit with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ARO-Lang/aro-coder-4bit"
Configure the model in Pi
# 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": "ARO-Lang/aro-coder-4bit" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use ARO-Lang/aro-coder-4bit with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ARO-Lang/aro-coder-4bit"
Configure Hermes
# 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 ARO-Lang/aro-coder-4bit
Run Hermes
hermes
- OpenClaw new
How to use ARO-Lang/aro-coder-4bit with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "ARO-Lang/aro-coder-4bit"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "ARO-Lang/aro-coder-4bit" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- MLX LM
How to use ARO-Lang/aro-coder-4bit with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "ARO-Lang/aro-coder-4bit"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "ARO-Lang/aro-coder-4bit" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "ARO-Lang/aro-coder-4bit", "messages": [ {"role": "user", "content": "Hello"} ] }'
ARO Coder — v1.1.0
A fine-tuned code generation model specialised in the ARO (Action Result Object) programming language.
ARO is a domain-specific language where every statement follows the pattern:
Verb the <Result> preposition [the] <Object>.
| Version | v1.1.0 (tag v1.1.0) |
| Checksum | aa6e67f1a5835ff2 |
| Base model | mlx-community/Qwen3-Coder-30B-A3B-Instruct-4bit |
| Teacher source | distill_student (30B MoE teacher distilled to 8B student) |
| Quantization | 4-bit MLX, group size 64 |
| Language | ARO |
| Training samples | 4365 |
Links
- Website: arolang.github.io/aro
- GitHub: github.com/arolang/aro
- Documentation: Wiki
- Language Guide (PDF): Download
- Discussions: GitHub Discussions
Evaluation (promotion gate, 102 prompts)
| Metric | Quantized (shipped) | Fused (pre-quantization) |
|---|---|---|
| Reply rate | 100.0% | 100.0% |
| Empty-think collapse | 0.0% | 0.0% |
Syntax pass rate (aro check) |
60.2% | 60.4% |
| Tool-name leakage | 0.0% | 0.0% |
| URL contamination | 0.0% | 0.0% |
Known Limitations
- Happy-path DSL only — ARO code deliberately contains no error handling; do not expect defensive code from this model.
- 4-bit quantization — small quality loss vs the fused model is expected; the promotion gate bounds the degradation (see the table above when both columns are present).
- Verb hallucination at high temperatures — keep temperature ≤ 0.3 for code generation; the model may invent non-existent action verbs above that.
- English-only instructions and answers.
- Knowledge is frozen at training time; language features newer than this release's corpus are unknown to the model.
Quick Start
MLX (Apple Silicon)
from mlx_lm import load, generate
model, tokenizer = load("ARO-Lang/aro-coder-4bit") # latest release
# model, tokenizer = load("ARO-Lang/aro-coder-4bit", revision="v1.1.0") # pinned
messages = [
{"role": "system", "content": "You are an expert ARO programmer."},
{"role": "user", "content": "Write an ARO feature set that retrieves a user by ID and returns an OK response."},
]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
response = generate(model, tokenizer, prompt=prompt, max_tokens=500)
print(response)
MLX Server (OpenAI-compatible API)
python -m mlx_lm.server --model ARO-Lang/aro-coder-4bit --port 8080
curl http://localhost:8080/v1/chat/completions \
-H 'Content-Type: application/json' \
-d '{"model": "aro-coder", "messages": [{"role": "user", "content": "Write hello world in ARO"}]}'
Ollama
ollama run aro-coder
Example Output
Prompt: Write an ARO Application-Start that starts an HTTP server.
(Application-Start: My API) {
Log "Starting server..." to the <console>.
Start the <http-server> with <contract>.
Keepalive the <application> for the <events>.
Return an <OK: status> for the <startup>.
}
What is ARO?
ARO is a DSL for expressing business features as Action-Result-Object statements.
Every program is a directory of .aro files with event-driven feature sets:
(getUser: User API) {
Extract the <id> from the <pathParameters: id>.
Retrieve the <user> from the <user-repository> where id = <id>.
Return an <OK: status> with <user>.
}
Key features:
- Contract-first HTTP — routes defined in
openapi.yaml, feature sets matchoperationId - Event-driven — feature sets triggered by events, not direct calls
- Immutable bindings — every transformation produces a new name
- Happy-path only — no error handling code; the runtime manages errors
Training
This model was trained with the ARO training pipeline:
- Corpus collection — 4365 samples from Examples, Book, Wiki, Proposals, and real-world ARO applications
- Supervised fine-tuning — LoRA on all code generation, debugging, Q&A, and explanation tasks
- DPO preference training — using
aro checkvalidation to build chosen/rejected pairs - Iterative self-improvement — multiple rounds of generate-validate-retrain
- Distillation — the 30B MoE teacher's outputs (syntax- and semantically-gated) train the 8B student
- Promotion gate — 100-prompt sweep on both fused and quantized weights before any distribution
Version History
| Version | Date | Source | Checksum |
|---|---|---|---|
| v1.1.0 | 2026-07-24 | distill_student | aa6e67f1a5835ff2 |
Every release is tagged on the Hub — load an older version with
load("ARO-Lang/aro-coder-4bit", revision="v<version>") or report issues against
the version shown by aro ask --version.
License
This model and the ARO language are open source under the MIT License.
- Downloads last month
- 81
4-bit
Model tree for ARO-Lang/aro-coder-4bit
Base model
Qwen/Qwen3-Coder-30B-A3B-Instruct