Text Generation
GGUF
English
gemma
on-device
android
tool-use
agent
llama.cpp
imatrix
conversational
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
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 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
- Llama new
- 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"
|
Download README.md from Vijaypathy88/Hanu: direct link, hf CLI and curl.
- Browser
- Download file 3.79 kB
-
https://huggingface.co/Vijaypathy88/Hanu/resolve/main/README.md
- Command line
-
hf download hf://Vijaypathy88/Hanu/README.md
-
curl -L -o README.md https://huggingface.co/Vijaypathy88/Hanu/resolve/main/README.md
3.79 kB
| license: gemma | |
| base_model: google/gemma-4-E2B-it | |
| tags: | |
| - gguf | |
| - gemma | |
| - on-device | |
| - android | |
| - tool-use | |
| - agent | |
| - llama.cpp | |
| language: | |
| - en | |
| pipeline_tag: text-generation | |
| # 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: | |
| ```bash | |
| 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 | |
| ``` | |
| ```bash | |
| 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. | |