Bitfocus AS
logo
logo
Bitfocus AS
logo
logo
Sign upSign in

Loading...

Bitfocus

Subscribe to our newsletter

The latest news, articles, and resources, sent to your inbox.

FacebookInstagramGitHubYouTubeLinkedIn

Products

  • Buttons
  • Companion

Integrations

  • Supported Devices
  • Developer Community
  • Connection Development

Support

  • Support Overview
  • Documentation
  • Video Tutorials
  • Community Forum

Sales

  • Resellers & Integrators
  • Buttons Pricing

Updates

  • Case Studies
  • Events & Trade Shows
  • Press Releases
  • Product Updates
  • Webinars

Legal

  • Legal Overview
  • Privacy Policy
  • Buttons EULA
  • Terms & Cookie Policy

Company

  • About us
  • Press kit
  • Careers

© 2026 Bitfocus AS. All rights reserved.

Connect to Bitfocus Listener
Docs for
Overview
Getting started
What is Bitfocus Buttons?
Install Buttons and get started
Manage your Buttons license
Activate Buttons offline
Find your way around Buttons
Create your first backup
Add an ATEM connection
Choose a control method
Choose an installation path
Install Buttons on Debian or Ubuntu
Understand HA clustering
Kubernetes HA
Update or remove Buttons
Positions
Understand positions
Create a position
Add controls and sections to a position
Create your first button
Use a connection's presets
Build more capable button actions
Add more feedback to a button
Organize controls in a section
Shift Section
Organize controls with a Folder Section
Add a Popover Section
Build and reuse a Shared Section
Build a Router Section
Understand Custom Routers
Custom Router panel
Surfaces
Surface compatibility
Add and attach a surface
Device orientation
Connections
Update a connection's module safely
Monitor and troubleshoot a connection
Router integrations
VideoHub and AJA KUMO
Utah Scientific BPS
Generic SW-P-08
Nevion VideoIPath
Arkona BLADE//runner
Routing
Physical routing
Configure ports and labels
Take a physical route
Understand route status
Topology graph
Routing Presets
Get started with virtual routing
Configure Nested Shapes
Reverse routing
Tielines
Routing Projects
Routing settings
Troubleshoot a route
Tally
Understand the Tally system
Send ATEM tally and labels to a UMD
Interpret Active Tally state
TSL/UMD connections
Diagnose tally problems
NMOS
Understand NMOS in Buttons
Connect Buttons to an NMOS Registry
Built-in Registry Server
Configure NMOS connections
Discover and adopt
Browse the NMOS inventory
Manage NMOS multicast addresses
Diagnose NMOS problems
Understand Cuelists
Build a Cuelist
Read and advance a running Cuelist
Control a Cuelist from a Position
Workflows
Understand workflows
Build your first workflow
Reuse a group of workflow nodes safely
Troubleshoot a workflow
Recipes
Sequence a timed automation
Call an HTTP endpoint from a workflow
REST endpoint
Use variables
Understand variable scope
Understand nested variables
Update expressions for v1.8
Plan and use Tags
Access
Create and manage users
Create roles and assign permissions
Grant access to specific resources
Show different controls by role
Sessions
Set up PIN and NFC sign-in
SSO
Get started with SSO
Connect a generic OIDC provider
Connect LDAP or Active Directory
Map identity claims to roles
Secure a Buttons deployment
Integrations
External control
Connect to Bitfocus Listener
USB Relay
Install USB Relay on Windows
Install USB Relay on macOS
Install USB Relay on Linux
Install USB Relay on a Raspberry Pi
Get started with the Control API
Secure and monitor the Control API
Control API reference
API reference
Administration
Enable and manage installable features
Services and health
Configure and monitor scheduled backups
Restore a backup and verify it
Export or import Buttons configuration
Store and rotate connection secrets
Replace the HTTPS certificate
HA backup and recovery
Settings
Collect support information
Reference
Glossary
Button Inspector reference
Network ports reference
Expressions
Internal actions reference
Routing Presets panel reference
Startup configuration reference
Workflow nodes
Connection workflow nodes
Workflow workflow nodes
Internal workflow nodes
Position workflow nodes
API workflow nodes
Utility workflow nodes

Loading...

Previous
← External control
Next
Install USB Relay on Windows →
Contact support →
You are viewing documentation for Buttons 1.8.See the docs for Buttons 1.6
Buttons/Integrations/Connect to Bitfocus Listener

Connect to Bitfocus Listener

Bitfocus Listener is a small companion app you install on a Mac or Windows machine to let Buttons trigger keypresses, shell commands, and other local actions on that computer. This guide covers the connection from Buttons' side: installing and configuring Listener itself happens in its own app, separate from Buttons.

Before you begin#

  • Bitfocus Listener installed and running on the target computer, with its own Server Port and Password noted from its app window.
  • Network access from Buttons to that computer's IP address and port.

Add the connection in Buttons#

  1. Add a new connection and choose Bitfocus Listener.
  2. Enter Target IP: the address of the computer running Listener.
  3. Enter Target Port: this must match the port shown in the Listener app (its default is 12001).
  4. Enter Password: this must match the password shown in the Listener app.
Buttons doesn't verify these values immediately; check the connection's status once saved to confirm it actually reached and authenticated with Listener.

Note

The password field isn't masked by default; it displays as plain text like any other configuration field. If you want it hidden and encrypted, an administrator with secrets access needs to bind it to a stored secret using Use secret on the field, the same mechanism used to protect credentials on any other connection. This is an extra step you take deliberately, not the default behavior.

What you can trigger#

Once connected, Listener actions become available like any other connection's actions, including: key press, key down/up, key combination, key string (typed text), mouse click and mouse positioning, opening a file, running a shell command, and (on macOS) running an AppleScript or bringing an application's process to the front. There are no feedbacks or variables from this connection; Listener only receives commands, it doesn't report state back into Buttons beyond its connection's own online/offline status.
Because shell commands and AppleScript can do essentially anything the target computer's user account can do, treat every position or workflow that can trigger them with the same care you'd give direct access to that machine.

Restrict what Listener will actually run#

Listener's own app window (not Buttons) is where you control which of these actions it's willing to execute, and who's allowed to trigger them. Configure that restriction directly in Listener on the target computer; it isn't something you set from the Buttons side of the connection.

If you get stuck#

What you see
What to try
The connection won't reach Listener at all.
Confirm the target computer's firewall allows inbound connections on the configured port, and that the IP and port match what Listener's own window shows.
The connection reaches Listener but fails to authenticate.
Re-check the password against Listener's own window: it must match exactly.
You're not sure who could see the stored password.
Bind the password field to a secret using Use secret if it needs to stay hidden from anyone who can view this connection's configuration.
An action you expected Listener to run doesn't do anything.
Check Listener's own action-restriction settings on the target computer: it may be configured to refuse that category of action.

Where to go next#

  • Choose how another system operates Buttons, for how Listener fits alongside the Control API and other interfaces: including why it can't be used the other way around.
  • Secure a Buttons deployment, for handling connection credentials and remote-execution risk as part of a broader security baseline.

Was this helpful?

Was this helpful?

0 of 0 users found this page helpful