Back to skill
Skillv1.0.0
ClawScan security
Irene Tavily Search · ClawHub's context-aware review of the artifact, metadata, and declared behavior.
Scanner verdict
SuspiciousMar 2, 2026, 6:51 AM
- Verdict
- suspicious
- Confidence
- high
- Model
- gpt-5-mini
- Summary
- The skill's code and instructions generally match a Tavily search helper, but there are clear inconsistencies around declared requirements and credential handling that reduce transparency and warrant caution.
- Guidance
- This skill appears to implement a Tavily search helper, but there are mismatches you should address before trusting it: (1) The script requires a TAVILY_API_KEY but the skill metadata does not declare any required env var—make sure you only supply a key you control and understand the key's scope. (2) The metadata lists curl as required even though the code never uses it; treat that as a metadata error. (3) The script looks for keys in ~/.openclaw/.env, ~/.env, and .env — ensure those files do not contain other sensitive secrets and set restrictive file permissions. (4) The script sends the API key in the JSON payload to https://api.tavily.com/search over HTTPS; verify the tavily.com homepage and API docs to confirm this is the intended usage and that the service is trustworthy. (5) Minor usability note: example commands in SKILL.md use unexpanded ~ in subprocess calls which may not work as written. If you plan to install/use this skill, obtain the API key from tavily.com directly, verify the source (owner/publisher), update the skill metadata to list TAVILY_API_KEY as a required credential and remove unused binary requirements, and prefer storing keys with appropriate permissions rather than echoing them into shared dotfiles.
Review Dimensions
- Purpose & Capability
- noteThe name, description, SKILL.md and scripts/search.py all describe a Tavily-based search tool and the script calls https://api.tavily.com/search — that is coherent with the stated purpose. However the skill metadata declares required binaries (curl and python3) while the included code only uses python3; curl is never invoked. Also the registry metadata lists no required env vars but both SKILL.md and the script require a TAVILY_API_KEY. These mismatches suggest sloppy metadata or incomplete declaration.
- Instruction Scope
- okRuntime instructions and the script stay within the stated purpose: they obtain an API key (from environment or typical .env paths), build a JSON payload and POST it to Tavily's API, then format results for display. The script does not attempt to read unrelated system files or call unexpected external endpoints. Note: the SKILL.md recommends writing the API key to ~/.openclaw/.env and the script will scan ~/.openclaw/.env, ~/.env, and .env for a TAVILY_API_KEY line — this is expected behavior but worth noting because it will read user config files to find the key.
- Install Mechanism
- okThis is an instruction-only skill with no install spec. No downloads or archives are written to disk by an installer. That minimizes install-time risk.
- Credentials
- concernThe SKILL.md and scripts require a TAVILY_API_KEY (environment variable or .env entry) but the skill's declared requirements list no required env vars or primary credential. This mismatch reduces transparency — users may not realize they must supply an API key. Also the code places the api_key in the JSON payload (payload['api_key']) rather than using an Authorization header; while not necessarily malicious, it's a less standard pattern and users should confirm the API endpoint and TLS usage. The declared required binaries including curl are disproportionate because curl is not used by the included code.
- Persistence & Privilege
- okThe skill does not request always:true and does not modify other skills or system-wide config. It reads typical user config paths to locate a provided API key, which is a reasonable level of persistence for this function.
