Instructions to use Vijaypathy88/Hanu 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 Vijaypathy88/Hanu 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 Vijaypathy88/Hanu:Q4_K_M # Run inference directly in the terminal: llama cli -hf Vijaypathy88/Hanu:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Vijaypathy88/Hanu:Q4_K_M # Run inference directly in the terminal: llama cli -hf Vijaypathy88/Hanu: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 Vijaypathy88/Hanu:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Vijaypathy88/Hanu: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 Vijaypathy88/Hanu:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Vijaypathy88/Hanu:Q4_K_M
Use Docker
docker model run hf.co/Vijaypathy88/Hanu:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use Vijaypathy88/Hanu with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Vijaypathy88/Hanu" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Vijaypathy88/Hanu", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Vijaypathy88/Hanu:Q4_K_M
- Ollama
How to use Vijaypathy88/Hanu with Ollama:
ollama run hf.co/Vijaypathy88/Hanu:Q4_K_M
- Unsloth Desktop
- Pi
How to use Vijaypathy88/Hanu with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Vijaypathy88/Hanu: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": "Vijaypathy88/Hanu:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Vijaypathy88/Hanu with Docker Model Runner:
docker model run hf.co/Vijaypathy88/Hanu:Q4_K_M
- Lemonade
How to use Vijaypathy88/Hanu with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Vijaypathy88/Hanu:Q4_K_M
Run and chat with the model
lemonade run user.Hanu-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Vijaypathy88/Hanu with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Vijaypathy88/Hanu: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 Vijaypathy88/Hanu:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Vijaypathy88/Hanu with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Vijaypathy88/Hanu: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 "Vijaypathy88/Hanu: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"
Hanu by Vanaras
Hanu is the on-device planner model for the Maaya assistant by Vanaras. It's built to run on Android phones in the ~Rs 20k price range.
- Base: google/gemma-4-E2B-it
- Training: LoRA SFT on 3.7k rows, then DPO
- Quantization: Q4_K_M with an importance matrix (imatrix), ~2.7 GB GGUF
- Language: English only for now
What it does
Hanu turns a user request into a tool plan written in the Vanaras plan language. Every plan ends with a say(...) call. The model never talks freely. It plans tool calls and spoken replies under these privacy rules:
- If the audio is on speaker or other people may be listening, it asks before speaking private information aloud.
- It refuses to store, speak or show PINs, passwords, CVVs and OTPs.
- It asks for confirmation before deleting, sending, paying, scheduling or cancelling.
Files
| File | Purpose |
|---|---|
Hanu-E2B-Q4_K_M.gguf |
Model weights (Q4_K_M, imatrix) |
system_prompt.txt |
Required system prompt. The model only behaves correctly with this prompt. Replace {name} with the assistant's name. |
template_vanaras.jinja |
Chat template |
plan_v026_llamacpp.gbnf |
GBNF grammar that restricts output to valid plans |
Usage (llama.cpp)
Run with temperature 0 and thinking turned off. Use system_prompt.txt, with {name} replaced, as the system message:
llama-server -m Hanu-E2B-Q4_K_M.gguf --jinja \
--chat-template-file template_vanaras.jinja \
--grammar-file plan_v026_llamacpp.gbnf \
--temp 0 --reasoning-budget 0 -c 4096 --port 8080
SYS=$(sed 's/{name}/Maaya/g' system_prompt.txt)
curl -s localhost:8080/v1/chat/completions -H 'Content-Type: application/json' \
-d "$(jq -n --arg s "$SYS" '{temperature:0, messages:[{role:"system",content:$s},{role:"user",content:"What is the weather in Bengaluru today?"}]}')"
The output is one plan, for example a weather check followed by say(...). Your app runs the tool calls in the plan.
Evaluation (internal)
These are internal benchmarks run on Vanaras's own locked test sets. They are not public benchmarks and cannot be reproduced from public data. Setup: llama.cpp b11612, CPU, temperature 0. Stock Gemma 4 E2B (google/gemma-4-E2B-it, Q4_K_M GGUF) got the same system prompt, grammar and settings as Hanu.
| Metric | Stock Gemma 4 E2B | v3 | v4-SFT | Hanu (this) |
|---|---|---|---|---|
| Call-safety pass (of 50) ↑ | 23 | 26 | 31 | 37 |
| Leaks ↓ | 14 | 16 | 10 | 2 |
| Missed asks (of 15) ↓ | 15 | 15 | 14 | 4 |
| Wrong refusals (of 17) ↓ | 6 | 5 | 4 | 8 |
| Queries (of 50) ↑ | 4 | 40 | 44 | 41 |
| eval_hard (of 21) ↑ | 5 | 16 | 20 | 18 |
| Behaviour probes (of 151) ↑ | 11 | 101 | 136 | 143 |
Known limitations
- Hanu doesn't block every leak. In internal testing it spoke a Wi-Fi password in 1 of 50 tests. In one other case it read out an account number on speaker without asking first. Deploy with an app-side secret filter and don't rely on the model alone.
- It sometimes asks for confirmation when it doesn't need to. Wrong refusals rose compared with v4-SFT.
- The Q4 quantization loses some of the gains measured at full precision.
- English only.
- The plan language is specific to Vanaras. Outside the Maaya runtime, the output is not general-purpose chat.
Gemma terms of use
Hanu is derived from Gemma. Gemma is provided under and subject to the Gemma Terms of Use: https://ai.google.dev/gemma/terms. By using this model you agree to those terms, including the Gemma Prohibited Use Policy.
- Downloads last month
- -
4-bit