Skip to main content
Two ways to drive ShareClick: the app UI (easiest) or the terminal (best for a first test, because you can see the logs). If the app won’t open at all, start with Installation.

Key idea

  • The machine whose physical keyboard & mouse you use is the server.
  • The machine you want to control is the client.
  • Both machines need the same passphrase and the same network.
Example below: Mac = server, Windows PC = client. Swap the roles by swapping which one runs “server” vs “client”.

Option A — the app UI

1

Set the passphrase on both machines

Launch ShareClick (menu bar on macOS, system tray on Windows) → click the icon → Settings & Monitor Manager. Set the shared passphrase (same on both), the machine names, and — on the client — the server host (or leave blank to auto-discover).
2

Arrange the screens

In the arrangement panel, drag the second monitor to where it physically sits next to the first. ShareClick derives which edges border each other. Then Save.
Screen sizes are auto-detected — this machine’s from the OS, the other’s reported automatically on first connect. Add screen = [w, h] in the config only to override a wrong detection.
3

Start the server (Mac)

Grant Accessibility + Input Monitoring (System Settings → Privacy & Security) the first time, then tray icon → Start Server.
4

Start the client (Windows)

Tray icon → Start Client. Allow it through the firewall when asked (Private networks → Allow).

Example config

The settings window writes a plain config.toml. Here’s what it produces:
name = "mac"                    # this machine's name
psk  = "pick-a-long-secret"     # SAME on both machines
port = 24800
auto_edge_switch = true

[[machines]]
name = "mac"
right = "windows"               # the PC is to the right of the Mac

[[machines]]
name = "windows"
left  = "mac"
name = "windows"
psk  = "pick-a-long-secret"     # EXACTLY the same as the Mac
port = 24800
auto_edge_switch = true
server_host = "192.168.1.20"    # the Mac's IP

[[machines]]
name = "mac"
right = "windows"

[[machines]]
name = "windows"
left  = "mac"

Use it

  • Push your mouse into the shared screen edge → your keyboard & mouse now control the other machine.
  • Push back to the opposite edge to return, or press F12 on the server to toggle manually.
  • Copy on one machine, paste on the other — the clipboard syncs.

Option B — the terminal

Running from a terminal shows live logs, which makes the first setup much easier to diagnose.
shareclick init-config                 # writes the config once
open -e ~/Library/Application\ Support/shareclick/config.toml   # edit + save
shareclick serve                       # start the server
$exe = Get-ChildItem "$env:LOCALAPPDATA\Programs\ShareClick","$env:ProgramFiles\ShareClick" `
       -Filter shareclick.exe -Recurse -ErrorAction SilentlyContinue |
       Select-Object -First 1 -ExpandProperty FullName
& $exe init-config
notepad "$env:APPDATA\shareclick\config.toml"   # name=windows, same psk, server_host=Mac IP
& $exe connect                                   # allow through the firewall when asked
On macOS, grant Accessibility + Input Monitoring to the Terminal (or the app), then run serve again. You should see “client authenticated (encrypted session established)” on the Mac.

Find the server’s IP

ipconfig getifaddr en0
# or: System Settings → Wi-Fi → Details → IP address
ipconfig
# look for "IPv4 Address" under your Wi-Fi/Ethernet adapter
With auto_edge_switch on and both machines on the same LAN, the client can find the server automatically over mDNS — run connect with no server_host to search for it, or shareclick discover to list servers.

CLI reference

CommandPurpose
shareclick init-configWrite an editable config.toml.
shareclick serveStart the server (share this machine’s input).
shareclick connect [host]Start the client; omit host to auto-discover.
shareclick discoverList servers on the network (mDNS).
shareclick send-file <host:port> <path>Send a file to a peer.
shareclick bench [--encrypted]Loopback latency benchmark.
shareclick trayLaunch the menu-bar / tray GUI.

Next

Configuration

Every config field, explained.

Troubleshooting

Common problems and their fixes.