Skip to content
  1. OPERATORS
  2. CONTROLLERS

Prompt

v1.0.0new

Prompt composes sibling DAT blocks into a single stable prompt output. Use it for project system prompts, reusable agent instructions, or prompt block experiments that should remain visible in the network.

Blocks are normal TouchDesigner DATs tagged prompt_block. Their vertical network position controls order. Set Identity when multiple Prompt operators share the same parent network.

Identity (optional) (Identity) op('prompt').par.Identity Str

If set, only blocks also tagged prompt_block_<identity> are composed. Use to scope multiple prompt LOPs in the same parent COMP.

Default:
"" (Empty String)
Active (Active) op('prompt').par.Active Toggle

When off, the prompt outputs an empty string and every sibling prompt block is bypassed (frozen, no cooking). Use to disable a prompt subtree without removing it.

Default:
True
Cook Mode (Cookmode) op('prompt').par.Cookmode Menu

Live: dynamic blocks cook on dependency change (typical TD behavior). Frozen: every block is bypassed and shows its last-cooked text until you pulse Refresh Blocks. Use Frozen for expensive blocks that should only run when the agent needs fresh context.

Default:
live
Options:
live, frozen
Refresh Blocks (Refreshblocks) op('prompt').par.Refreshblocks Pulse

Force a single cook of every sibling prompt block, regardless of Cook Mode. Pair with Frozen to snapshot live state into a stable prompt.

Default:
False
Refresh (Refresh) op('prompt').par.Refresh Pulse

Force the internal `out` scriptDAT to recook.

Default:
False
Block Library Header
Library Source (Librarytier) op('prompt').par.Librarytier Menu

Tier for the block library. User resolves from the active LOPs install, Project resolves under project/.lops/, Custom uses Library Folder below.

Default:
user
Options:
user, project, custom
Library Folder (Library) op('prompt').par.Library Folder

Folder of block files. Empty = bundled blocks/ folder. .md files become static textDAT blocks; .py files become dynamic scriptDAT blocks. Files starting with _ are ignored.

Default:
"" (Empty String)
Block (Block) op('prompt').par.Block Menu

Block to place. Refreshes when Library changes.

Default:
my_network
Options:
(none), current_selection, my_network, network_snapshot, selected_details
Add Block (Addblock) op('prompt').par.Addblock Pulse

Place the selected block as a sibling DAT, file-synced and tagged.

Default:
False
Load All Blocks (Loadall) op('prompt').par.Loadall Pulse

Place every block in the library at once. Skips any already placed.

Default:
False
Output Header
Blocks Found (Blockcount) op('prompt').par.Blockcount Str
Default:
"" (Empty String)
Output Length (Outputlength) op('prompt').par.Outputlength Str
Default:
"" (Empty String)
v1.0.02026-05-02
  • fixed block placement order (create scriptDAT before callbacks, dock callbacks) - added token estimate to output length readout - renamed Outputlength label to Output Size with help text - added dynamic prompt blocks: current_selection, my_network, network_snapshot, selected_details - added prompt_guide.md authoring guide - added internal/lops_persona.md
  • added three-tier block library (user/project/custom) replacing repo-path fallback - added starter block seeding from tagged internal DATs - added Librarytier parameter with onPar callback - removed bundled block .md/.py files (now seeded as string constants) - updated blocks/README.md for tier system - updated out_callbacks.py
  • Initial prompt structure
v0.1.02026-05-01
  • Initial Prompt operator release package.
  • Adds prompt block discovery, bundled prompt block library, and stable prompt composition output.