Install
openclaw skills install gragoClawHub Security found sensitive or high-impact capabilities. Review the scan results before using.
Delegate web and API data fetching to local LLMs for research tasks, saving tokens and keeping data private while using your local machine for analysis.
openclaw skills install gragoDelegate research and data-fetch tasks to a free local LLM. Save tokens. Use your machine.
Grago bridges the gap between your OpenClaw agent and local LLMs (Ollama, llama.cpp, etc.) that can't use tools natively. It runs shell scripts to fetch live data from the web, APIs, and local files — then pipes the results into your local model with a focused prompt.
Your cloud model stays sharp. Your local machine does the grunt work. Your token bill drops.
Grago executes shell commands. This is intentional — it's the only way to give tool-less local LLMs access to external data.
Safe for: Trusted, single-user environments (your own Mac Mini, VPS, workstation)
NOT safe for: Multi-tenant systems, public APIs, untrusted agents
If your OpenClaw agent is compromised via prompt injection, Grago can execute arbitrary commands. This is the trade-off for free local compute. Read SECURITY.md in the repo for full details.
Use Grago when:
# Fetch a URL and analyze locally
grago fetch "https://example.com" \
--analyze "Summarize the key points" \
--model gemma2
# Multi-source research from a YAML config
grago research \
--sources sources.yaml \
--prompt "What are the main themes across these sources?"
# Pipe any shell command into your local model
grago pipe \
--fetch "curl -s https://api.example.com/data" \
--transform "jq .results" \
--analyze "Identify trends and flag outliers"
Config file: ~/.grago/config.yaml
default_model: gemma2 # Your preferred Ollama model
timeout: 30 # Seconds per fetch
max_input_chars: 16000 # Input truncation limit
output_format: markdown # markdown | json | text
git clone https://github.com/solsuk/grago.git
cd grago && ./install.sh
pipe mode over fetch --analyze for reliability (avoids Ollama TTY spinner issues)~/.grago/config.yaml; override per-call with --modelmax_input_chars before being sent to the local model