Package Manager
tdmcp install <lib> stages trusted, manifest-listed TouchDesigner community packages under ~/.tdmcp/packages. It works when TouchDesigner is closed. If the TD bridge is reachable and a package exposes a safe .tox import path, tdmcp can also import it under /project1/tdmcp_packages/<package_id>.
Everyday Commands
tdmcp search shader
tdmcp list --available
tdmcp info shader-park-td --json
tdmcp install mediapipe-touchdesigner --dry-run --json
tdmcp install raytk
tdmcp doctor comfyui-td
tdmcp packages pathinstall-bridge is separate and unchanged:
tdmcp install-bridgeSupport Levels
full packages have manifests, aliases, dry-run plans, cache/stage support, artifact detection, installed-state tracking, and mocked install coverage. They may still stage instead of live-import when the package is a collection or template.
stage-only packages are safe to download and place on disk, but should be opened or imported manually.
doctor-only packages need external runtimes such as models, CUDA/TensorRT, ComfyUI, Ableton, or Bitwig. tdmcp gives preflight guidance and does not pretend those dependencies are installed.
deferred items are not install targets in this pass.
Included Packages
Fully supported:
mediapipe-touchdesignerraytkfunctionstore-toolstouchdesigner-sharedshader-park-tdsop-to-svgaugmenta-touchdesignersimplemixer
Doctor/stage guidance:
td-yolotd-depth-anythingcomfyui-tdtouchdiffusiongeopixtd-abletontd-bitwig
Safe Dry Runs
Use --dry-run --json before staging anything:
tdmcp install mediapipe-touchdesigner --dry-run --jsonDry-runs do not download archives, extract files, write installed state, or contact TouchDesigner.
Importing Into TouchDesigner
When TouchDesigner is closed or the bridge is unreachable, install reports say staged and include the staged path plus next steps. When the bridge is live and a package has a safe .tox, tdmcp imports into:
/project1/tdmcp_packages/<package_id>It will not overwrite an existing package node unless you pass --yes.
Security Model
tdmcp downloads archives, validates archive paths, extracts into its package cache, scans for artifacts, and writes an installed registry. It does not execute third-party Python, shell scripts, npm postinstall hooks, pip installs, model downloads, CUDA/TensorRT setup, Ableton setup, Bitwig setup, ComfyUI setup, or arbitrary downloaded code by default.
--allow-python-deps and --allow-external are acknowledgements for doctor/report guidance. They do not run dependency installers in this implementation.
Developer Notes
Package manifests live in src/packages/registry.ts. Add a manifest with:
id,aliases,displayName,descriptionhomepage,source,license,tagspackageType,supportLevel,platforms,tdVersionRangerequiresTouchDesignerBridge,externalDependenciesinstallStrategy,healthChecks,importHintsuninstallStrategy,securityNotes
Add tests under tests/unit/packageManager.test.ts for aliases, dry-run behavior, doctor behavior, mocked install/stage behavior, and any package-specific safety rule. Mark heavy model/runtime integrations as doctor-only unless the TD-side adapter can be staged safely without hidden external work.