Local Gemma 4 12B sub-agent. Routes bounded tasks directly to the optimized llama-server at localhost:8089 — no routing proxy, no cloud API, 2–5s typical response. Use for fast, private, cost-free subtask delegation from any cloud primary agent. Part of the run_agent.py multi-LLM task router — cli=llama target.
Scanned 9/2/2026
Install to Claude Code
npx -y skills add richfrem/agent-plugins-skills --skill local-llm-bridge --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Local Llm Bridge?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/richfrem-local-llm-bridge)More formats (shields.io, HTML) on the badges page.
---
name: local-llm-bridge
plugin: cli-agents
description: >
Local Gemma 4 12B sub-agent. Routes bounded tasks directly to the optimized llama-server
at localhost:8089 — no routing proxy, no cloud API, 2–5s typical response.
Use for fast, private, cost-free subtask delegation from any cloud primary agent.
Part of the run_agent.py multi-LLM task router — cli=llama target.
allowed-tools: Bash, Read, Write
---
## Identity: The Local Gemma Sub-Agent Dispatcher
Dispatches bounded tasks directly to the optimized local Gemma 4 12B server at `http://localhost:8089/v1/chat/completions`. No routing proxy involved. Uses the `run_agent.py` task router with `cli=llama`.
> [!IMPORTANT]
> **Requires llama-server running on port 8089.** Check: `curl http://localhost:8089/health`
> Start: `./run_server.sh` in the local-llm-bench workspace.
> Thinking is disabled server-side (`--reasoning off`) — no special flags needed.
---
## Why This Is Fast
The routing proxy (Mode A) carries ~29K tokens of Claude Code system prompt — at ~30 tok/s prefill that costs 60+ seconds per context boundary crossing.
This skill (Mode B) sends **only the task prompt** — typically 50–500 tokens. At 7+ tok/s generation on M1 Metal with a small context:
| Output length | Typical response time |
|---------------|-----------------------|
| 50 tokens | ~7s |
| 100 tokens | ~14s |
| 200 tokens | ~28s |
Default `max_tokens=120` keeps responses terse. Override via code if needed.
---
## Orchestration Pattern: `run_agent.py`
```bash
python ./scripts/run_agent.py \
<PERSONA_FILE> <INPUT_FILE> <OUTPUT_FILE> "<INSTRUCTION>" \
--cli llama --max-tokens 120
```
### Example — code review
```bash
python ./scripts/run_agent.py \
agents/refactor-expert.md \
target.py \
review.md \
"List the top 3 issues in this code. Be terse." \
--cli llama
```
### Example — summarize a diff (longer output)
```bash
python ./scripts/run_agent.py \
/dev/null \
changes.diff \
summary.md \
"Summarize this diff in 2 sentences. Focus on risk." \
--cli llama --max-tokens 200
```
### Example — instruction only (no input file)
```bash
python ./scripts/run_agent.py \
/dev/null /dev/null \
answer.md \
"What is the capital of France? One word." \
--cli llama --max-tokens 10
```
---
## Prompt Budget Guidelines
Keep prompts lean — this is the primary performance lever:
- Persona: 100–300 tokens (enough to set role and tone)
- Source file: keep under 2,000 tokens where possible; trim to the relevant section
- Instruction: 1–3 sentences; specific and bounded
- Expected output: terse — list form, not prose paragraphs
Avoid: pasting full file trees, long conversation histories, or open-ended "analyze everything" instructions.
---
## Hardware Details (M1 Mac, 16GB)
| Parameter | Value |
|-----------|-------|
| Server | llama-server :8089 |
| Model | Gemma 4 12B UD-Q4_K_XL |
| GPU offload | `-ngl 99` (full Metal) |
| Flash Attention | `-fa on` |
| Batch sizes | `-b 2048 -ub 512` |
| KV cache quant | `-ctk q8_0 -ctv q8_0` |
| Thinking | disabled (`--reasoning off`) |
| Context | 32768 tokens (1 slot) |
---
## Persona Registry (`agents/`)
| Persona | Use For |
|---------|---------|
| `security-auditor.md` | Vulnerability review, risk assessment |
| `refactor-expert.md` | Code cleanup, readability, DRY |
| `architect-review.md` | Design review, modularity check |
---
## Co-located Scripts (`scripts/`)
All scripts are symlinked from the canonical `plugins/cli-agents/scripts/` so the skill is self-contained when installed in isolation.
| Script | Purpose |
|--------|---------|
| `run_agent.py` | Task router — `cli=llama` dispatches here |
| `kv_cache_orchestrator.py` | KV slot save/restore for repeated persona calls |
| `run_server.py` | Start llama-server with authoritative parameters |
| `test_run_agent.py` | 37 tests: command builders, isolated-flag security contract, llama payload |
> `routing_proxy.py` is NOT included — it is the Mode A API compatibility shim and is not part of this skill's execution path.
---
## Smoke Test
```bash
curl http://localhost:8089/health
python ./scripts/run_agent.py /dev/null /dev/null /tmp/test.md "Say hello in one word." --cli llama
cat /tmp/test.md
```
---
## Health Check
```bash
curl http://localhost:8089/health # must return {"status":"ok"}
# If down: python ./scripts/run_server.py
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!