Button guide

Keep a team script available when your laptop is closed use a spare PC, Mac mini or Linux box as the computer that runs it

Button runs every job on your own computer, never in Button's cloud, so when you close your laptop the tool page switches from Ready to Offline. To keep a tool available while your laptop is shut, either change your sleep settings or pair the workspace with a desktop, Mac mini, or Linux box that stays on and online. Each workspace connects to one computer at a time, whether you're on the $0 Free plan (1 published tool, 100 runs per month) or the $15/month Pro plan (50 tools, 5,000 runs per month), and pairing a new machine replaces the old one.

Why your tool shows Offline

Button (https://button.bitgate.dev) turns a program on your computer into a web form your colleagues can run from their browser. When a colleague fills in the form and presses Run, Button's servers relay the form values and any files to the Button runner on your machine, which runs the program and sends the output back for your colleague to download.

Because the job runs on your hardware, that computer has to be powered on and connected to the internet. Tool pages show one of three states:

  • Ready: the runner is online and waiting.
  • Busy: a job is running right now (each computer handles one run at a time, for up to 30 minutes per run).
  • Offline: the computer is asleep, turned off, or disconnected from the network.

Every plan gives you one computer (runner) per workspace. You can't run a laptop as the primary machine and have a desktop take over automatically when the laptop lid closes. You pick one computer to be the runner for that workspace.

Your options for an always-on runner

You have two practical routes: stop your current computer from sleeping, or move the runner to a machine that sits on a desk or shelf plugged into power all day.

Option 1: Keep your desktop or plugged-in machine awake

If your runner is already on a desktop PC, an iMac, or a laptop that stays on your desk connected to power, you just need to stop the operating system from suspending when the screen locks.

  1. Open your system power or energy settings on Windows, macOS, or Linux.
  2. Set the screen to turn off or lock whenever you like, so the machine isn't sitting unlocked.
  3. Change the system sleep or suspend setting (when plugged into power) to Never.
  4. If it's a laptop that stays on a desk, either leave the lid open or change the lid-close action in your OS settings so closing the lid doesn't put the computer to sleep while it's on AC power.

Option 2: Move the runner to a spare PC, Mac mini, or Linux box

If you carry your laptop around, keeping it awake isn't going to work. A better setup is an old desktop, a spare laptop left on a shelf, a Mac mini, or a small Linux box that stays plugged in at home or in the office.

Pairing a new computer retires the previous one in your workspace, so moving to a dedicated machine means installing the runner and your script on that computer and approving each tool's command there.

Moving your script and the Button runner to a secondary machine

Before you touch Button on the new machine, get the script itself running cleanly from the command line on that box.

  1. Copy your scripts over to the spare Windows, macOS, or Linux machine and install the runtime and libraries they need (Python, Node, R, PowerShell, shell tools, or your compiled binaries).
  2. Make sure the script takes its inputs as command-line arguments (argparse in Python, commandArgs() in R, a param() block in PowerShell, $1 and $2 in bash) rather than hard-coded paths or interactive prompts. If the script reads files or produces files, have it take each input file path as an argument and write its results into an output folder that's also passed as an argument.
  3. Check any file paths inside the script itself. If it reads a local reference database or config file on your laptop, move that file to the new machine too and update the path so it matches the new computer's filesystem.
  4. Test the script once in a terminal on the new machine to confirm all dependencies are there.
  5. Open a browser on the new machine, sign in at https://button.bitgate.dev, and install the Button runner using the one-line command the site shows you (curl on macOS and Linux, PowerShell on Windows). Running this pairs the new computer with your workspace and replaces your laptop as the runner.
  6. In the local setup page that opens, pick your program, describe its inputs (text, number, yes/no, choice, files), include any fixed flags in the command you approve, and publish.

The runner pins the exact command you approved on that computer by hash. When you change a tool, your colleagues will be asked to confirm the new version before they run it next.

Checklist for a machine you don't look at every day

A few routine OS behaviors can knock a spare machine offline without you noticing. Check these before you walk away:

  1. Disable system sleep on AC power across Windows, macOS, or Linux (turning the display off is fine).
  2. Lock the screen rather than logging out, then confirm the tool page still shows Ready.
  3. Turn off automatic reboots for OS updates. Install updates and reboot it yourself when nobody is mid-run, then check that the tool page shows Ready again.
  4. Plug it into Ethernet if you have a port nearby, or make sure the Wi-Fi connection is set to reconnect automatically if the router restarts.
  5. Check disk space now and then if your script also saves its own local copies of data alongside the output folder it returns to Button.

Button vs. hosting the script in the cloud

Sometimes you don't have a spare machine, or you don't want to manage hardware at all. In that case, wrapping your script in a web framework and hosting it on a cloud platform is the better choice.

Option Price (checked October 2026) Where the code runs Key limits and behavior
Button Free $0 Your own computer (macOS, Linux, Windows) 1 published tool, 3 people, 100 runs/month, 1 GB file transfer/month, 30 min/run, 1 run at a time
Button Pro $15/month or $144/year ($12/month) Your own computer (macOS, Linux, Windows) 50 tools, 250 people, 5,000 runs/month, 50 GB file transfer/month, 30 min/run, 1 run at a time
Render (free web service) $0 Render's cloud Spins down after 15 minutes without traffic; takes about a minute to wake up
PythonAnywhere (Beginner) $0 (Developer plan is $10/month) PythonAnywhere's cloud 1 web app, 100 CPU-seconds/day, outbound internet only to an allowlist of sites, expires after 1 month unless renewed

Use a cloud host like Render or PythonAnywhere instead of Button when:

  • You don't have any desktop, Mac mini, or Linux box you can leave switched on, and you only own a laptop that stays in your bag when you aren't working.
  • Multiple colleagues need to run jobs at the exact same moment rather than waiting when the tool shows Busy (Button runs one job at a time per computer).
  • A single run takes longer than 30 minutes, needs more than 8 files or 100 MB of files per run (or single files over 25 MB), or produces more than 1 MB of logs.
  • You're writing a Python web app anyway and are happy to build the HTML form, file upload handling and login yourself.

Stick with Button on a spare machine when the script is in R, PowerShell, bash, Node, Python, or a compiled binary that already works locally, and you want a web form with Google or email-code sign-in, run logs (who ran it and when), and revocable or expiring access without rewriting the tool as a web app.

FAQ

Can I keep the runner installed on both my laptop and a desktop so one takes over when the other sleeps?

No. Button supports one computer per workspace on every plan, and pairing a new computer replaces the previous one. Pick the machine that stays on and online.

If I run the tool on my own spare computer, do the files stay purely on my local network?

No. While the job itself executes on your computer and never in Button's cloud, the form values and files pass through Button's servers on their way between your colleague's browser and your runner. Button deletes inputs 24 hours after a run ends and outputs after 7 days.

Can a colleague pass extra flags into the form to run arbitrary commands on my spare machine?

No. The runner only executes the exact command you approved (pinned by hash), and every form value is passed to your program as its own argument with no shell, and values can't start with "-".

Do my colleagues need an account or a paid seat when I move to a dedicated machine?

No. Recipients never pay and install nothing; they open the link from their invite email and sign in with Google or a one-time email code. Free covers 3 invited people and Pro covers 250.

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.