Skip to main content

Block keys by kind

Goal

Know which keys each block kind accepts. Use this page as a cheat sheet. Time: 10 minutes.

Common to every block

KeyPurpose
idLetters, numbers, and underscores. Unique within the file
nameThe label shown on the canvas
kindcode, code_file, http, mcp, ai, decision, or loop
enabledfalse skips the block (Node execution off)
thenThe next block ID, or break/continue inside a loop
outputsThe output schema
usesInput paths (code blocks)
skills, targetAdvanced: skill binding, and the execution target (target needs schema: 2)

Kind-specific keys

​
- id: transform
  kind: code
  language: python        # bash | powershell | python | csharp | rust | javascript | typescript
  body: |
    print('{"ok":true}')
  input_sample: '{}'      # Execute step fixture only
- id: script
  kind: code_file
  path: scripts/report.py # relative to `folder`
  args: --fast --limit 10 # one string, split on whitespace
  language: python        # optional: inferred from the extension
- id: call
  kind: http
  endpoint: Create message   # a saved endpoint (real requests)
  method: POST
  headers: ...               # copied from the saved endpoint
  body: "{{ steps.prep.request_json }}"
# or, offline:
#  url: mock://users
- id: tool
  kind: mcp
  server: Demo tools
  tool: echo
  arguments: "{{ steps.prep.request_json }}"   # must resolve to a JSON object
- id: summarise
  kind: ai
  connection: Summary model
  system: Return one JSON object with "summary".
  prompt: "Summarise: {{ steps.echo.message }}"
  max_tokens: 128
  input_sample: '{"trigger":{"text":"hi"}}'
- id: choose
  kind: decision
  branches:
    - when: steps.lookup.total > 0
      goto: notify
    - else: true
      goto: done
- id: each
  kind: loop
  for_each: steps.list.items   # or: repeat: 3   or: while: <condition>
  max: 20                      # default 20, ceiling 100
  body:
    - id: child
      kind: code
      language: bash
      uses: [loop.item]
      body: jq -c '{seen: .loop.item}' "$TERMORQ_INPUT"
Not runnable yet

kind: git (Git file) appears in the editor, but the runner and the save check don’t accept it. See Git file.

Check your run

Put url: mock://x on a code block and click Save. You get property ‘url’ is not recognised., because each kind accepts only its own keys.

Exercise

Which kinds accept input_sample?

Details

code and ai. These are the two kinds with an isolated Execute step editor.