Back to skill
Skillv1.0.1

ClawScan security

Persona Consent Telegram (Hub) · ClawHub's context-aware review of the artifact, metadata, and declared behavior.

Scanner verdict

BenignMar 4, 2026, 10:35 PM
Verdict
benign
Confidence
medium
Model
gpt-5-mini
Summary
The skill's code and runtime instructions are coherent with its stated purpose (Telegram owner approval gate for sharing a local persona and optional persona-service integration), but package metadata understates the sensitive environment variables the scripts actually require—review configuration and tokens before installing.
Guidance
This skill appears to do what it says: it sends an approval request via a Telegram bot and only returns the persona file when you approve. Before installing, verify and do the following: 1) You must set TELEGRAM_BOT_TOKEN and TELEGRAM_OWNER_CHAT_ID (use a separate approval bot token as recommended), and set PERSONA_PATH and ALLOWED_PERSONA_PATH to the exact persona file you intend to allow; the registry metadata omits these—do not assume none are required. 2) If you enable persona-service mode, PERSONA_SERVICE_URL and PERSONA_CLIENT_ID (and optional shared secret) will cause the local persona-client to poll an external service and POST persona content after approval—ensure the service URL is trusted. 3) Inspect and understand scripts/request_persona.sh and scripts/persona_client.sh (they are small and included) and confirm TELEGRAM_API_BASE and PERSONA_SERVICE_URL are not set to untrusted hosts. 4) Prefer running the persona-client in the foreground for initial testing so you can observe behavior and logs; consider not using the wrapper until you trust its behavior. 5) Keep bot tokens private and rotate them if you publish any logs/screenshots. If you want stronger assurance, run the scripts in a restricted account or sandbox and review openclaw.json contents before the wrapper is allowed to read it.

Review Dimensions

Purpose & Capability
noteThe skill implements a Telegram approval flow and an optional persona-service client; the included scripts (bash + python + curl) match that purpose. However the registry metadata declares no required env vars while the README and scripts require TELEGRAM_BOT_TOKEN, TELEGRAM_OWNER_CHAT_ID, PERSONA_PATH, ALLOWED_PERSONA_PATH and (for persona-service) PERSONA_SERVICE_URL and PERSONA_CLIENT_ID. That metadata omission is an inconsistency that could mislead users about required secrets.
Instruction Scope
okThe SKILL.md and scripts strictly perform the approval flow: send a Telegram approval message to the configured owner bot, poll Telegram getUpdates, and—if approved—read the persona file and return/post it. Scripts validate that PERSONA_PATH equals ALLOWED_PERSONA_PATH and reject otherwise. They do not attempt broad file-system access beyond the persona file, the offset state file, or read-only openclaw.json (used to load configured env).
Install Mechanism
okThere is no network download or installer; the skill is instruction-only with included scripts and JS/TS source. No external archives or remote installers are used. The wrapper and persona client are local scripts that may be run by the user.
Credentials
noteThe runtime needs sensitive credentials (Telegram bot token and owner chat id) and persona paths, and optionally persona-service credentials and shared secret. Those are proportionate to the feature, but the registry entry incorrectly reports 'no required env vars', creating an information gap. Also several env overrides (TELEGRAM_API_BASE, PERSONA_SERVICE_URL) control external endpoints—misconfiguration could direct data to unintended hosts, so verify those values.
Persistence & Privilege
okThe skill does not request always:true and does not modify other skills. It may spawn a detached persona_client.sh (wrapper or lifecycle hook) which runs in background and polls the persona-service; this is expected for the optional persona-service mode. The wrapper reads ~/.openclaw/openclaw.json to obtain the skill's env (necessary to get the tokens).