Borrowing it
Nothing to install: this file belongs to quangdang46/openproxy. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/quangdang46/openproxy/main/.agents/skills/openproxy-web-search/SKILL.mdgit clone --depth 1 https://github.com/quangdang46/openproxyWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/quangdang46/openproxy/openproxy-web-search)<a href="https://agentmods.dev/skills/quangdang46/openproxy/openproxy-web-search"><img src="https://agentmods.dev/badge/skills/quangdang46/openproxy/openproxy-web-search/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/quangdang46/openproxy/openproxy-web-search"><img src="https://agentmods.dev/badge/skills/quangdang46/openproxy/openproxy-web-search.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00154 | $0.05661 |
| Opus 5.5 | $0.00062 | $0.02264 |
| Sonnet 5.5 | $0.00031 | $0.01132 |
| Haiku 4.5 | $0.00015 | $0.00566 |
Grade A, and why
openproxy-web-search scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 29d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Makes network callslowCapability
Not a fault in itself. Listed so you know the mod talks to something, and to what.
curl -sS http://127.0.0.1:4623/health How it starts
The opening of the file, as written. The whole thing — 416 lines — stays where its author put it; the contents beside it link to each section on GitHub.
openproxy — web search & web fetch through the proxy
OpenProxy exposes web search on two different POST endpoints that share one provider dispatch but differ in how you address a provider, what they return, whether they expand combos, and whether they fail over across providers. Picking the wrong one is the single most common mistake here, so read section 1 before writing a request.
Both endpoints are authenticated the same way (section 2) and both take the same optional search parameters (section 3).
0 · Preconditions
curl -sS http://127.0.0.1:4623/health
If that fails: openproxy server start --detach --no-open.
Export a key. /v1/* needs any active OpenProxy API key (the admin key or one minted
with openproxy key add), passed as a bearer:
export OPENPROXY_API_KEY="$(cat ~/.openproxy/admin.key)"
# or mint a scoped key (name is positional; --auto generates the secret):
# export OPENPROXY_API_KEY="$(openproxy --robot key add agent-search --auto | jq -r '.data.key')"
Authentication on both search routes is conditional (src/server/api/media.rs:835,
src/server/api/chat_search.rs:218): a bearer is required only when
settings.require_api_key is on. It is never gated on the dashboard's login flag. Send
the bearer anyway — it is harmless when the setting is off and required when it is on.
1 · Pick the endpoint
POST /v1/search |
POST /v1/chat/search |
|
|---|---|---|
| Alias | /v1/v1/search |
/v1/v1/chat/search |
| Handler | media::search → generic_media_handler |
chat_search::handle_search_completions |
| How you name a provider | model: "<provider>/<model>" — required, 400 Missing model without it |
model or provider, a bare search-provider id or alias; unknown values silently become serper |
| Query field | query only |
query, or derived from the last messages[].content of role user |
| Response | raw result set | chat.completion + search_results + search_metadata |
| Combos | no — model: "combo:<name>" → 400 Combos not supported for search |
yes — pass the bare combo name in model |
| Cross-provider failover | none; rotates accounts of one provider on 401/403/429 only |
yes — walks a 15-provider canonical order |
| Reaches search-via-chat providers | yes | only antigravity (see section 5) |
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 29d ago First seen · 416 lines · 154 tokens per session scan A cecf8acf80bf
openproxy-web-search is a skill published in the GitHub repository quangdang46/openproxy (29 stars, last pushed 5d ago), licensed MIT. It adds 154 tokens to every session and 5,661 once invoked, about $0.0006 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-29.
Other skills, from other repositories
implementing-api-schema-validation-security
Implement API schema validation using OpenAPI specifications and JSON Schema to enforce input/output contracts and prevent injection, data exposure, and mass assignment attacks.
keirouter-chat
Chat / code generation via KeiRouter using OpenAI /v1/chat/completions or Anthropic /v1/messages format with streaming + auto-fallback combos. Use when the user wants to ask an LLM, generate code, summarize text, or run prompts through KeiRouter.
keirouter-embeddings
Generate vector embeddings via KeiRouter /v1/embeddings using OpenAI / Mistral / Cohere / Voyage / NVIDIA / AWS Bedrock and other embedding models for RAG, semantic search, similarity. Use when the user wants embeddings, vectors, RAG, semantic search, or to embed text.
10router
Entry point for 10Router — local/remote AI gateway with OpenAI-compatible REST for chat, image, TTS, embeddings, web search, web fetch. Use when the user mentions 10Router, TENROUTERURL, or wants AI without writing provider boilerplate. This skill covers setup + indexes capability skills; fetch the relevant capability…
post-processing
Extract, analyze, and summarize simulation output data — pull spatial fields at specific timesteps, compute time-series trends and detect steady state, extract line profiles through the domain, generate statistical summaries and distributions, calculate derived quantities (gradients, fluxes, volume fractions…
linear-solvers
Select and configure linear solvers for Ax=b systems arising in numerical simulations — choose between direct (LU, Cholesky) and iterative (CG, GMRES, BiCGSTAB, MINRES) methods, analyze sparsity patterns and matrix conditioning, recommend preconditioners (AMG, ILU, IC), apply row/column scaling, and diagnose…