Instructions to use srock44/cipher-pro with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use srock44/cipher-pro with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf srock44/cipher-pro:Q4_K_M # Run inference directly in the terminal: llama cli -hf srock44/cipher-pro:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf srock44/cipher-pro:Q4_K_M # Run inference directly in the terminal: llama cli -hf srock44/cipher-pro:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf srock44/cipher-pro:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf srock44/cipher-pro:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf srock44/cipher-pro:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf srock44/cipher-pro:Q4_K_M
Use Docker
docker model run hf.co/srock44/cipher-pro:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use srock44/cipher-pro with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "srock44/cipher-pro" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "srock44/cipher-pro", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/srock44/cipher-pro:Q4_K_M
- Ollama
How to use srock44/cipher-pro with Ollama:
ollama run hf.co/srock44/cipher-pro:Q4_K_M
- Unsloth Studio
How to use srock44/cipher-pro with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for srock44/cipher-pro to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for srock44/cipher-pro to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for srock44/cipher-pro to start chatting
- Pi
How to use srock44/cipher-pro with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf srock44/cipher-pro:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "srock44/cipher-pro:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use srock44/cipher-pro with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf srock44/cipher-pro:Q4_K_M
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 "srock44/cipher-pro:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use srock44/cipher-pro with Docker Model Runner:
docker model run hf.co/srock44/cipher-pro:Q4_K_M
- Lemonade
How to use srock44/cipher-pro with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull srock44/cipher-pro:Q4_K_M
Run and chat with the model
lemonade run user.cipher-pro-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use srock44/cipher-pro with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf srock44/cipher-pro:Q4_K_M
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 srock44/cipher-pro:Q4_K_M
Run Hermes
hermes
- Atomic Chat
| """ | |
| Export a trained LoRA adapter to llama.cpp-compatible GGUF. | |
| This loads the base Qwen2.5-1.5B-Instruct model with the trained LoRA adapter, | |
| merges the weights, and quantizes to the requested GGUF format(s). | |
| Outputs: | |
| outputs/gguf/grimoire-qwen2.5-1.5b-triage-q4_k_m.gguf | |
| outputs/gguf/grimoire-qwen2.5-1.5b-triage-q3_k_m.gguf (optional) | |
| outputs/gguf/grimoire-qwen2.5-1.5b-triage-q2_k.gguf (optional) | |
| Usage: | |
| python train/export_gguf.py | |
| python train/export_gguf.py --methods q4_k_m q3_k_m | |
| python train/export_gguf.py --lora_dir outputs/lora --base_model Qwen/Qwen2.5-1.5B-Instruct | |
| """ | |
| import argparse | |
| from pathlib import Path | |
| def parse_args(): | |
| parser = argparse.ArgumentParser(description="Export fine-tuned LoRA to GGUF") | |
| parser.add_argument("--base_model", default="Qwen/Qwen2.5-1.5B-Instruct", help="Base HF model name/path") | |
| parser.add_argument("--lora_dir", default="outputs/lora", help="Directory with LoRA adapter") | |
| parser.add_argument("--output_dir", default="outputs/gguf", help="Where to write .gguf files") | |
| parser.add_argument( | |
| "--methods", | |
| nargs="+", | |
| default=["q4_k_m"], | |
| help="Quantization methods to produce (e.g. q4_k_m q3_k_m q2_k)", | |
| ) | |
| parser.add_argument("--max_seq_length", type=int, default=2048) | |
| parser.add_argument("--merged_dir", default="outputs/merged", help="Optional merged HF model output") | |
| return parser.parse_args() | |
| def main(args): | |
| from unsloth import FastLanguageModel | |
| out_dir = Path(args.output_dir) | |
| out_dir.mkdir(parents=True, exist_ok=True) | |
| # This Unsloth build's from_pretrained() doesn't accept adapter_name_or_path | |
| # (TypeError: Qwen2ForCausalLM.__init__() got an unexpected keyword argument | |
| # 'adapter_name_or_path'). Loading the base model separately and attaching | |
| # via plain peft.PeftModel.from_pretrained *works* for inference, but | |
| # save_pretrained_gguf() doesn't recognize a plain PeftModel as PEFT | |
| # ("Model is not a PEFT model. Saving directly without LoRA merge...") and | |
| # then fails on an unrelated weight-conversion bug trying to save it as if | |
| # it were a full model. Pointing model_name directly at the LoRA directory | |
| # (which has adapter_config.json with base_model_name_or_path set) is | |
| # Unsloth's own documented pattern for this and loads base+adapter as a | |
| # single call, correctly tagged as PEFT. | |
| print(f"Loading base model + LoRA adapter from {args.lora_dir} ...") | |
| model, tokenizer = FastLanguageModel.from_pretrained( | |
| model_name=args.lora_dir, | |
| max_seq_length=args.max_seq_length, | |
| dtype=None, | |
| load_in_4bit=True, | |
| ) | |
| # Export GGUF(s) | |
| model_name = "grimoire-qwen2.5-1.5b-triage" | |
| for method in args.methods: | |
| print(f"Exporting GGUF with quantization={method} ...") | |
| model.save_pretrained_gguf( | |
| str(out_dir / model_name), | |
| tokenizer, | |
| quantization_method=method, | |
| ) | |
| print("Done. Files:") | |
| for f in sorted(out_dir.glob("*.gguf")): | |
| print(f" {f} ({f.stat().st_size / 1e6:.1f} MB)") | |
| # Save merged HF model (useful for non-GGUF inference / debugging) | |
| if args.merged_dir: | |
| merged_dir = Path(args.merged_dir) | |
| merged_dir.mkdir(parents=True, exist_ok=True) | |
| print(f"Saving merged HF model to {merged_dir}") | |
| merged = model.merge_and_unload() | |
| merged.save_pretrained(merged_dir) | |
| tokenizer.save_pretrained(merged_dir) | |
| if __name__ == "__main__": | |
| args = parse_args() | |
| main(args) | |