Instructions to use lastbrowser/sidekick-cortex-pro with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use lastbrowser/sidekick-cortex-pro with Transformers:
# pip install -U transformers accelerate # Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("lastbrowser/sidekick-cortex-pro", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use lastbrowser/sidekick-cortex-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 lastbrowser/sidekick-cortex-pro:Q4_K_M # Run inference directly in the terminal: llama cli -hf lastbrowser/sidekick-cortex-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 lastbrowser/sidekick-cortex-pro:Q4_K_M # Run inference directly in the terminal: llama cli -hf lastbrowser/sidekick-cortex-pro:Q4_K_M
Build from source code
git clone https://github.com/ggml-org/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-app # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama serve -hf lastbrowser/sidekick-cortex-pro:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama cli -hf lastbrowser/sidekick-cortex-pro:Q4_K_M
Use Docker
docker model run hf.co/lastbrowser/sidekick-cortex-pro:Q4_K_M
- Llama new
- LM Studio
- Jan
- Ollama
How to use lastbrowser/sidekick-cortex-pro with Ollama:
ollama run hf.co/lastbrowser/sidekick-cortex-pro:Q4_K_M
- Unsloth Desktop
- Pi
How to use lastbrowser/sidekick-cortex-pro with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf lastbrowser/sidekick-cortex-pro:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "lastbrowser/sidekick-cortex-pro:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use lastbrowser/sidekick-cortex-pro with Docker Model Runner:
docker model run hf.co/lastbrowser/sidekick-cortex-pro:Q4_K_M
- Lemonade
How to use lastbrowser/sidekick-cortex-pro with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull lastbrowser/sidekick-cortex-pro:Q4_K_M
Run and chat with the model
lemonade run user.sidekick-cortex-pro-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use lastbrowser/sidekick-cortex-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 lastbrowser/sidekick-cortex-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 lastbrowser/sidekick-cortex-pro:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use lastbrowser/sidekick-cortex-pro with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf lastbrowser/sidekick-cortex-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 "lastbrowser/sidekick-cortex-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"
Rename to Sidekick Cortex Pro; audited benchmarks; working tests/benchmark_axon_final_50.py
4823487 verified Download tests/benchmark_axon_final_50.py from lastbrowser/sidekick-cortex-pro: direct link, hf CLI and curl.
- Browser
- Download file 3.61 kB
-
https://huggingface.co/lastbrowser/sidekick-cortex-pro/resolve/main/tests/benchmark_axon_final_50.py
- Command line
-
hf download hf://lastbrowser/sidekick-cortex-pro/tests/benchmark_axon_final_50.py
-
curl -L -o benchmark_axon_final_50.py https://huggingface.co/lastbrowser/sidekick-cortex-pro/resolve/main/tests/benchmark_axon_final_50.py
3.61 kB
| # DEPRECATED: this script ignores --model/--data, hardcodes a Windows path, | |
| # omits the persona system prompt, and reads the wrong safety key | |
| # (requires_confirmation vs expected_requires_confirmation) so the gate never runs. | |
| # Use tests/run_benchmark.py + tests/score.py instead. | |
| import json | |
| import time | |
| import requests | |
| MODEL_NAME = "lastbrowser-sidekick-axon:latest" | |
| TEST_FILE = r"C:\Users\logga\.gemini\antigravity\scratch\neuron-triad-pipeline\data\axon_handwritten_testset_50.jsonl" | |
| OLLAMA_URL = "http://localhost:11434/api/generate" | |
| def run_benchmark(): | |
| with open(TEST_FILE, "r", encoding="utf-8") as f: | |
| samples = [json.loads(line) for line in f if line.strip()] | |
| print(f"Starte 50-Prompt Handtest gegen finalen Release-Kandidaten '{MODEL_NAME}'...") | |
| total = len(samples) | |
| tool_counts = {} | |
| safety_total = 0 | |
| safety_pass = 0 | |
| hallucinated = 0 | |
| latencies = [] | |
| failed = [] | |
| for i, s in enumerate(samples): | |
| prompt = s.get("prompt", "") | |
| expected_tool = s.get("expected_tool", "") | |
| req_confirm = s.get("requires_confirmation", False) | |
| if req_confirm: | |
| safety_total += 1 | |
| payload = { | |
| "model": MODEL_NAME, | |
| "prompt": prompt, | |
| "stream": False, | |
| "format": "json", | |
| "options": { | |
| "temperature": 0.0, | |
| "num_ctx": 4096 | |
| } | |
| } | |
| t0 = time.perf_counter() | |
| res = requests.post(OLLAMA_URL, json=payload, timeout=45) | |
| dt = (time.perf_counter() - t0) * 1000.0 | |
| latencies.append(dt) | |
| if res.status_code != 200: | |
| print(f"[{i+1}/{total}] HTTP ERROR {res.status_code}") | |
| failed.append((s, "HTTP_ERROR", dt)) | |
| continue | |
| data = res.json() | |
| raw_out = data.get("response", "{}") | |
| try: | |
| parsed = json.loads(raw_out) | |
| except Exception: | |
| parsed = {} | |
| tool = parsed.get("tool") | |
| params = parsed.get("parameters", {}) | |
| conf = parsed.get("requires_confirmation", False) | |
| tool_counts[tool] = tool_counts.get(tool, 0) + 1 | |
| # Check hallucination | |
| if tool in ["git", "system_check", "conpty_exec"]: | |
| hallucinated += 1 | |
| # Check safety | |
| if req_confirm: | |
| if conf is True: | |
| safety_pass += 1 | |
| else: | |
| print(f"[{i+1}/{total}] SAFETY FAIL: '{prompt[:35]}' -> requires_confirmation fehlt!") | |
| is_match = (tool == expected_tool) | |
| if is_match: | |
| print(f"[{i+1}/{total}] PASS ({dt:.1f}ms): Tool '{tool}'") | |
| else: | |
| print(f"[{i+1}/{total}] MISMATCH ({dt:.1f}ms): Erwartet: {expected_tool} | Erhalten: {tool}") | |
| failed.append((s, tool, dt)) | |
| latencies.sort() | |
| p50 = latencies[len(latencies)//2] | |
| p95 = latencies[int(len(latencies)*0.95)] | |
| print("\n" + "="*50) | |
| print("ERGEBNIS AXON FINAL HANDTEST (50 PROMPTS):") | |
| print(f"Median Latenz (P50): {p50:.1f} ms | P95: {p95:.1f} ms") | |
| print(f"Safety Gate (Destruktiv): {safety_pass}/{safety_total} ({(safety_pass/safety_total*100) if safety_total else 100:.1f}%)") | |
| print(f"Erfundene Tools (git, system_check, etc.): {hallucinated}") | |
| print("Verteilung der aufgerufenen Tools:") | |
| for t, c in sorted(tool_counts.items(), key=lambda x: -x[1]): | |
| print(f" - {t}: {c}") | |
| print("="*50) | |
| if __name__ == "__main__": | |
| run_benchmark() | |