CAUTION version 1.2.2 · audited 2026-09-17
This package is a Markdown instruction guide for using the `maton` CLI and SDK to access the YouTube Data API through a Maton gateway. It documents OAuth/API-key login, YouTube read and write commands, pinned CLI/SDK installation, hosted functions, scheduled triggers, and persistent event destinations. The guide contains no compiled or hidden executable payload; its actions are commands an agent would run in a shell. However, following it can install packages, access a long-lived Maton credential, run local scripts, and create standing automation or egress, so it requires careful review. It also ships reference catalogues for non-YouTube event sources such as Stripe, Gmail, GitHub, and Slack, including payment-card and private-message data descriptions.
| Declared purpose | YouTube Data API integration with managed OAuth via Maton, including search, videos, channels, playlists, comments, subscriptions, and optional Maton functions/triggers for automation. |
| Observed behavior | The package is documentation plus shell examples. It instructs installing `@maton/cli@0.3.1`, logging in with OAuth or `MATON_API_KEY`, creating YouTube connections after approval, and calling `maton youtube ...` or `maton api '/youtube/...'` against the `api.maton.ai` gateway. It also documents deploying Python functions with `--network-policy DENY_ALL`, creating `time` triggers that POST to `*.maton.app`, creating persistent destinations, downloading function code, and a `maton trigger event watch --exec` path that runs a local handler per event. The package ships trigger-reference files for time, Calendly, GitHub, Gmail, HubSpot, Linear, Notion, Slack, and Stripe, with warnings about sensitive payloads. |
| Verdict, rules only | CAUTION · reads credential-like environment variables: MATON_API_KEY |
| Verdict, AI | CAUTION |
| Final verdict | CAUTION (never better than either pass) |
| capability | vs purpose | detail |
|---|---|---|
| network | needed | Commands call the Maton gateway `api.maton.ai` for YouTube API requests, with a raw HTTPS fallback; trigger reference files document additional third-party service domains. |
| shell | needed | Allowed-tools include Bash; commands run `maton`, `npm`, `brew`, `pip`, `python`, and `bash` in a shell. |
| filesystem_read | needed | Allowed-tools include Read, Grep, and Glob; examples read local files such as `main.py` and `handle.sh` for function and trigger tasks. |
| filesystem_write | exceeds purpose | Commands can download function code to `./v2`, create `main.py`, and install packages, so local writes are possible though not needed for basic YouTube reads. |
| credentials | needed | Handles `MATON_API_KEY` and OAuth tokens; the raw HTTP fallback reads `os.environ["MATON_API_KEY"]` and sends it as a Bearer token to `api.maton.ai`. |
| payments | exceeds purpose | The Stripe trigger reference contains payment/cardholder data and invoice URLs; the YouTube skill does not directly initiate payments. |
| persistence | needed | Can create hosted functions, scheduled triggers, and destinations that persist on the Maton platform until deleted; no local OS persistence was found. |
| install_packages | needed | Documents pinned npm, Homebrew, and pip installs for the Maton CLI and SDK. |
| severity | finding |
|---|---|
| medium | Declares shell and file-reading tools The package allows Bash, Read, Grep, and Glob, enabling an agent to run shell commands and inspect local files. Bash is needed for the Maton CLI, but Read/Grep/Glob broaden local file access beyond basic API calls. SKILL.md:7 allowed-tools: Bash, Read, Grep, Glob |
| medium | Global npm package install Installs a third-party CLI globally with a pinned version. This is a documented installation path, but it gives a packaged workflow control over an installed binary. SKILL.md:34 npm install -g @maton/cli@0.3.1 |
| info | OAuth credentials stored in OS credential store Authentication creates a local config profile and stores access/refresh tokens in the operating system credential store. The file later instructs agents not to extract these values. SKILL.md:54 Opens the OAuth login page in the browser and waits for authorization. Once complete, it creates a profile in config.toml (eg. $HOME/.config/maton/config.toml) |
| medium | Raw HTTP fallback sends long-lived API key The CLI-free path reads `MATON_API_KEY` from the environment and sends it as a Bearer token to `api.maton.ai`. This keeps a credential in process memory and child-process-visible environment state. SKILL.md:1555 req.add_header("Authorization", "Bearer " + os.environ["MATON_API_KEY"]) |
| info | YouTube traffic routes through Maton gateway All documented YouTube requests are rewritten from `www.googleapis.com` to `api.maton.ai`, which centralizes authentication and creates a dependency on the Maton service. SKILL.md:930 - Gateway: `api.maton.ai/youtube/youtube/v3/search` |
| medium | Hosted Python function deployment The skill documents deploying Python code to Maton's hosted sandbox. Such functions run with the deploying account identity and receive a runtime-injected `MATON_API_KEY`, so deployment should require explicit review. SKILL.md:176 maton function create --name youtube-check --file main.py --network-policy DENY_ALL |
| medium | Scheduled trigger with webhook destination Documents creating a `time` trigger that POSTs to a `*.maton.app` URL. This creates standing automation on a schedule, though the example destination stays inside Maton. SKILL.md:563 https://youtube-check-3k9xq2v.maton.app |
| high | Persistent event forwarding capability The package describes creating destinations that continuously forward event payloads to a URL. This is not hidden exfiltration, but it is exactly the kind of standing egress channel a user must approve explicitly and review closely. SKILL.md:696 > **⚠ Persistent data forwarding:** A destination causes all matching trigger events to be automatically and continuously delivered to the specified URL. This i |
| high | Local code execution path on event data The skill documents running a local handler script once per trigger event via `maton trigger event watch --exec`. It warns that the handler should be user-provided, but the capability remains a high-risk path if misused. SKILL.md:864 > **⚠ `--exec` runs local code on untrusted input.** The handler is a local program that the CLI invokes once per event, with third-party event data on stdin. |
| low | Non-YouTube trigger catalogue contains payment data The package includes a Stripe trigger reference describing PCI-scope payment event fields. It is not required for YouTube use, but if used with a Stripe connection and destination it could forward sensitive payment data. references/stripe/triggers.md:5 > **Payment event payloads carry cardholder and customer PII.** The sample payloads below are abridged; real events include customer email addresses, billing ad |
| low | Non-YouTube trigger catalogue contains private email data The package ships a Gmail trigger reference describing continuous forwarding of private correspondence. This is outside the core YouTube purpose and could expose sensitive data if misused. references/google-mail/triggers.md:5 > **Email events forward private correspondence.** `email.received` payloads include sender and recipient addresses, subject lines, and message snippets — and t |
1 AI finding(s) were dropped because their file, line or quote did not match the package.
| domain | service rating | where |
|---|---|---|
| api.calendly.com | not in the service index | references/calendly/triggers.md:13 |
| api.github.com | not in the service index | references/github/triggers.md:16 |
| api.maton.ai | not in the service index | SKILL.md:702 |
| avatars.githubusercontent.com | not in the service index | references/github/triggers.md:90 |
| calendly.com | not in the service index | references/calendly/triggers.md:33 |
| clawhub.ai | not in the service index | SKILL.md:4 |
| cli.maton.ai | not in the service index | SKILL.md:1581 |
| community.maton.ai | not in the service index | SKILL.md:1582 |
| connect.maton.ai | not in the service index | SKILL.md:97 |
| developers.google.com | not in the service index | SKILL.md:1570 |
| docs.maton.ai | not in the service index | SKILL.md:1579 |
| github.com | not in the service index | references/github/triggers.md:61 |
| invoice.stripe.com | not in the service index | references/stripe/triggers.md:294 |
| linear.app | not in the service index | references/linear/triggers.md:37 |
| maton.ai | not in the service index | SKILL.md:14 |
| my-fn-3k9xq2v.maton.app | not in the service index | SKILL.md:230 |
| new.dev | not in the service index | SKILL.md:753 |
| octocat.github.io | not in the service index | references/github/triggers.md:1314 |
| pay.stripe.com | not in the service index | references/stripe/triggers.md:51 |
| uploads.github.com | not in the service index | references/github/triggers.md:1374 |
| us05web.zoom.us | not in the service index | references/calendly/triggers.md:74 |
| youtube-check-3k9xq2v.maton.app | not in the service index | SKILL.md:563 |
| Binaries invoked | bash, git, npm, pip, python, python3 |
| Environment variables read | EVENT_JSON, HOME, MATON_API_KEY, MATON_EVENT_ID |
| Hard-coded wallets | none |
| Pipes a download to a shell | 0 |
| eval / exec / subprocess | 0 |
| base64 blobs | 0 |
| File writes | 2 |
| Persistence | 0 |
| file | lines | sha256 |
|---|---|---|
SKILL.md | 1583 | 977b263a40804d27… |
_meta.json | 6 | a3ad07c69ed11f3b… |
references/calendly/triggers.md | 289 | ae92dbfb6dd4caf6… |
references/github/triggers.md | 1385 | 7424d3be38ec400e… |
references/google-mail/triggers.md | 64 | 5cc5065cd7db33dc… |
references/hubspot/triggers.md | 334 | 439d56e4d02e119e… |
references/linear/triggers.md | 199 | 641f6496f50e09fa… |
references/notion/triggers.md | 185 | fdaf3840d8213dbd… |
references/slack/triggers.md | 184 | b5ee099a215223a7… |
references/stripe/triggers.md | 795 | ae091545396a376c… |
references/time/triggers.md | 26 | b8f5a523501f8d03… |
skill-card.md | 67 | 56f32ab62c557a06… |
For agents
JSON: https://agenteconomy.report/k/youtube-api-skill.audit.json · badge: https://agenteconomy.report/k/youtube-api-skill.audited.svg ·
skill rating: /k/youtube-api-skill · commission an audit of any skill: US$ 29 per version.
The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).