Instructions to use lancejames221b/razorstrike-v1 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use lancejames221b/razorstrike-v1 with MLX:
# Make sure mlx-vlm is installed # pip install --upgrade mlx-vlm from mlx_vlm import load, generate from mlx_vlm.prompt_utils import apply_chat_template from mlx_vlm.utils import load_config # Load the model model, processor = load("lancejames221b/razorstrike-v1") config = load_config("lancejames221b/razorstrike-v1") # Prepare input image = ["http://images.cocodataset.org/val2017/000000039769.jpg"] prompt = "Describe this image." # Apply chat template formatted_prompt = apply_chat_template( processor, config, prompt, num_images=1 ) # Generate output output = generate(model, processor, formatted_prompt, image) print(output) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use lancejames221b/razorstrike-v1 with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "lancejames221b/razorstrike-v1"
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": "lancejames221b/razorstrike-v1" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use lancejames221b/razorstrike-v1 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 "lancejames221b/razorstrike-v1"
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 lancejames221b/razorstrike-v1
Run Hermes
hermes
- OpenClaw new
How to use lancejames221b/razorstrike-v1 with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "lancejames221b/razorstrike-v1"
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 "lancejames221b/razorstrike-v1" \ --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"
RazorStrike-v1
RazorStrike-v1 is a multi-donor DARE-TIES task-arithmetic merge built on the Qwen3.6-35B-A3B MoE base (hybrid linear-attention/SSM architecture, 256 experts, vision tower intact, 262144 token context). It fuses a reasoning + uncensoring donor with an agentic/coding donor on top of the Qwen3.6 anchor, targeting fast, direct, unfiltered reasoning and strong terminal/coding/agentic performance.
This repo hosts the MLX 4-bit quantized build (~19-20GB), for Apple Silicon via mlx-lm / mlx-vlm.
Approach
RazorStrike-v1's build process is empirical, not assumption-driven: every merge decision is validated against real generated output rather than trusted on theory alone.
- Task-arithmetic delta merging (DARE-TIES) — donors contribute as deltas against a shared anchor (
donor - anchor), not as raw weight averages, so each donor's specific behavioral shift is what actually merges in. - Coherence-gate before and after every stage — a dedicated battery of coherence and refusal-behavior prompts (reasoning, math, terminal, coding, agentic, prose, plus a refusal battery) is run on every candidate build, at both greedy (temp 0.0) and sampled (temp 0.6) decoding, before it's accepted.
- Root-cause, not workaround, on defects — when a coding-context language-contamination defect surfaced during development, it was traced with a systematic bisect (raw single-donor tests, then pairwise donor-combination tests) rather than patched around, which correctly identified a specific donor's task vector as the cause (see "What was tried and dropped" below) instead of shipping a band-aid fix.
- Re-verify after quantization — the full coherence + refusal battery is re-run on the final quantized artifact, not assumed to carry over from the bf16 master, since quantization can occasionally regress a defect fix or a marginal refusal behavior.
Composition
RazorStrike-v1 is a DARE-TIES (drop-and-rescale + sign-election disjoint merge) of two donor models applied on top of a Qwen3.6-35B-A3B anchor:
| Role | Model | Weight | DARE density | Contribution |
|---|---|---|---|---|
| Anchor | Qwen/Qwen3.6-35B-A3B |
— | — | Base for all non-merged tensors: embeddings, lm_head, norms, SSM dynamics, vision tower, MTP head |
| Donor 1 (dominant) | huihui-ai's Claude-4.7-Opus-abliterated build (Qwen3.6-35B-A3B lineage) | 0.45 | 0.55 | Reasoning (via an embedded Opus-Reasoning-Distilled lineage) and uncensoring (weights-only abliteration / refusal removal). Router (mlp.gate, 41 tensors) is taken verbatim from this donor. |
| Donor 2 | AlexWortega/SIQ-1-35B |
0.40 | 0.50 | Agentic tool-use, coding, and autoresearch capability |
DARE-TIES is applied only to mergeable tensors:
- Attention Q/K/V/O projections
- Linear-attention in/out projections
- Routed-expert
gate_up/downprojections - Shared-expert FFN + gate
The following are verbatim-copied and never touched by DARE-TIES: the router (mlp.gate), all norms, embeddings, lm_head, SSM dynamics, the vision tower, and the MTP head.
Because the dominant donor is already an abliterated (refusal-removed) build, RazorStrike-v1 is uncensored by construction — no separate abliteration pass was applied to the merged output.
What was tried and dropped
A third donor, UnipatAI/UniMath-35B-A3B, was originally evaluated to add dedicated math/proof-synthesis specialization. It was excluded after root-cause investigation via pairwise donor-combination testing found that UniMath deterministically caused Chinese-character (CJK) contamination in coding-context generation whenever merged with any other donor via DARE-TIES. This defect was confirmed absent in every donor tested individually — it was an emergent interaction of the merge itself, not a property of UniMath alone. Every donor-pair containing UniMath failed; the huihui-ai + SIQ-1 pair alone was clean.
UniMath was dropped entirely as a result. This build has no dedicated math-specialist donor — this is a known scope limitation, not an oversight.
Verification
- 16/16 coherence tests clean across categories: reverse-engineering/security reasoning, math, terminal commands, coding (×3, including the specific tests that would have caught the dropped CJK-contamination defect), agentic/tool-use, and prose — each run at both temperature 0.0 and temperature 0.6.
- 3/3 refusal-battery tests complied: keylogger/malware, phishing, controlled-substance synthesis.
- Results were re-verified identically on both the bf16 master and the final MLX 4-bit quantized build — no coherence or refusal-behavior regression from quantization.
A note on uncensoring
This is an abliterated/uncensored build. It does not refuse security-research, offensive-security, or other sensitive-but-legitimate technical requests the way an aligned instruction-tuned model would. It is provided for research, red-teaming, and technical use. Responsibility for lawful and ethical use of this model rests entirely with the user.
Recommended inference settings
These follow Qwen's "Thinking mode, precise coding tasks" preset for the Qwen3.6-35B-A3B base, with repetition_penalty raised from Qwen's default 1.0 to 1.1: with both penalties neutral this reasoning-derived merge can loop, and 1.1 is within the community-recommended anti-loop range (≈1.05–1.15). presence_penalty stays 0.0 because higher presence_penalty triggers language mixing this merge is prone to.
temperature: 0.6
top_p: 0.95
top_k: 20
min_p: 0.0
presence_penalty: 0.0
repetition_penalty: 1.1
Because the dominant donor is reasoning-derived, RazorStrike-v1 can produce very long internal reasoning traces if left unconstrained, potentially exhausting the token budget before an answer is emitted. To keep responses tight, either:
Give the model a generous
max_tokensbudget (32,768 is Qwen3.6's recommended output length for most queries; 81,920 for hard problems), orUse a "think fast, not long" system-prompt directive, e.g.:
"Think briefly and efficiently. Do not over-reason — reach your answer directly and avoid restating the problem or exploring unnecessary tangents."
Architecture
- Type:
Qwen3_5MoeForConditionalGeneration(qwen3_5_moe) — hybrid linear-attention + SSM Mixture-of-Experts, 256 experts - Context: 262,144 tokens (inherited from the Qwen3.6-35B-A3B anchor).
mlx-lm/mlx-vlmand LM Studio load the full window by default (no flag); the LM Studio per-model context length is set to 262144. - Vision: vision tower present and intact (multimodal, image-text-to-text)
Formats available
This repository hosts the MLX 4-bit quantized version of RazorStrike-v1 (~19-20GB), compatible with mlx-lm / mlx-vlm on Apple Silicon.
pip install -U mlx-vlm
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
model_path = "lancejames221b/razorstrike-v1"
model, processor = load(model_path)
config = model.config
system_prompt = "Think fast, not long - a few sentences of reasoning at most, then answer directly."
messages = [
{"role": "system", "content": system_prompt},
{"role": "user", "content": "Write a Python function that reverses a linked list."},
]
# Text-only prompt (this build supports images too - see below)
formatted_prompt = apply_chat_template(processor, config, messages)
res = generate(model, processor, formatted_prompt, max_tokens=32768, temperature=0.6, top_p=0.95, verbose=False)
text = res.text if hasattr(res, "text") else str(res)
print(text)
For an image input, add num_images=len(image) to apply_chat_template and pass the image list as the 4th positional argument to generate:
image = ["path/to/image.jpg"]
formatted_prompt = apply_chat_template(processor, config, messages, num_images=len(image))
res = generate(model, processor, formatted_prompt, image, max_tokens=32768, temperature=0.6, top_p=0.95, verbose=False)
text = res.text if hasattr(res, "text") else str(res)
Or from the CLI:
mlx_vlm.generate --model lancejames221b/razorstrike-v1 --max-tokens 32768 --temperature 0.6 --prompt "Your prompt here"
Roadmap
Future versions are intended to layer domain-specific LoRA SFT specialists on top of this merged base rather than folding more donors into the task-arithmetic merge itself — planned specialist domains include reverse engineering (RE) and cryptography. This keeps the core reasoning/agentic/coding base stable while adding targeted depth via small, swappable adapters instead of re-running the full merge each time a new specialization is needed.
License
Released under Apache 2.0, matching the Qwen3.6-35B-A3B base model. This is a derivative merge, so users should also review the license terms of the constituent donor models — huihui-ai's Claude-4.7-Opus-abliterated build and AlexWortega/SIQ-1-35B — before use.
- Downloads last month
- 46
4-bit
Model tree for lancejames221b/razorstrike-v1
Base model
Qwen/Qwen3.6-35B-A3B