Trino readonly
Query and inspect Trino through a guarded JSON CLI. Use when the user explicitly asks for Trino or Iceberg querying or schema inspection. Connection details come only from standard environment variables or explicit non-secret flags.From its SKILL.md
npx -y skills add bgevorkian/agent-skills --skill trino-readonlyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
3.7 KB, 856 tokens by cl100k_base, as published. Nobody here has run it
Trino Read-only
Generic Trino skill with UTF-8 JSON output, obvious-write guards, single-statement enforcement, request timeouts, and bounded result fetching.
Configuration
Use standard environment variables or global flags:
| Variable | Flag | Default |
|---|---|---|
TRINO_HOST | --host | none |
TRINO_PORT | --port | 443 for https, otherwise 8080 |
TRINO_USER | --user | none |
TRINO_CATALOG | --catalog | none |
TRINO_SCHEMA | --schema | none |
TRINO_HTTP_SCHEME | --http-scheme | https |
TRINO_PASSWORD | none | empty |
TRINO_ACCESS_TOKEN | none | empty |
TRINO_CERT | none | empty |
TRINO_KEY | none | empty |
TRINO_VERIFY | --verify/--no-verify | true |
TRINO_CA_BUNDLE | --ca-bundle | none |
Authentication options:
TRINO_PASSWORD→ basic authTRINO_ACCESS_TOKEN→ bearer token authTRINO_CERT+TRINO_KEY→ client certificate auth- none of the above → no auth
Never pass secrets as CLI arguments.
Secret setup
Before configuring credentials, ask which secret manager and local profile the user wants. Follow Secure secret profiles. Do not invent or publish profile names, hosts, templates, or secret references. If the user asks for the author's method, use a per-profile Proton Pass pointer file with process-scoped pass-cli run. Never request or display resolved values.
Run
From this skill directory:
uv run --python 3.13 --with trino python scripts/tr.py list-catalogs
uv run --python 3.13 --with trino python scripts/tr.py list-schemas --catalog iceberg
uv run --python 3.13 --with trino python scripts/tr.py list-tables --catalog iceberg --schema analytics
uv run --python 3.13 --with trino python scripts/tr.py describe-table --catalog iceberg --schema analytics --table events
uv run --python 3.13 --with trino python scripts/tr.py query --sql "SELECT current_catalog, current_schema"
uv run --python 3.13 --with trino python scripts/tr.py query --sql @report.sql
Global flags go before the subcommand:
uv run --python 3.13 --with trino python scripts/tr.py \
--host trino.example.net --user analyst --catalog iceberg --schema analytics \
query --sql "SELECT * FROM events LIMIT 10"
--sql accepts a literal string, @file.sql, or - for stdin.
Safety contract
- Read mode allows only obvious read-only statements such as
SELECT,WITH,SHOW,DESCRIBE,DESC,EXPLAIN,VALUES, andTABLE. - Multiple statements and obvious DDL, DML, transaction, and session-changing keywords are rejected.
- Request timeout and TLS verification are enabled by default; fetched rows are capped and marked as truncated when necessary.
- There is no write command in this skill.
- Use a read-only server-side account. Client checks are defense in depth, not an authorization boundary.
- Do not print secrets, tokens, certificates, or environment variables.
Output
Successful commands return JSON:
{
"rows": [{"catalog": "iceberg"}],
"row_count": 1
}
Dates, times, decimals, UUIDs, binary values, lists, and dictionaries are converted to JSON-safe values.
Tests
uv run --python 3.13 --with trino python tests/test_tr.py
What ships with it: 2 files
16.0 KB alongside SKILL.md, 2 of them executable
scripts/
- tr.pyruns12.4 KB
tests/
- test_tr.pyruns3.5 KB