Snooker Skill
v0.3.0Look up snooker rankings, results, player profiles, live matches and head-to-head records via api.snooker.org.
Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
Name/description ask for snooker data from api.snooker.org and the code only calls api.snooker.org endpoints, so the requested SNOOKER_API_KEY and python3 binary are appropriate and expected.
Instruction Scope
SKILL.md instructs invoking the included snooker.py script. The script will read SNOOKER_API_KEY from the environment (or a local config file) and performs only API requests to api.snooker.org. Note: the setup command writes a plaintext config.json under ~/.nanobot/workspace/snooker/, and the script prints fetched URLs to stdout (logging).
Install Mechanism
No install spec — it's instruction-only with an included Python script. Nothing is downloaded or executed from external, untrusted URLs.
Credentials
Only the SNOOKER_API_KEY credential is declared and used. The script sends that key in an X-Requested-By header to api.snooker.org and otherwise does not request unrelated credentials or env vars.
Persistence & Privilege
always:false and normal autonomous invocation. The script creates and writes its own config file at ~/.nanobot/workspace/snooker/config.json to persist the API key; it does not modify other skills or system-wide settings.
Assessment
This skill appears coherent for fetching snooker data, but before installing: 1) you will need a SNOOKER_API_KEY and the script will store it in plaintext at ~/.nanobot/workspace/snooker/config.json — consider file permissions or using environment variables instead; 2) ensure python3 is available and run the script with python3 snooker.py if your system doesn't honor the provided shebang; 3) the tool logs URLs it fetches to stdout (not the secret), and it will send your API key to api.snooker.org in the X-Requested-By header (this is required for the API). If any of these behaviors are unacceptable (plaintext key on disk, file creation in your home), do not install or run the skill.Like a lobster shell, security has layers — review code before you run it.
Runtime requirements
Binspython3
Primary envSNOOKER_API_KEY
billiardslatestsnookersports
Snooker
Query live snooker data — rankings, results, player profiles, and more.
Requires an API key from api.snooker.org. Set the env var SNOOKER_API_KEY to your API key. Please note that the current API rate limit is 10 requests per minute.
Script
{baseDir}/snooker.py <command> [options]
Commands
# Current world rankings (top 20)
{baseDir}/snooker.py rankings
# Rankings for a specific season
{baseDir}/snooker.py rankings --season 2024
# Player profile (search by name)
{baseDir}/snooker.py player "O'Sullivan"
{baseDir}/snooker.py player "Ronnie"
# Player profile by numeric ID (faster — use when you already have the ID)
{baseDir}/snooker.py player-id 16
# Recent results (returns Player1ID, Player2ID, EventID — use player-id/event to resolve names)
{baseDir}/snooker.py results
{baseDir}/snooker.py results --days 3
# Event details by numeric ID
{baseDir}/snooker.py event 2205
# Live matches in progress
{baseDir}/snooker.py live
# Matches scheduled for tomorrow (default) or a specific date
{baseDir}/snooker.py upcoming
{baseDir}/snooker.py upcoming --date 2026-03-15
# Upcoming matches for a specific player (all future matches, not just tomorrow)
{baseDir}/snooker.py upcoming --player "Hawkins"
{baseDir}/snooker.py upcoming --player "Ronnie O'Sullivan"
# Tournaments active tomorrow (default) or a specific date
{baseDir}/snooker.py tournaments
{baseDir}/snooker.py tournaments --date 2026-03-15
# Full schedule (tournaments + matches) for tomorrow or a specific date
{baseDir}/snooker.py schedule
{baseDir}/snooker.py schedule --date 2026-03-15
# Head-to-head record (split name pairs by position)
{baseDir}/snooker.py h2h Ronnie O'Sullivan Mark Selby
Notes
- All data is from the main professional tour (tour ID main)
- Rankings show top 20 by prize money for the current season
playerreturns up to 3 matching results if the name is ambiguoush2hsearches by last name or full name — be specific if names are ambiguous
Comments
Loading comments...
