Button guide

Let Mac colleagues run a Windows-only script or program from their browser, without Parallels or remote desktop

You can put a web form in front of your Windows script or program with Button (https://button.bitgate.dev), so Mac colleagues run it from their browser while the job executes on your Windows PC. The Free plan is $0 for 1 published tool, 3 invited colleagues and 100 runs per month, and each run can take up to 8 files (up to 25 MB each, 100 MB total) and run for up to 30 minutes.

Options for Mac users who need a Windows-only tool

When you have a script that relies on Excel automation, a Windows-only command-line utility, or a vendor binary, and your colleagues are on Macs, you have four ways to let them use it.

  • Parallels or VMware with Windows on their Mac. Your colleague runs a full Windows virtual machine locally. Pick this when they need to work inside interactive Windows desktop apps all day on their own machine.
  • Remote desktop into a Windows PC. They take over the screen of a physical Windows machine. Note that Windows Remote Desktop can only host sessions on Windows Pro or higher editions, not Home. Chrome Remote Desktop is free, while TeamViewer is free for personal use only. (SSH is another remote option, but it gives a terminal session, which non-technical colleagues rarely want.) Pick remote desktop when the program has to be clicked through interactively in a window.
  • A cloud Windows machine. You rent a hosted Windows desktop or server and set your colleagues up with access to it. Pick this when your own PC isn't going to be on and online when people need the tool, or when several people need to run long jobs at the same time.
  • Button. You install a small runner on your Windows PC and turn the script into a web form. Colleagues open a link in any browser, fill in the inputs, press Run, and download the output files. They install nothing and never pay.

What works well with a background runner (and what doesn't)

Command-line tools and file-in, file-out scripts suit Button best. Python, Node, R, PowerShell, shell scripts and compiled binaries all work, as long as they take their inputs as arguments and exit when they're done.

One caveat before you set this up: automation that drives a desktop app's user interface - like scripts that control Excel's windows or click through dialogs - may not behave the same when the runner starts it as it does when you launch it yourself in your desktop session. Test your script through Button before you invite anyone. If your tool relies on someone watching or clicking a window, use remote desktop or a cloud Windows machine instead.

Prepare your Windows script

If your script currently uses hard-coded file paths or pauses to ask the user questions in the console, change it so it takes inputs as command-line arguments. In PowerShell that's a param() block; in Python use argparse, in R use commandArgs(), and in bash use $1 and $2.

Take each input file path as an argument, and write the results as files into an output folder that is also passed in as an argument. Here is how a basic PowerShell script looks when it's set up this way:

param(
    [string]$InputFile,
    [string]$ReportMonth,
    [string]$OutputDir
)

# Run your Windows-only binary or automation here
& "C:\Tools\vendor-cli.exe" --input $InputFile --month $ReportMonth --out "$OutputDir\result.xlsx"

When you configure the command in Button, any fixed flags - like --input or --month - are part of the command you approve. Your colleagues only supply the values for the form fields. Every form value is passed to your program as its own argument, with no shell, and a value can't start with -.

Put the script behind a Button form

  1. Sign in at https://button.bitgate.dev.
  2. Install the Button runner on your Windows computer using the one-line PowerShell command the site shows you. (If you ever set up a runner on macOS or Linux, the site gives you a curl command instead.)
  3. In the local setup page that opens, pick the program to run - for example pwsh, powershell.exe, python.exe, or your compiled .exe binary - and set the arguments and output folder. The runner pins the exact command you approved on that computer by hash, and it won't execute anything else.
  4. Describe the inputs you want on the form. You can add text, number, yes/no, choice and file fields.
  5. Publish the tool and invite your Mac colleagues by email. If you ever change the tool later, your colleagues will have to confirm the new version before running it.

When a colleague opens the link from their invite email, they sign in with Google or a one-time email code, fill in the form, and press Run. Button's servers relay the form values and files between their browser and your Windows PC, the job runs on your PC, and they download the results from the page. Every run is logged with who ran it and when, and you can revoke a person's access or set it to expire at any time.

Limits and pricing

Your Windows PC has to be on and online when colleagues want to use the tool. The tool page shows them whether your runner is Ready, Busy or Offline, and a computer handles one run at a time.

Limit or feature Free ($0) Pro ($15/month, or $144/year at $12/month)
Published tools 1 50
People (invited colleagues; you don't count) 3 250
Runs per month (includes your own runs) 100 5,000
File transfer per month 1 GB 50 GB
Computers (runners) per workspace 1 1
Max files per run 8 (up to 25 MB each, 100 MB total) 8 (up to 25 MB each, 100 MB total)
Max time and log size per run 30 minutes; 1 MB log 30 minutes; 1 MB log

Recipients never pay. If you downgrade from Pro to Free, it deletes nothing. Inputs are deleted 24 hours after a run ends, and outputs are deleted after 7 days.

FAQ

Do my Mac colleagues have to install anything or pay for an account?

No, they just open the link from their invite email in any browser, sign in with Google or a one-time email code, and run the form. Recipients never pay and don't install anything on their Macs.

Does the data stay only on my Windows PC?

The job itself executes on your computer and never in Button's cloud, but the form values and files pass through Button's servers to get between your colleague's browser and your PC. Inputs are deleted 24 hours after a run finishes, and outputs are deleted after 7 days.

What happens if my Windows computer is asleep or running another job?

The tool page shows your colleagues whether your computer is Ready, Busy or Offline. Because each computer runs one job at a time and has to be on and online to take work, they'll see Busy if a run is already in progress and Offline if your PC is turned off or disconnected.

Can I attach more than one Windows PC to my workspace?

No, every plan allows one computer (runner) per workspace. If you pair a new computer, it replaces the previous one.

Last updated

Put your script behind a form

Button turns a script on your computer into a web form. Colleagues sign in, fill it in, press Run and download the results. Free for 1 tool and 3 people.