Instructions to use dev7a/Laguna-XS-2.1-DFlash-GGUF 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 dev7a/Laguna-XS-2.1-DFlash-GGUF 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 dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0 # Run inference directly in the terminal: llama cli -hf dev7a/Laguna-XS-2.1-DFlash-GGUF: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 dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0 # Run inference directly in the terminal: ./llama-cli -hf dev7a/Laguna-XS-2.1-DFlash-GGUF: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 dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
Use Docker
docker model run hf.co/dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
- LM Studio
- Jan
- Ollama
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF with Ollama:
ollama run hf.co/dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
- Unsloth Studio
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF 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 dev7a/Laguna-XS-2.1-DFlash-GGUF 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 dev7a/Laguna-XS-2.1-DFlash-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for dev7a/Laguna-XS-2.1-DFlash-GGUF to start chatting
- Pi
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf dev7a/Laguna-XS-2.1-DFlash-GGUF: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": "dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
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 "dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0" \ --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 dev7a/Laguna-XS-2.1-DFlash-GGUF with Docker Model Runner:
docker model run hf.co/dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
- Lemonade
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
Run and chat with the model
lemonade run user.Laguna-XS-2.1-DFlash-GGUF-Q8_0
List all available models
lemonade list
- Hermes Agent
How to use dev7a/Laguna-XS-2.1-DFlash-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf dev7a/Laguna-XS-2.1-DFlash-GGUF: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 dev7a/Laguna-XS-2.1-DFlash-GGUF:Q8_0
Run Hermes
hermes
- Atomic Chat
| #!/usr/bin/env python3 | |
| """Verify the release checksum and the required GGUF schema without dependencies.""" | |
| from __future__ import annotations | |
| import argparse | |
| import hashlib | |
| import json | |
| import struct | |
| from collections import Counter | |
| from pathlib import Path | |
| from typing import BinaryIO | |
| SCALAR_FORMATS = { | |
| 0: "<B", | |
| 1: "<b", | |
| 2: "<H", | |
| 3: "<h", | |
| 4: "<I", | |
| 5: "<i", | |
| 6: "<f", | |
| 7: "<?", | |
| 10: "<Q", | |
| 11: "<q", | |
| 12: "<d", | |
| } | |
| def read_exact(stream: BinaryIO, size: int) -> bytes: | |
| value = stream.read(size) | |
| if len(value) != size: | |
| raise ValueError("unexpected end of GGUF file") | |
| return value | |
| def read_scalar(stream: BinaryIO, value_type: int): | |
| fmt = SCALAR_FORMATS[value_type] | |
| return struct.unpack(fmt, read_exact(stream, struct.calcsize(fmt)))[0] | |
| def read_string(stream: BinaryIO, keep: bool = True): | |
| size = read_scalar(stream, 10) | |
| value = read_exact(stream, size) | |
| return value.decode("utf-8") if keep else None | |
| def read_value(stream: BinaryIO, value_type: int, keep: bool = True): | |
| if value_type in SCALAR_FORMATS: | |
| value = read_scalar(stream, value_type) | |
| return value if keep else None | |
| if value_type == 8: | |
| return read_string(stream, keep) | |
| if value_type == 9: | |
| element_type = read_scalar(stream, 4) | |
| count = read_scalar(stream, 10) | |
| values = [read_value(stream, element_type, keep) for _ in range(count)] | |
| return values if keep else None | |
| raise ValueError(f"unsupported GGUF metadata type {value_type}") | |
| def sha256(path: Path) -> str: | |
| digest = hashlib.sha256() | |
| with path.open("rb") as stream: | |
| for chunk in iter(lambda: stream.read(8 * 1024 * 1024), b""): | |
| digest.update(chunk) | |
| return digest.hexdigest() | |
| def inspect(path: Path, expected_keys: set[str]) -> dict: | |
| with path.open("rb") as stream: | |
| if read_exact(stream, 4) != b"GGUF": | |
| raise ValueError("invalid GGUF magic") | |
| version = read_scalar(stream, 4) | |
| tensor_count = read_scalar(stream, 10) | |
| metadata_count = read_scalar(stream, 10) | |
| metadata = {} | |
| for _ in range(metadata_count): | |
| key = read_string(stream) | |
| value_type = read_scalar(stream, 4) | |
| value = read_value(stream, value_type, key in expected_keys) | |
| if key in expected_keys: | |
| metadata[key] = value | |
| tensor_types = Counter() | |
| offsets = [] | |
| for _ in range(tensor_count): | |
| read_string(stream, keep=False) | |
| dimensions = read_scalar(stream, 4) | |
| for _ in range(dimensions): | |
| read_scalar(stream, 10) | |
| tensor_types[str(read_scalar(stream, 4))] += 1 | |
| offsets.append(read_scalar(stream, 10)) | |
| return { | |
| "version": version, | |
| "tensor_count": tensor_count, | |
| "metadata": metadata, | |
| "tensor_type_counts": dict(tensor_types), | |
| "aligned": all(offset % 32 == 0 for offset in offsets), | |
| } | |
| def main() -> int: | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("artifact", nargs="?", type=Path) | |
| parser.add_argument("--manifest", type=Path, default=Path("manifest/release.json")) | |
| args = parser.parse_args() | |
| expected = json.loads(args.manifest.read_text()) | |
| artifact = args.artifact or Path(expected["artifact"]["file"]) | |
| failures = [] | |
| actual_size = artifact.stat().st_size | |
| actual_hash = sha256(artifact) | |
| if actual_size != expected["artifact"]["size"]: | |
| failures.append(f"size: expected {expected['artifact']['size']}, got {actual_size}") | |
| if actual_hash != expected["artifact"]["sha256"]: | |
| failures.append(f"sha256: expected {expected['artifact']['sha256']}, got {actual_hash}") | |
| gguf_expected = expected["gguf"] | |
| actual = inspect(artifact, set(gguf_expected["metadata"])) | |
| for key in ("version", "tensor_count", "tensor_type_counts", "aligned"): | |
| if actual[key] != gguf_expected[key]: | |
| failures.append(f"{key}: expected {gguf_expected[key]!r}, got {actual[key]!r}") | |
| for key, value in gguf_expected["metadata"].items(): | |
| if actual["metadata"].get(key) != value: | |
| failures.append( | |
| f"metadata {key}: expected {value!r}, got {actual['metadata'].get(key)!r}" | |
| ) | |
| if failures: | |
| raise SystemExit("verification failed:\n- " + "\n- ".join(failures)) | |
| print(f"verified {artifact}: {actual_size} bytes {actual_hash}") | |
| return 0 | |
| if __name__ == "__main__": | |
| raise SystemExit(main()) | |