Summary
Go Button 3 is a show control application for iOS/macOS that supports remote control via OSC over TCP and UDP. Default OSC listening port is 53100; UDP replies are sent to port 53101. An optional passcode can be configured for OSC access control.
Transport
protocols:
- osc
addressing:
port: 53100 # default TCP/UDP listening port
udp_reply_port: 53101 # default UDP reply port
# UNRESOLVED: UDP port 53535 also accepts plain-text OSC; need explicit source confirmation before adding
auth:
type: passcode # optional; configured in OSC Control Settings; passcode required for application messages
Traits
- powerable # inferred: panic, go, stop commands present
- queryable # inferred: read commands (e.g., /version, /shows, /cue/{n}/isRunning) present
- routable # inferred: playhead/cue selection commands present (/playbackPosition/{cue_number}, next, previous)
Actions
# Application-level actions
- id: go
label: GO
kind: action
description: Start the standing-by cue and advance playhead
params: []
- id: panic
label: Panic Show
kind: action
description: Fade out and stop all cues and hits over the configured panic duration
params: []
- id: panic_in_time
label: Panic In Time
kind: action
params:
- name: duration
type: number
description: Duration in seconds
- id: stop
label: Stop
kind: action
description: Stop all cues and hits immediately (same as hardStop)
- id: pause
label: Pause
kind: action
description: Pause all currently running cues and hits
- id: resume
label: Resume
kind: action
description: Un-pause all paused cues and hits
- id: reset
label: Reset Show
kind: action
description: Stop all cues and hits, return playhead to top, stop and reset elapsed show timer
- id: oops
label: Oops - Reset to Last Cue Played
kind: action
description: Stop and re-select the most recently-played cue; can be sent multiple times
# Playhead / cue selection
- id: select_cue
label: Select Cue
kind: action
params:
- name: cue_number
type: string
description: Cue number (string, not integer)
- id: playhead_next
label: Select Next Cue
kind: action
params: []
- id: playhead_previous
label: Select Previous Cue
kind: action
params: []
# Volume controls
- id: toggle_dim
label: Toggle Main Volume Dimmed
kind: action
params: []
- id: toggle_mute
label: Toggle Main Volume Muted
kind: action
params: []
- id: volume_step_up
label: Step Up Main Volume
kind: action
description: Fade main volume up by 6 dB
params: []
- id: volume_step_down
label: Step Down Main Volume
kind: action
description: Fade main volume down by 6 dB
params: []
- id: set_volume
label: Set Main Volume
kind: action
params:
- name: decibels
type: number
description: Volume in decibels (-96.0 to 0.0)
- id: set_volume_percent
label: Set Main Volume Percent
kind: action
params:
- name: percent
type: number
description: Volume as percentage (0.0 to 1.0)
# Per-cue / per-hit actions (addressed by cue_number or unique ID)
- id: cue_load
label: Load Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_load_at
label: Load Cue At
kind: action
params:
- name: cue_number
type: string
- name: seconds
type: number
- id: cue_start
label: Start Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_pause
label: Pause Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_toggle_pause
label: Toggle Cue Pause
kind: action
params:
- name: cue_number
type: string
- id: cue_resume
label: Resume Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_stop
label: Stop Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_panic
label: Panic Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_reset
label: Reset Cue
kind: action
params:
- name: cue_number
type: string
- id: cue_set_name
label: Set Cue Name
kind: action
params:
- name: cue_number
type: string
- name: name
type: string
- id: cue_set_number
label: Set Cue Number
kind: action
params:
- name: cue_number
type: string
- name: number
type: string
- id: cue_set_pre_wait
label: Set Pre-Wait
kind: action
params:
- name: cue_number
type: string
- name: seconds
type: number
- id: cue_set_color
label: Set Cue Color
kind: action
params:
- name: cue_number
type: string
- name: color
type: string
description: One of none, red, orange, green, blue, purple
# Timer controls
- id: timer_start
label: Start Timer
kind: action
params: []
- id: timer_stop
label: Stop Timer
kind: action
params: []
- id: timer_toggle
label: Toggle Timer
kind: action
params: []
- id: timer_reset
label: Reset Timer
kind: action
params: []
- id: timer_set_elapsed
label: Set Timer Elapsed
kind: action
params:
- name: seconds
type: number
- id: timer_set_duration
label: Set Timer Duration
kind: action
params:
- name: seconds
type: number
# Display controls
- id: toggle_fullscreen
label: Toggle Full Screen
kind: action
params: []
- id: toggle_main_volume_visible
label: Toggle Main Volume Visible
kind: action
params: []
- id: always_reply
label: Always Reply
kind: action
params:
- name: boolean
type: boolean
description: true to enable always-reply; false to disable; omit to read current state
- id: connect
label: Connect
kind: action
params:
- name: passcode
type: string
description: Optional passcode string; required if OSC passcode is configured
- id: disconnect
label: Disconnect
kind: action
params: []
- id: forget_me_not
label: Forget Me Not
kind: action
params:
- name: boolean
type: boolean
description: true to persist client; false to clear
- id: udp_keep_alive
label: UDP Keep Alive
kind: action
params:
- name: boolean
type: boolean
description: true to persist client; false to clear
- id: reply_format
label: Reply Format
kind: action
params:
- name: format_string
type: string
description: Format string with optional tokens; empty string resets to default
- id: shows
label: List Shows
kind: query
params: []
- id: thump
label: Thump Heartbeat
kind: query
params: []
- id: version
label: Get Version
kind: query
params: []
- id: updates
label: Subscribe to Updates
kind: action
params:
- name: boolean
type: boolean
description: true (or 1) to start receiving updates; false (or 0) to stop
- id: show_open
label: Open Show
kind: action
params: []
- id: show_close
label: Close Show
kind: action
params: []
- id: show_cue_lists
label: Get Cue Lists
kind: query
params: []
- id: show_running_cues
label: Get Running Cues
kind: query
params: []
- id: show_running_or_paused_cues
label: Get Running Or Paused Cues
kind: query
params: []
- id: show_dim
label: Set/Read Show Dim
kind: action
params:
- name: boolean
type: boolean
description: true to engage DIM; false to disengage; omit to read current state
- name: duration
type: number
description: Optional fade duration in seconds
- id: show_full_screen
label: Set/Read Full Screen
kind: action
params:
- name: boolean
type: boolean
description: true to enter full screen; false to dismiss; omit to read current state
- id: show_mute
label: Set/Read Show Mute
kind: action
params:
- name: boolean
type: boolean
description: true to mute; false to unmute; omit to read current state
- id: show_main_volume_visible
label: Set/Read Main Volume Visible
kind: action
params:
- name: boolean
type: boolean
description: true to show fader; false to hide; omit to read current state
- id: cue_panic_in_time
label: Panic Cue In Time
kind: action
params:
- name: cue_number
type: string
- name: duration
type: number
description: Panic duration in seconds
- id: cue_display_name
label: Get Cue Display Name
kind: query
params:
- name: cue_number
type: string
- id: timer_reset_duration
label: Reset Timer Duration
kind: action
params: []
- id: timer_reset_elapsed
label: Reset Timer Elapsed
kind: action
params: []
- id: cue_lists_shallow
label: Get Cue Lists Shallow
kind: query
params: []
- id: running_cues_shallow
label: Get Running Cues Shallow
kind: query
params: []
- id: running_or_paused_cues_shallow
label: Get Running Or Paused Cues Shallow
kind: query
params: []
- id: cue_lists_unique_ids
label: Get Cue Lists Unique IDs
kind: query
params: []
- id: running_cues_unique_ids
label: Get Running Cues Unique IDs
kind: query
params: []
- id: running_or_paused_cues_unique_ids
label: Get Running Or Paused Cues Unique IDs
kind: query
params: []
- id: cue_lists_unique_ids_shallow
label: Get Cue Lists Unique IDs Shallow
kind: query
params: []
- id: running_cues_unique_ids_shallow
label: Get Running Cues Unique IDs Shallow
kind: query
params: []
- id: running_or_paused_cues_unique_ids_shallow
label: Get Running Or Paused Cues Unique IDs Shallow
kind: query
params: []
Feedbacks
# Replies use OSC address pattern: /reply/{original_address} json_string
# JSON format: { "show_id": string, "address": string, "status": "ok"|"error", "data": any }
# Status values: ok, error
- id: reply
type: object
description: Standard reply format for all OSC commands
fields:
- show_id: string (optional; present if reply is show-specific)
- address: string (the OSC address that was sent)
- status: enum [ok, error]
- data: any (JSON-encoded result)
Variables
# Show-level variables
- id: volume
label: Main Volume
type: number
range: [-96.0, 0.0]
description: Main volume in decibels
- id: volumePercent
label: Main Volume Percent
type: number
range: [0.0, 1.0]
description: Main volume as linear percentage
- id: dim
label: Dim State
type: boolean
description: Whether main volume dim is engaged
- id: mute
label: Mute State
type: boolean
description: Whether main volume is muted
- id: fullScreen
label: Full Screen State
type: boolean
description: Full screen mode status (iPad only)
- id: timer_elapsed
label: Timer Elapsed
type: number
description: Elapsed time of the Elapsed Show Timer in seconds
- id: timer_duration
label: Timer Duration
type: number
description: Current duration (Starting Time) of the Elapsed Show Timer in seconds
- id: timer_running
label: Timer Running State
type: boolean
description: Whether the Elapsed Show Timer is currently running
# Per-cue variables (addressed by cue_number)
- id: cue_preWait
label: Pre-Wait
type: number
description: Pre-wait time in seconds
- id: cue_duration
label: Duration
type: number
description: Cue duration in seconds
- id: cue_name
label: Name
type: string
description: Cue display name
- id: cue_number
label: Cue Number
type: string
description: Cue number (string, not integer)
- id: cue_defaultName
label: Default Name
type: string
description: Cue default name
- id: cue_colorName
label: Color
type: string
description: Cue color (none, red, orange, green, blue, purple)
- id: cue_isLoaded
label: Is Loaded
type: boolean
- id: cue_isRunning
label: Is Running
type: boolean
- id: cue_isPaused
label: Is Paused
type: boolean
- id: cue_isBroken
label: Is Broken
type: boolean
- id: cue_actionElapsed
label: Action Elapsed
type: number
description: Elapsed action time in seconds
- id: cue_percentActionElapsed
label: Percent Action Elapsed
type: number
description: Elapsed action as percentage
- id: cue_preWaitElapsed
label: Pre-Wait Elapsed
type: number
description: Elapsed pre-wait time in seconds
- id: cue_percentPreWaitElapsed
label: Percent Pre-Wait Elapsed
type: number
description: Elapsed pre-wait as percentage
- id: cue_goButtonText
label: GO Button Text
type: string
description: String displayed on GO button when cue is selected
- id: cue_uniqueID
label: Unique ID
type: string
description: Cue unique identifier
# Show listing
- id: shows
label: Shows List
type: array
description: Array of show dictionaries with uniqueID, displayName, port, udpReplyPort, version
- id: cueLists
label: Cue Lists
type: array
description: Array of cue dictionaries for cue list and hits list
- id: runningCues
label: Running Cues
type: array
description: Array of cues and hits currently running
- id: runningOrPausedCues
label: Running Or Paused Cues
type: array
description: All running cues and hits regardless of duration elapsing
- id: playbackPosition
label: Playback Position
type: string
description: Currently selected cue ID (or empty if no position)
Events
# Go Button sends proactive update messages when status updates are requested (/updates 1)
- id: update_show
label: Update Show
address: /update/show/{show_id}
description: Client must reload cue lists for the show
- id: update_cue
label: Update Cue
address: /update/show/{show_id}/cue_id/{cue_id}
description: Client must reload state for specified cue or hit; for Group cues, also reload children
- id: update_playbackPosition
label: Update Playback Position
address: /update/show/{show_id}/playbackPosition {cue_id}
description: Playback position has changed; no cue_id argument if no current position
- id: update_volume
label: Update Volume
address: /update/show/{show_id}/volume {decibels}
description: Main volume changed; range -96.0 to 0.0
- id: update_volume_percent
label: Update Volume Percent
address: /update/show/{show_id}/volume {percent}
description: Main volume changed; range 0.0 to 1.0
- id: update_disconnect
label: Disconnect
address: /update/show/{show_id}/disconnect
description: Client must disconnect (show is closing)
Macros
# No explicit multi-step macros documented in source
# UNRESOLVED:宏 not found in source; remove section if not applicable
Safety
confirmation_required_for: []
interlocks: []
# UNRESOLVED: no safety warnings or interlock procedures stated in source
Notes
OSC messages can use wildcards (* and ?) in {cue_number} and {id} address patterns. Spaces are not permitted in OSC addresses; avoid spaces in cue numbers when using OSC control.
Go Button supports increment/decrement syntax for numerical cue properties: /cue/{n}/property/+ {delta} and /cue/{n}/property/- {delta}.
UDP clients are auto-disconnected after 61 seconds of inactivity; sending any message (e.g. /thump) resets the timer. Use /forgetMeNot or /udpKeepAlive with true to persist client settings across inactivity. TCP connections are not auto-disconnected.
For QLab integration, set Go Button UDP Reply Port to 53000 to view reply messages in QLab Workspace Status Logs.
Legacy note: Go Button 3.2.0+ uses new default ports (53100/53101) vs. older versions (53000/53001). Settings migrate automatically to avoid breaking changes.
Provenance
source_domains:
- gobutton.app
source_urls:
- https://gobutton.app/docs/Go_Button_3_Reference_Manual.pdf
- https://gobutton.app/docs/v3/working-with-your-show/osc-dictionary/
- https://gobutton.app/docs/v3/
retrieved_at: 2026-04-29T23:42:56.952Z
last_checked_at: 2026-06-02T22:07:13.018Z
Verification Summary
verdict: verified
checked_at: 2026-06-02T22:07:13.018Z
matched_actions: 70
action_count: 70
confidence: medium
summary: "All 70 spec actions traced to source (dip-safe re-verify). (9 unresolved item(s) noted in Known Gaps.)"
Known Gaps
- "MIDI input described but not fully documented in source; full MIDI message catalog not included"
- "UDP port 53535 also accepts plain-text OSC; need explicit source confirmation before adding"
- "宏 not found in source; remove section if not applicable"
- "no safety warnings or interlock procedures stated in source"
- "MIDI Show Control (MSC) commands mentioned but full command catalog not documented in source"
- "Full MIDI Note On/Off/Controller/Program Change message documentation not in source"
- "Passcode format (string length, character set, etc.) not specified in source"
- "TCP connection timeout behavior not documented"
- "Maximum UDP datagram size not stated in source"
From the AI4AV catalog (https://ai4av.net) · ODbL-1.0