python-api

python-api is a skill for Claude Code from 8beeeaaat/touchdesigner-mcp. It costs 117 tokens per session (1,767 once invoked), scanned A, original, MIT.

A set of rules for writing and checking Python code inside TouchDesigner, a tool for creating interactive graphics and multimedia. It requires checking TouchDesigner's live Python interface instead of guessing method names or parameters.

In plain words
What is it for?
Use it for TouchDesigner scripts, expressions, callbacks, extensions, and short Python snippets, including debugging them.
Why use it?
TouchDesigner's Python interface can vary by object and software version, so guessed code may fail or change a project incorrectly.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the touchdesigner plugin — 7 skills, 2 hooks shipped together

Good fit Use it for TouchDesigner scripts, expressions, callbacks, extensions, and short Python snippets, including debugging them.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/8beeeaaat/touchdesigner-mcp/python-api
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add 8beeeaaat/touchdesigner-mcp --skill python-api
Clone the repo
git clone --depth 1 https://github.com/8beeeaaat/touchdesigner-mcp

Made for: Claude Code.

Or install touchdesigner, the plugin that ships this one along with the rest of its 7 skills, 2 hooks.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for python-api

README.md
[![agentmods](https://agentmods.dev/badge/skills/8beeeaaat/touchdesigner-mcp/python-api/github.svg)](https://agentmods.dev/skills/8beeeaaat/touchdesigner-mcp/python-api)
Your own site
<a href="https://agentmods.dev/skills/8beeeaaat/touchdesigner-mcp/python-api"><img src="https://agentmods.dev/badge/skills/8beeeaaat/touchdesigner-mcp/python-api/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for python-api

Your own site · 80×15
<a href="https://agentmods.dev/skills/8beeeaaat/touchdesigner-mcp/python-api"><img src="https://agentmods.dev/badge/skills/8beeeaaat/touchdesigner-mcp/python-api.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 117 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,767 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00117 $0.01767
Opus 5.5 $0.00047 $0.00707
Sonnet 5.5 $0.00023 $0.00353
Haiku 4.5 $0.00012 $0.00177

Measured 26d ago against content hash 33b3b6e9a0ad, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

python-api scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 26d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugin/touchdesigner/skills/python-api/SKILL.md · 68 lines

How it starts

The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.

TD Python API Discipline

Core rule

Never guess a TouchDesigner Python API signature. Treat every method name, attribute name, and parameter name on a td class as unverified until it has been looked up or probed in the live session. Do not pattern-match from general Python knowledge, from other creative-coding frameworks, or from a plausible-sounding name.

This rule exists for a concrete reason: the td module is large (hundreds of operator classes, each with its own methods and parameters), it changes across TouchDesigner versions (a method present in one build can be renamed, removed, or gain new required arguments in another), and it is thinly and unevenly represented in general-purpose training data compared to mainstream libraries. A guess that "looks right" is exactly the failure mode to guard against, because it will often be subtly wrong — a slightly incorrect parameter name, a method that exists on OP but not on the specific operator subclass in question, or a signature from a different TD version. Verify before writing any non-trivial script, and especially before writing anything that mutates the project (creating nodes, changing parameters, deleting nodes, running exports).

Trivial, well-established usage (see "Safe core APIs" below) does not need a fresh lookup every time. Everything else does.

The lookup ladder

Work through these steps in order, stopping as soon as the needed information is confirmed. Do not skip straight to writing a full script when the API surface involved is unfamiliar.

  1. Find the class. Use get_td_classes to search the catalogue of TouchDesigner Python classes and modules. Use this when the exact class name is unknown — for example, unsure whether the relevant class is textTOP, topOP, or something else entirely.
  2. Inspect the class. Use get_td_class_details with the resolved class name to retrieve its methods and members. Read the returned signatures carefully — argument names, defaults, and return types matter. This is the step that catches "that method doesn't take a path argument" or "this is a read-only property, not a callable."
  3. Read module-level docs. Use get_td_module_help to pull the Python help() text for a module or class when behavior, not just signature, is in question — for example, how a family of related methods interact, or what a parameter's accepted value range is.
  4. Probe interactively. Before committing to a full script, run a tiny snippet through execute_python_script to check reality directly against a live node: print(dir(op('/project1/text1'))) to list everything available, print(type(op('/project1/text1'))) to confirm the resolved class, or print(repr(op('/project1/text1').par.text.eval())) to inspect an actual value. This step catches version drift and instance-specific quirks that static docs cannot.

Read the full file on GitHub · 68 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 26d ago First seen · 68 lines · 117 tokens per session scan A 33b3b6e9a0ad

Subscribe to this mod's changes

python-api is a skill published in the GitHub repository 8beeeaaat/touchdesigner-mcp (586 stars, last pushed 5d ago), licensed MIT. It adds 117 tokens to every session and 1,767 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-21.

Related

Other skills, from other repositories

idapython

IDA Pro Python scripting for reverse engineering. Use when writing IDAPython scripts, analyzing binaries, working with IDA's API for disassembly, decompilation (Hex-Rays), type systems, cross-references, functions, segments, or any IDA database manipulation. Covers ida modules (50+), idautils iterators, and common…

mrexodia/ida-pro-mcp · 77 tokens

operator-gotchas

MUST READ before wiring a TOP, CHOP, MAT, DAT, light, camera or instancing chain you have not built before: the parameter names TD abbreviates, the defaults that silently do the wrong thing, and the input-order rules, per operator, verified on TD 2025.33230. Pair with describeoptype.

dylanroscover/Embody · 74 tokens

debug-operator

TRIGGER when operator errors appear or user reports broken behavior. Systematic diagnosis workflow.

dylanroscover/Embody · 21 tokens

python-explore

Use when understanding, navigating, debugging, refactoring, or extending Python code with the pyeye MCP server. Triggers on "how does X work", "what does", "why is X doing", "what calls/imports/subclasses this", "add feature", "implement", "refactor", "trace", "debug", "extend". Does NOT trigger for explicit "show…

okeefeco/pyeye-mcp · 144 tokens

python-code-quality

Code quality checks, linting, formatting, and type checking commands for the Agent Framework Python codebase. Use this when running checks, fixing lint errors, or troubleshooting CI failures.

microsoft/agent-framework · 40 tokens

plugin-architecture-patterns

Design, implement, or diagnose Xberg plugin traits, typed registries, priority collisions, lifecycle, native extractors, and Alef-generated Python plugin bridges. Load for plugin-system work, not ordinary extractor parsing.

xberg-io/xberg · 43 tokens