agentsclimarketplace

Trino readonly

Skill bgevorkian/agent-skills/skills/trino-readonly

Reusable open-source Agent Skills for Pi and compatible agent systems

Install
npx -y skills add bgevorkian/agent-skills --skill trino-readonly

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 13 days oldThe repository was created 13 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
  • 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 author says it does

Copied from the file, not written here

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.

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, 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:

VariableFlagDefault
TRINO_HOST--hostnone
TRINO_PORT--port443 for https, otherwise 8080
TRINO_USER--usernone
TRINO_CATALOG--catalognone
TRINO_SCHEMA--schemanone
TRINO_HTTP_SCHEME--http-schemehttps
TRINO_PASSWORDnoneempty
TRINO_ACCESS_TOKENnoneempty
TRINO_CERTnoneempty
TRINO_KEYnoneempty
TRINO_VERIFY--verify/--no-verifytrue
TRINO_CA_BUNDLE--ca-bundlenone

Authentication options:

  • TRINO_PASSWORD → basic auth
  • TRINO_ACCESS_TOKEN → bearer token auth
  • TRINO_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, and TABLE.
  • 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

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.