Instructions to use NorviTech/arrmes-qwen3-0.6b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use NorviTech/arrmes-qwen3-0.6b 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("NorviTech/arrmes-qwen3-0.6b") 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 NorviTech/arrmes-qwen3-0.6b with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "NorviTech/arrmes-qwen3-0.6b"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "NorviTech/arrmes-qwen3-0.6b" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use NorviTech/arrmes-qwen3-0.6b with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "NorviTech/arrmes-qwen3-0.6b"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "NorviTech/arrmes-qwen3-0.6b" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "NorviTech/arrmes-qwen3-0.6b", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use NorviTech/arrmes-qwen3-0.6b 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 "NorviTech/arrmes-qwen3-0.6b"
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 NorviTech/arrmes-qwen3-0.6b
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use NorviTech/arrmes-qwen3-0.6b with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "NorviTech/arrmes-qwen3-0.6b"
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 "NorviTech/arrmes-qwen3-0.6b" \ --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"
Arrmes-Qwen3-0.6B (Published MLX LoRA Baseline & v7 Adapter)
Arrmes-Qwen3-0.6B provides function-calling LoRA adapters for a separately downloaded Qwen/Qwen3-0.6B base and the 20-action arrmes.tools.v2 self-hosted media-operations contract (e34f94ec5110423f7e5dfc0309c5e8f10988f158253559f88f34d9d977a2efe8).
- Preserved Root Baseline (
adapters.safetensors): The unchanged root adapter from initial publication (8a9bcf224e6f9fd6bf238267093c70360ee837cb) has SHA-256a9a7ab8705d68e16f0e9597d96e2ddf58b6f3dfffcecf683e2b36c8b11f23fab. Its 196 LoRA tensors are stored in float32 (345,563,976bytes / ~`345.6 MBcombined with the 4-bit basemlx-community/Qwen3-0.6B-4bit@73e3e38d981303bc594367cd910ea6eb48349da8; weight-file size on disk is not runtime RAM). It differs across all 196 tensors from an internal research checkpoint that shared thev6` directory label. - Subdirectory
v7-lora/(v1.4.0): Contains thev7LoRA adapter trained onTrainPool-v7(5,827examples,seed=20261102,200iterations,lr=5e-5) and its provenance manifest (v7-lora/provenance.json). - Companion Neural Router: For sub-millisecond CPU routing across both
arrmes.tools.v2(20 tools) andarrmes.tools.v3(23 tools including 31 nativeservice_querypairs and Bazarr subtitle workflows), seeNorviTech/arrmes-neural-router-v3(7.52 MiB,p50 = 0.674 ms).
Five generative checkpoints on the same 100 positive and 100 negative cases; raw model output and verified proposals are shown separately. This slice is separate from the full-suite neural-router results. Recorded scores.
Highlights & Architectural Scope
- 20-Name Neural Contract (
arrmes.tools.v2): Defines 18 service-operation names and two control names across ten named integration domains: Sonarr (tv_status,tv_missing,tv_search_missing), Radarr (movie_status,movie_search), Lidarr (music_status,music_search), Tautulli (now_playing,watch_history), qBittorrent (torrent_list,torrent_pause,torrent_resume), Seer (seer_discover), Request Portal (request_status,request_media), Armiger (armiger_parse), Bitmagnet (bitmagnet_search), DH-Waypoint (waypoint_status), and structured abstention (clarify,unsupported). Expandedarrmes.tools.v3native operations (service_query,bazarr_subtitle_search,bazarr_subtitle_download) are handled byNorviTech/arrmes-neural-router-v3or explicit grammar routing, not by thisv2generative adapter. - Measured Apple Silicon MLX Latency & Memory (
v1.4.0): On an Apple M4 Pro (macOS 26.3 ARM64, 48 GiB unified memory) with static system-prompt KV caching (make_prompt_cache), the 4-bitQwen3-0.6B v7checkpoint (346.93 MB/330.86 MiBon disk) runs warm generation atp50 = 114.23 ms / p95 = 121.62 ms(256.7 tok/s) and warm routing +verify_proposalatp50 = 114.40 ms / p95 = 121.86 ms, with MLX Metal unified peak memory1,593.34 MiB(active343.62 MiB) and process RSS805.23 MiB(unified memory; do not sum). The earlier ~230โ245 ms figure timed the unbatched generation core alone. - Execution Safeguards: Model outputs are untrusted proposals. Runtime schema validation (
verify_proposal), caller scope checks, and single-use HMAC-SHA256 confirmation tokens (WriteConfirmationStore) are mandatory before any consequential write executes.
Evaluation Results (Raw Track A vs Verified Track B)
Raw model output (raw_unverified, Track A), verifier-processed proposals (raw / verify_proposal, Track B), and controlled fixture execution (Track C) are measured and reported separately:
- Frozen 1,000-Case Diagnostic (
acceptance-v4,v1.4.0Verifier Replay):- On the frozen 1,000-case corpus (
docs/benchmark-acceptance-v4.md), the unchanged public fine-tunedQwen3-0.6Bscores770 / 1,000(77.00%) raw exact versus396 / 1,000(39.60%) for the untunedQwen3-0.6Bbase and782 / 1,000(78.20%) for theQwen3-4Breference. - While an intermediate pre-final verifier snapshot (
e5e76b8) regressed from717/1,000to678/1,000by damaging 135 correct predictions on contrastive subordinate clauses (rather than,instead of,do not) and multi-entity Lidarr(artist, album)cards, the general grammatical repairs in Arrmesv1.4.0restore and improve verified accuracy on those identical raw predictions to981 / 1,000(98.10%), repairing 211 model errors with0correct predictions damaged and0unexpected write proposals.
- On the frozen 1,000-case corpus (
- Locked
acceptance-v5Stratified 200-Case Generative Comparison (seed=7007,NorviTech/arrmes-bench-v5):- Evaluated on a stratified 200-case slice (
100positive +100hard-negative/safety) with zero query or entity overlap againstTrainPool-v7(5,827rows) andacceptance-v4(1,000rows):- Released
Qwen3-0.6B(fp16 + LoRA): Positive Track A88/100(88.0%), Track B91/100(91.0%); Hard-Negative Track A43/100, Track B96/100(96.0%),0unauthorized writes. - Trained
Qwen3-0.6B v7(fp16 + LoRA,v7-lora/): Positive Track A76/100(76.0%), Track B77/100(77.0%); Hard-Negative Track A33/100, Track B97/100(97.0%),0unauthorized writes. (Post-training 4-bit quantization ofQwen3-0.6B v7degraded unseen entity copying to53/100raw /62/100verified; keepQwen3-0.6Binfp16 + LoRAor useArrmesNeuralRouterV3.)
- Released
- Evaluated on a stratified 200-case slice (
- Historical
sealed-acceptance-v3(N = 314) Audit Disclosure:- Exact-public replay of the root adapter (
8a9bcf2...) with original public source (a536483...) measured 296/314 raw exact (94.27%) and 310/314 verifier-processed exact (98.73%), with 4 raw unexpected write proposals and 1 surviving the original verifier among 226 (not 229) non-write opportunities (311/314and0unexpected proposals after the later descriptor-grounding repair). - The 4,389-row historical training file shares 37 normalized templates with 261/314
sealed-v3rows (0identical full query+context records,34recurring query strings across different contexts). UseNorviTech/arrmes-bench-v5for zero-leakage evaluation.
- Exact-public replay of the root adapter (
Warm routing plus verification on Apple M4 Pro, excluding service and network time. Disk size is separate from runtime memory; sample counts and axis scales are labeled. Recorded profiles.
Quickstart (MLX on Apple Silicon)
raw is verifier-processed output; inspect raw_unverified separately when measuring raw model generation.
from arrmes.model import LocalModel
model = LocalModel(
"models/qwen3-06b", # 4-bit or fp16 Qwen3-0.6B base
family="hermes",
adapter="adapters/arrmes-qwen3-0.6b", # root v6 baseline or v7-lora/
contract_version="v2",
)
# 1. Read-only status proposal
res = model.infer("Check Sonarr for any missing episodes of Sintel without starting a search.")
print(res["raw_unverified"]) # Track A direct model output
print(res["raw"]) # Track B verified proposal
# <tool_call>{"name": "tv_missing", "arguments": {"title": "Sintel"}}</tool_call>
Licence
Released under the Apache-2.0 licence (inheriting from Qwen/Qwen3-0.6B). Part of the NorviTech Suite and Arrmes v1.4.0.
- Downloads last month
- 200
4-bit


