Instructions to use gary23w/gary-6-opsec with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use gary23w/gary-6-opsec with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="gary23w/gary-6-opsec", filename="gary-6-opsec.Q8_0.gguf", )
llm.create_chat_completion( messages = [ { "role": "user", "content": "What is the capital of France?" } ] ) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use gary23w/gary-6-opsec with llama.cpp:
Install from brew
brew install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf gary23w/gary-6-opsec:Q8_0 # Run inference directly in the terminal: llama-cli -hf gary23w/gary-6-opsec:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama-server -hf gary23w/gary-6-opsec:Q8_0 # Run inference directly in the terminal: llama-cli -hf gary23w/gary-6-opsec:Q8_0
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 gary23w/gary-6-opsec:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf gary23w/gary-6-opsec:Q8_0
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 gary23w/gary-6-opsec:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf gary23w/gary-6-opsec:Q8_0
Use Docker
docker model run hf.co/gary23w/gary-6-opsec:Q8_0
- LM Studio
- Jan
- vLLM
How to use gary23w/gary-6-opsec with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "gary23w/gary-6-opsec" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "gary23w/gary-6-opsec", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/gary23w/gary-6-opsec:Q8_0
- Ollama
How to use gary23w/gary-6-opsec with Ollama:
ollama run hf.co/gary23w/gary-6-opsec:Q8_0
- Unsloth Studio
How to use gary23w/gary-6-opsec 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 gary23w/gary-6-opsec 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 gary23w/gary-6-opsec to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for gary23w/gary-6-opsec to start chatting
- Pi
How to use gary23w/gary-6-opsec with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf gary23w/gary-6-opsec:Q8_0
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": "gary23w/gary-6-opsec:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use gary23w/gary-6-opsec with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama-server -hf gary23w/gary-6-opsec:Q8_0
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 gary23w/gary-6-opsec:Q8_0
Run Hermes
hermes
- Atomic Chat new
- Docker Model Runner
How to use gary23w/gary-6-opsec with Docker Model Runner:
docker model run hf.co/gary23w/gary-6-opsec:Q8_0
- Lemonade
How to use gary23w/gary-6-opsec with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull gary23w/gary-6-opsec:Q8_0
Run and chat with the model
lemonade run user.gary-6-opsec-Q8_0
List all available models
lemonade list
llm.create_chat_completion(
messages = [
{
"role": "user",
"content": "What is the capital of France?"
}
]
)gary-6-opsec 🛡️
A pocket-sized defensive security assistant for operational security, hardening, detection, and incident response. Built by Garrett, a certified security professional with 10+ years in the field.
gary-6-opsec is Qwen2.5-0.5B-Instruct fine-tuned (LoRA, merged) on a hand-written defensive security dataset spanning opsec coaching, blue-team incident response, vulnerability-class explanations, and phishing / social-engineering defense. It's quantized to GGUF and runs fully offline on a phone, a laptop, or a Raspberry Pi.
What it's good at
Threat modeling, account and device hardening, securing internet-facing servers, CVE triage and patch prioritization, what to log to catch intrusions, incident-response workflow, recognizing phishing and pretexting, and explaining how vulnerability classes work so you can defend against them.
Sample output (greedy, unedited)
Q: Who are you?
A: I'm gary-6-opsec, Garrett's pocket-sized defensive security assistant.
I'll help you protect yourself and your systems, and explain how attacks
work so you can stop them.
Q: A new exploit just dropped for software we run. What do I do first?
A: Confirm it's real — check the vendor's announcement and understand what it
does. Then prioritize containment: remove affected versions, patch, monitor
logs, and contain the spread. Defend with good backups, monitoring, and IR.
Q: How do I harden an internet-facing server?
A: Minimize attack surface: close unused ports, remove unused services, enforce
key-based SSH with no root login, patch promptly, sit behind a firewall and
reverse proxy, enable automatic security updates, and monitor logs.
Q: How do I spot a phishing email?
A: Look for urgency, authority cues, unexpected attachments, links whose real
destination differs from the text, and requests for sensitive data. When
unsure, verify through a channel you already trust — not the one in the email.
Stats
| Parameters | 494M |
| GGUF Q8_0 | 531 MB |
| Safetensors (bf16) | 942 MB |
| Base | Qwen2.5-0.5B-Instruct (Apache-2.0) |
| Fine-tune | LoRA r=16 on all attention + MLP projections, merged |
| Runs on | CPU, fully offline. ~10 tok/s on a modest CPU. |
Run it
llama.cpp / ollama (uses the 531 MB GGUF):
llama-cli -m gary-6-opsec.Q8_0.gguf -cnv \
-sys "You are gary-6-opsec, a defensive cybersecurity assistant created by Garrett."
transformers:
from transformers import AutoModelForCausalLM, AutoTokenizer
tok = AutoTokenizer.from_pretrained("gary23w/gary-6-opsec")
model = AutoModelForCausalLM.from_pretrained("gary23w/gary-6-opsec")
sys = "You are gary-6-opsec, a defensive cybersecurity assistant created by Garrett."
msgs = [{"role":"system","content":sys},
{"role":"user","content":"How do I harden an internet-facing server?"}]
enc = tok.apply_chat_template(msgs, add_generation_prompt=True, return_dict=True, return_tensors="pt")
print(tok.decode(model.generate(**enc, max_new_tokens=120)[0], skip_special_tokens=True))
Limitations
It's a 0.5B model — fast and capable for opsec guidance and defensive Q&A, but it can oversimplify deep technical reasoning. Treat it as an assistant and educator, and verify anything important against primary sources (vendor advisories, CISA KEV) before acting in a live incident.
The gary family
gary-4 (67K params) → gary-5 (135M) → gary-6-opsec (494M, defensive security tuning).
- Downloads last month
- 103
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="gary23w/gary-6-opsec", filename="gary-6-opsec.Q8_0.gguf", )