Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

LLM Council Router

v1.0.0

Route any prompt to the best-performing LLM using peer-reviewed council rankings from LLM Council

0· 656·0 current·0 all-time
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
Purpose & Capability
Name/description match the instructions: the SKILL.md documents an API to pick a top model for a query and shows how to call that model. Requesting an LLMCOUNCIL_API_KEY is appropriate for this purpose.
!
Instruction Scope
The instructions correctly describe calling the LLM Council routing endpoint and using X-API-Key with LLMCOUNCIL_API_KEY. However the example then chains to OpenRouter and accesses os.environ['OPENROUTER_API_KEY'] (and the OpenRouter endpoint) even though OPENROUTER_API_KEY is not declared in the skill metadata; instructions therefore reference an additional credential and external service not declared in requires.env.
Install Mechanism
Instruction-only skill with no install spec and no code files — nothing is written to disk and no third-party packages are fetched during install.
!
Credentials
The skill declares a single required env var (LLMCOUNCIL_API_KEY), which is proportionate. But the provided usage examples also require OPENROUTER_API_KEY (and call openrouter.ai) without declaring it; that implicit credential request should be explicit so you can evaluate its necessity and scope.
Persistence & Privilege
always is false, the skill is user-invocable and does not request persistent agent privileges or modify system/other-skill configs.
What to consider before installing
This skill is largely consistent with its stated purpose, but ask the publisher or maintainer to clarify two things before installing: (1) confirm whether you must supply an OPENROUTER_API_KEY to use the example chaining and, if so, add that to the declared required env vars so you can evaluate the risk; (2) verify that https://clawbot.llmcouncil.ai is an official LLM Council endpoint and review their privacy/usage terms because your queries will be sent there. Don’t provide sensitive secrets or PII in prompts unless you’re comfortable with the external service’s data handling. If you plan to chain to OpenRouter, ensure the OpenRouter key has minimal scope and rotate it if shared. If you need higher assurance, request a full manifest or a code-backed skill (not just prose) showing exactly what calls are made and where.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🧠 Clawdis
EnvLLMCOUNCIL_API_KEY
latestvk97f4rddacvwd802am8c32wz7n81bk13
656downloads
0stars
1versions
Updated 6h ago
v1.0.0
MIT-0

LLM Council Router

Route any prompt to the best-performing LLM. The API finds the top model for a given query based on thousands of peer-reviewed council deliberations — then you call that model directly.

Base URL

https://clawbot.llmcouncil.ai

Authentication

Use the X-API-Key header with your LLM Council API key.

X-API-Key: clwb_YOUR_KEY_HERE

Get a free key at llmcouncil.ai/developers.

Endpoint: POST /v1/route

Find the best-performing model for a query.

Request

{
  "query": "Explain quantum entanglement simply",
  "k": 20
}
FieldTypeRequiredDescription
querystringYesThe prompt or question to route
kintegerNoNumber of past evaluations to consider (default: 20)

Response

{
  "query": "Explain quantum entanglement simply",
  "nearest_councils": 20,
  "model": "anthropic/claude-sonnet-4",
  "relevance": 0.8234,
  "confidence": 0.65,
  "model_rankings": [
    { "rank": 1, "model": "anthropic/claude-sonnet-4", "nearby_wins": 13, "nearby_appearances": 20 },
    { "rank": 2, "model": "openai/gpt-4.1", "nearby_wins": 5, "nearby_appearances": 18 }
  ]
}
FieldTypeDescription
modelstringTop recommended model ID (matches OpenRouter catalogue)
relevancefloat (0–1)How closely matched evaluations relate to your query. Above 0.75 is strong.
confidencefloat (0–1)How decisively the top model outperforms alternatives. Higher = clearer winner.
nearest_councilsintegerNumber of relevant past evaluations used
model_rankingsarrayAll models ranked by performance across matched evaluations

How to use this skill

When the user asks you to find the best model for a task, or when you need to decide which LLM to use:

  1. Call the routing API with the user's query:
curl -X POST https://clawbot.llmcouncil.ai/v1/route \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $LLMCOUNCIL_API_KEY" \
  -d '{"query": "USER_QUERY_HERE"}'
  1. Read the response — the model field is the best-performing model for that query type.

  2. Chain with OpenRouter — model IDs match the OpenRouter catalogue directly, no mapping needed:

import requests, os

# Step 1: Get the best model from LLM Council
route = requests.post(
    "https://clawbot.llmcouncil.ai/v1/route",
    headers={"X-API-Key": os.environ["LLMCOUNCIL_API_KEY"]},
    json={"query": "Write a Python web scraper"},
).json()

best_model = route["model"]       # e.g. "anthropic/claude-sonnet-4"
confidence = route["confidence"]   # e.g. 0.85

# Step 2: Call that model via OpenRouter
answer = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={"Authorization": f"Bearer {os.environ['OPENROUTER_API_KEY']}"},
    json={
        "model": best_model,
        "messages": [{"role": "user", "content": "Write a Python web scraper"}],
    },
).json()

print(answer["choices"][0]["message"]["content"])

Rate Limits

TierDaily LimitAttribution
Free100 requests/dayRequired
Pro10,000 requests/dayNone

When to use this

  • User asks "which model is best for X?"
  • You need to pick the optimal model for a specific task type
  • You want data-driven model selection instead of guessing
  • You want to chain model routing with OpenRouter for automatic best-model dispatch

Comments

Loading comments...