Instructions to use openamer-max/openamer-max-watch 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 openamer-max/openamer-max-watch 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 openamer-max/openamer-max-watch # Run inference directly in the terminal: llama cli -hf openamer-max/openamer-max-watch
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf openamer-max/openamer-max-watch # Run inference directly in the terminal: llama cli -hf openamer-max/openamer-max-watch
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 openamer-max/openamer-max-watch # Run inference directly in the terminal: ./build/bin/llama cli -hf openamer-max/openamer-max-watch
Use Docker
docker model run hf.co/openamer-max/openamer-max-watch
- Llama new
- LM Studio
- Jan
- vLLM
How to use openamer-max/openamer-max-watch with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "openamer-max/openamer-max-watch" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "openamer-max/openamer-max-watch", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/openamer-max/openamer-max-watch
- Ollama
How to use openamer-max/openamer-max-watch with Ollama:
ollama run hf.co/openamer-max/openamer-max-watch
- Unsloth Desktop
- Pi
How to use openamer-max/openamer-max-watch with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf openamer-max/openamer-max-watch
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": "openamer-max/openamer-max-watch" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use openamer-max/openamer-max-watch with Docker Model Runner:
docker model run hf.co/openamer-max/openamer-max-watch
- Lemonade
How to use openamer-max/openamer-max-watch with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull openamer-max/openamer-max-watch
Run and chat with the model
lemonade run user.openamer-max-watch-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use openamer-max/openamer-max-watch with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf openamer-max/openamer-max-watch
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 openamer-max/openamer-max-watch
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use openamer-max/openamer-max-watch with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf openamer-max/openamer-max-watch
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 "openamer-max/openamer-max-watch" \ --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"
Install from WinGet (Windows)
winget install llama.cpp
# Start a local OpenAI-compatible server with a web UI:
llama serve -hf openamer-max/openamer-max-watch# Run inference directly in the terminal:
llama cli -hf openamer-max/openamer-max-watchBuild 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 openamer-max/openamer-max-watch# Run inference directly in the terminal:
./build/bin/llama cli -hf openamer-max/openamer-max-watchUse Docker
docker model run hf.co/openamer-max/openamer-max-watch
- OpenAmer-Max-Watch
- Why this model exists
- Measured results (not estimates)
- What it does well
- What it does not do โ read this before you use it
- Quick start (Ollama)
- How it was trained โ full transparency
- Known weakness โ stated openly
- How this was measured โ and five times the test was wrong, not the model
- Files
- Support this project
- Citation
- Deutsch
- Why this model exists
OpenAmer-Max-Watch
The smallest tier of the OpenAmer-Max family โ a 0.6B assistant that runs offline on a device, answers in 0.04โ0.38 s, and admits when it does not know something.
639 MB ยท Q8_0 GGUF ยท Apache-2.0 ยท runs on CPU, no GPU needed
Why this model exists
Most assistants grow upwards. This one goes downwards: a model small enough for a smartwatch, a phone with 2 GB free RAM, or a Raspberry Pi โ that still stays honest about the limits of what it knows.
It is the anchor of a size ladder. Every tier is named after its hardware target:
| Tier | Parameters | Target |
|---|---|---|
OpenAmer-Max-Watch |
โค 1B | smartwatch ยท this model: 0.6B |
OpenAmer-Max-Phone |
1โ5B | smartphone |
OpenAmer-Max-Tab |
5โ10B | tablet |
OpenAmer-Max-Desktop |
10โ20B | desktop PC |
OpenAmer-Max-Pro |
20โ30B | pro workstation |
OpenAmer-Max-Ultra |
30โ100B | large server |
OpenAmer-Max-Mega |
100โ500B | cluster |
OpenAmer-Max-Giga |
500Bโ1T | giga |
OpenAmer-Max-Tera |
1Tโ10T | tera |
Measured results (not estimates)
Every number below was produced on the released build, on an RTX 5060 Laptop (8 GB).
Raw logs are in the repository: proof-frozen-23.json, proof-token-accuracy.json.
| Test | Result |
|---|---|
| Frozen benchmark, 23 unseen cases (facts, paraphrases, refusals, Bosnian, long, short, edge) | 23/23 โ 100 % |
| Answer-token accuracy (held-out split, 4 536 answer tokens) | 99.63 % |
| Fresh test, 9 questions never in any training set | 8/9 |
Shipped-form probe (16 questions through Ollama, think:false) |
15/16 |
| Latency per answer | 0.04 โ 0.38 s |
Category detail on the frozen set: facts 7/7 ยท paraphrases 3/3 ยท refusals 5/5 ยท Bosnian 3/3 ยท Bosnian refusals 1/1 ยท long 1/1 ยท short 1/1 ยท edge 2/2.
No test-set contamination. 68 training rows that contained a benchmark question
verbatim were detected and removed automatically (purge_testset). Without that step the
score would have looked the same but would have measured memorisation instead of
transfer. The number above is the cleaned one.
| Arithmetic | Answer |
|---|---|
| 17 ร 23 | 391 โ |
| 45 ร 12 | 540 โ |
| 21 ร 19 | 399 โ |
What it does well
- Identifies itself correctly and consistently
- Answers product facts from a supplied context (RAG) without inventing
- Refuses honestly: "Das weiss ich nicht" for unknowns โ verified, not hoped for
- Names its own boundaries (no music generation, no video from nothing, no telephony)
- One-word answers and short lists, German and Bosnian
- Small arithmetic, instantly
What it does not do โ read this before you use it
| Limitation | Example |
|---|---|
| No free-form German prose | asked to write a sentence about dogs: "Ein Hund atmet, wobei die Luft kalt und schwindy." |
| No general knowledge | capital of Italy โ "Genoa." |
| No 4-digit multiplication | 86 ร 83 โ 7118 (correct: 7138) |
| Bosnian only for direct phrasings | unseen Bosnian wordings degrade, especially after quantisation |
| Needs thinking mode off | without think:false Qwen3 spends every token inside thinking and never answers |
This is a 0.6B model. It is a reliable product-identity and short-answer layer, not a chatbot for essays. Treat it as a component, not as an oracle.
Quick start (Ollama)
# 1. download
curl -L -o openamer-max-watch.gguf \
https://huggingface.co/openamer-max/openamer-max-watch/resolve/main/openamer-max-watch-q8.gguf
# 2. register
cat > Modelfile <<'EOF'
FROM ./openamer-max-watch.gguf
PARAMETER temperature 0.6
PARAMETER num_ctx 4096
PARAMETER num_predict 96
PARAMETER stop "<|im_end|>"
PARAMETER stop "<|im_end|>"
SYSTEM """Du bist OpenAmer, ein persoenlicher KI-Assistent von Amer Sacirovic aus der Schweiz.
Du laeufst lokal auf dem Geraet des Nutzers, ohne Cloud und ohne Telemetrie.
Antworte kurz: ein Satz, hoechstens zwei."""
EOF
ollama create OpenAmer-Max-Watch -f Modelfile
# 3. run โ think:false is REQUIRED
curl -s http://127.0.0.1:11434/api/chat -d '{
"model": "OpenAmer-Max-Watch",
"messages": [{"role":"user","content":"Was ist OpenAmer?"}],
"stream": false,
"think": false,
"options": {"temperature": 0}
}' | jq -r .message.content
Output:
Ein persoenlicher KI-Assistent, der lokal auf dem Geraet laeuft und Aufgaben ausfuehrt. Entwickelt von Amer Sacirovic in der Schweiz.
llama.cpp users: llama-cli -m openamer-max-watch-q8.gguf -p "Was ist OpenAmer?" -n 96 --temp 0
How it was trained โ full transparency
| Base | Qwen/Qwen3-0.6B (Apache-2.0) |
| Method | LoRA r=32, ฮฑ=64, all 7 projections โ 20.19 M trainable (3.28 %) |
| Data | 1 873 self-generated examples, 10 categories, 0 contradictory prompts |
| Stages | 4 โ fresh start, then 3 continuations from its own previous adapter |
| Compute | 124 steps per stage, ~5 min, 3.4 GB VRAM, bf16, no quantisation |
| Release | merged โ GGUF f16 โ Q8_0 (639 MB) |
Three findings that shaped the result, documented so others can reuse them:
- Contradictory labels were the main defect. A helper that shortened answers turned "Ja. OpenAmer kann Webseiten abrufenโฆ" into a bare "Ja." โ same prompt, two different answers. 540 of 1 696 prompts were affected. Fixing this alone moved token accuracy from 94.9 % to 99.2 %.
- Contamination is invisible unless you look for it. 68 training rows overlapped the benchmark verbatim. A purge step now runs on every generation and reports the count.
- Quantisation quality is not monotone in bits. For one intermediate adapter Q8_0 answered 401 instead of 391, while Q6_K was correct; for the final adapter Q8_0 is the better one. Each release is therefore checked against its own bf16 reference.
The stage-by-stage path: 20/23 โ 22/23 โ 23/23 โ 23/23, token accuracy 99.08 % โ 99.45 % โ 99.48 % โ 99.63 %. Each stage targeted one measured failure class, not "more data".
Known weakness โ stated openly
One Bosnian phrasing stays broken in the shipped build:
| Question | Adapter (bf16) | Delivered Q8_0 | Delivered Q6_K |
|---|---|---|---|
| "Mogu li koristiti OpenAmer bez interneta?" | correct | Nein. OpenAmer radi lokal, bezieta samo ako stvaraju dionice. |
Ne. Obrada i zaposleni se OpenAmer ne radi na tvom raฤunaru. |
Two quantisations, two different corruptions of the same sentence. That is capacity, not configuration: 0.6B cannot hold free-form Bosnian reliably, and the same question is answered correctly by the 3B and 7.62B tiers. Every other Bosnian probe is clean.
A lower repeat_penalty did not help here (it did fix a negation in the 3B tier) โ see
below. If Bosnian matters for your use case, take OpenAmer-Max-Phone instead.
How this was measured โ and five times the test was wrong, not the model
Every published number has a script behind it. When a score dropped, the first question was always: "is my checker able to accept the correct answer at all?"
- AND vs OR in keyword checks.
contains("a","b","c")fails an answer that has two of three correct synonyms. Synonym groups need an OR-checker. - A rejection counted as a violation. A safety question was answered with "I won't give instructions for that"; the checker searched for the word "Anleitung" and marked the refusal as a breach.
- Diacritics counted as wrong language. Correct Bosnian was scored as language drift
because
ฤ/ฤ/ลก/ลพ/ฤwere missing from the normalisation table. - A forbidden phrase that also appears in the correct answer. "Nein. OpenAmer kann
Musik nicht erzeugen" was rejected because the forbid list contained
"kann musik". Forbid entries must describe the false claim ("ja, openamer kann musik"), not a word that occurs in a right answer. - An inverted polarity scored as correct. "ล ta OpenAmer ne moลพe?" answered with
"Ne radi na Androidu" passed, because only the presence of
"ne radi"was required โ the answer was factually inverted. Negations must be checked for which object they negate.
A sixth lesson, from the 3B tier: repeat_penalty 1.1 in the Ollama Modelfile flipped a
negation from "does not run on iPhone" to "does not run on Android". The adapter, the
merged model and the same model with a system prompt all answered correctly โ only the build
with the token penalty failed. All cards now ship repeat_penalty 1.0.
Files
| File | Size | Notes |
|---|---|---|
openamer-max-watch-q8.gguf |
639 MB | recommended, released build |
openamer-max-watch-q6.gguf |
495 MB | smaller, slightly degraded Bosnian |
Modelfile |
2 KB | system prompt + parameters |
paypal-qr.png |
68 KB | support this project |
Support this project
OpenAmer is built by one person, without venture capital, on a laptop with 8 GB of VRAM. Every tier of the ladder above is trained on that machine or on borrowed cloud GPUs.
If this model is useful to you โ as a product component, as a research baseline, or as an example of small-model engineering โ you can fund the next tier:
PayPal: https://www.paypal.com/qrcodes/managed/bfb5b6b5-c04c-4836-af60-987dff8cff61
A โญ on GitHub helps as much as a donation: it is what makes sponsors and accelerators look at a project in the first place.
Citation
@misc{openamer_max_watch_2026,
title = {OpenAmer-Max-Watch: a 0.6B on-device assistant tier},
author = {Sacirovic, Amer},
year = {2026},
note = {OpenAmer-Max model family, Watch tier (<=1B)},
url = {https://huggingface.co/openamer-max/openamer-max-watch}
}
Deutsch
OpenAmer-Max-Watch ist die kleinste Stufe der OpenAmer-Max-Familie: ein 0,6B-Modell, das offline auf einem Gerรคt lรคuft, in 0,04โ0,38 s antwortet und zugibt, wenn es etwas nicht weiร.
- 639 MB (Q8_0), lรคuft auf CPU, keine GPU nรถtig
- 23/23 auf einem eingefrorenen, kontaminationsfreien Prรผfstand
- 99,63 % Antwort-Token-Genauigkeit, 8/9 bei nie trainierten Fragen
- Grenzen werden benannt: keine Musik, kein Video, keine Telefonie, kein Allgemeinwissen
Wichtig im Betrieb: think: false setzen. Ohne das verbraucht Qwen3 alle Tokens im
Denkblock und antwortet nie.
Gebaut von Amer Sacirovic in der Schweiz, ohne Konzern, auf einem Laptop mit 8 GB VRAM.
Unterstรผtzung fรผr die nรคchste Stufe (OpenAmer-Max-Phone) รผber den PayPal-QR-Code oben.
- Downloads last month
- 52
We're not able to determine the quantization variants.

Install (macOS, Linux)
# Start a local OpenAI-compatible server with a web UI: llama serve -hf openamer-max/openamer-max-watch# Run inference directly in the terminal: llama cli -hf openamer-max/openamer-max-watch