User guide

Set up, use and troubleshoot Daisy; find advanced tasks when you need them.

Contents

On this page

Start

Use

Troubleshoot

Understand

Contribute

Daisy shares one keyboard, mouse and supported trackpad gestures across a group of up to eight systems on the same network. Peer sharing needs no account or cloud service. Find a specific task in the documentation index.

Get started

Follow Install → Start → Pair to connect your first two systems. Already paired? Choose Start Sharing on both; trusted peers reconnect automatically.

For setup or connection problems, use Troubleshooting.

Start and stop sharing

Choose Start Sharing or Stop Sharing in the Daisy window or menu-bar flower. Stopping sharing closes every group connection and releases held remote input. Daisy remembers your choice and resumes sharing after login or restart if it was on.

Choose Open Daisy from the menu-bar flower to open its window. Command-W or Escape closes the window or sheet. Command-Q closes Daisy’s windows and leaves sharing running; choose Quit from the menu-bar flower to quit the app.

About Daisy, in the app menu while its window is open, shows the version and build commit. daisy --version prints the same information.

Connect by address

If automatic discovery does not find a peer, click + beside Peers, enter its local name or IP address, then click Connect. The peer must be sharing. Daisy saves the address and starts connecting immediately, keeping existing connections and automatic discovery active.

Both systems must be reachable over TCP port 24850, the default. For a new peer, enter its pairing code when prompted. For a paired peer, Daisy checks the saved identity and trust before connecting.

Arrange the screens

Open Daisy. The arrangement at the top shows every display in the group.

With a pointer: drag the peer’s displays to match your desk. Its displays move together and snap near another edge or corner. Displays from different systems cannot overlap.

With a keyboard: select the arrangement, press [ or ] to choose a peer, then use the arrow keys to place it against that side.

Changes apply across the group and are saved. If two systems change the arrangement, the later change wins. Adding, removing or rearranging a display updates the layout and moves any system that would overlap.

When a new member joins, displays change, or a member cannot be reached, Daisy opens the arrangement and asks Is this where your screens are? It names any unreachable members. Drag the screens to match your desk; a drag that connects the whole group dismisses the question. Choose Looks Right to keep the arrangement as shown. Confirmation is shared with peers that support it and saved across restarts. Reconnecting with unchanged displays does not ask again after confirmation.

Move control across any nearby edge or corner; the arrangement is not a single chain.

Move control

Move the pointer off a display toward a peer’s display to use that system. You can cross any nearby edge or corner; crossing between this system’s own displays stays local. Small gaps are allowed. See crossing geometry for the exact rules.

Using a system’s own keyboard or trackpad takes control there immediately. Momentum scrolling stays on the system where the flick began. Control never crosses while a mouse button is held or onto a locked system; unlock it there first.

Control-Option-Command-Escape returns control to the system you are at and centers its pointer on the main display. Disconnecting or stopping sharing also releases held remote input.

Under Peers, each row shows Connected with round-trip latency, Not connected, or Locked. Setup, reconnection and error messages appear below the display arrangement when needed. The system in control has a coral daisy in the arrangement. The menu-bar flower has a yellow center when connected and a gray center otherwise.

Keyboard

Keys and keyboard combinations follow the pointer. Shift, Control, Option, Command and Fn retain their modifier state on forwarded key presses, repeats and releases. Both left and right modifier keys work independently where the keyboard provides them. Caps Lock remains a toggle.

Stopping sharing releases held remote keys and modifiers and closes every group link. Control-Option-Command-Escape remains the shortcut to take control back.

Clipboard

When control moves, the clipboard goes with it: the system giving up control sends its clipboard, including when control moves because someone started using the other system. Copy on one system, move to the peer and paste there; copy on the peer, come back (through the edge, by using this system, or with Control-Option-Command-Escape) and paste here. In a group, the clipboard follows control to every system: copy on any of them, move through a second to a third, and paste there. A system that already has a copy is not sent it again.

  • In Daisy.app, files and folders copied in Finder are shared with every connected group member. Paste normally in Finder. Daisy receives their contents when Finder first requests the clipboard; Finder can make that request before you choose Paste. A native panel shows progress and lets you cancel. While receiving, Finder’s Paste action is unavailable; wait for the panel to finish, then paste.
  • Pending file offers expire after 15 seconds without activity. Copy the files again if the offer expires. Copying something else or receiving a newer offer replaces the offer; transfers already running may finish.
  • A file offer is limited to 64 items, 100,000 entries and 4 GiB of contents. Folders may be nested up to 128 levels. Symbolic links must stay within the copied folder. Extended attributes, including quarantine, are preserved.
  • Completing a download releases the remote offer. The local file URLs stay on the clipboard until it is replaced, even if the offering peer disconnects. Completed files remain in a private clipboard cache for this system’s current boot, so changing the clipboard cannot interrupt a Finder copy already reading them. Daisy cleans caches from earlier boots and abandoned incomplete receives when it next receives files. The cache has an 8 GiB storage limit; a full cache produces an error rather than removing files Finder might still use.
  • Standalone CLI sessions and peers without file-sharing support receive Finder’s available text representation of copied files.
  • Plain text, rich text and images are shared. Images copied as TIFF, such as screenshots, arrive as PNG.
  • Text and rich text are limited to 4 MB each and images to 32 MB. Anything larger stays on the system it was copied on; the rest of the copy still crosses.
  • Items marked concealed or transient by their source app stay on the system where they were copied.
  • Nothing is sent while control stays on one system, and a copy that has already crossed is not sent again.

It is on by default. Turn it off with Share clipboard when control moves under Advanced…. A system with it off neither sends its clipboard nor accepts one. From the command line, add --no-clipboard to listen or connect.

Grow a group

  1. Click Start Sharing on the new system.
  2. On a member already sharing, choose Add a System from the menu-bar flower.
  3. Enter the new system’s code on that member and click Connect.

The new system joins every member without another code. A group supports up to eight systems. Sharing continues during pairing, including connections made by address.

The invitation lasts 30 seconds. Use Cancel to close it or Try Again if no system joins. After a failed or cancelled code prompt, Daisy waits 15 seconds before asking again.

To accept new systems whenever sharing is on, enable Always discoverable under Advanced…. Turning it on requires confirmation and Touch ID or the login password. While enabled, Add a System is unavailable. Each system keeps its own setting; an organization can disable it.

A peer that sleeps or leaves the network drops out without interrupting the rest, then reconnects when available and still trusted. While connected, physical input on the system in control keeps unlocked members’ displays awake and their screen savers off. When input stops, each system’s normal display sleep, screen saver and lock settings apply. Daisy never unlocks a system.

Pairing one member admits a system to the whole group. See group trust and introductions before adding a system you do not control.

Trust and paired peers

Under Peers, click a peer’s Remember… button to change how long this system trusts it. The gray line under its name shows its connection and when that trust ends. Hover over its name to see the key fingerprint.

Manage trust explains expiration, group access and forgetting. The trash can beside a peer forgets it, after you confirm, and removes its introduced systems from the whole group. Use Stop Sharing for a temporary stop that retains peers.

Troubleshooting

Choose your symptom: systems keep looking, an address fails, permissions remain denied, a connection drops, clipboard banners repeat or input goes to the wrong place.

Permissions

The Permissions group under Advanced… lists Accessibility and Input Monitoring. Set Up… beside a missing one opens the walkthrough, which finishes the change in System Settings → Privacy & Security. Grant access to Daisy.app, not only to Terminal. Permission prompts and grants belong to the app’s signed identity. Reset… beside them clears Daisy’s entries when System Settings shows them on but they do not apply.

Launch at login

Daisy opens at login by default; turn off Open at login under Advanced… to stop it. macOS may require approval in System Settings → General → Login Items; Daisy reports that recovery step if registration needs approval.

Discovery

Paired peers find each other automatically with Bonjour while sharing. If your network does not carry Bonjour, connect by address.

From the command line, listen --no-discovery disables advertising; connections by name or address still work. See discovery privacy for what advertisements contain.

Update Daisy

Open Advanced… → Updates and click Check Now. The native update panel shows the available release, download progress, and installation errors. Daisy stops sharing before it exits for an update. Device identity, paired trust, settings and screen arrangement stay in the existing data folder.

Check for updates automatically is on by default and checks every six hours. Choose what happens when a release is found:

  • Ask before installing announces updates and lets you choose when to install.
  • Auto-install routine updates accepts releases in the same major version that retain every network protocol supported by this installation.
  • Auto-install every update also accepts releases that may require updating other group members before they can reconnect.

Check Now checks for the latest release regardless of the automatic-update policy. That release may require updating other group members before they can reconnect. Subsequent automatic checks use your selected policy.

Turn automatic checks off to check only with Check Now. The status line shows the result and how long ago Daisy last checked successfully; that time survives restarts. Automatic downloads are also disabled when automatic checks are off. An update already downloaded and accepted can finish when Daisy quits.

Update feeds and downloaded archives have Ed25519 signatures. The native updater verifies the feed and refuses tampered updates before installation. Installation and relaunch use its helpers. If an update fails, its panel shows the error; you can also quit Daisy and install the latest release from its DMG, or use the Homebrew upgrade steps.

Different releases can connect when they share a network protocol. See the protocol compatibility rules.

An update relaunch preserves a data directory selected with --home and a name selected with --name.

An explicit --home or DAISY_HOME retains the saved name when its absolute path matches the saved data directory. Selecting a different directory uses the system’s name unless --name is supplied. An explicit --name always wins.

If Daisy cannot restore the update relaunch state, start the bundled binary with --home pointing to your data directory. An explicit data directory lets startup continue without the handoff; use --name to select the device name as well.

If Daisy reports Update restart postponed, resolve the storage problem shown in the message, then click Check Now to resume the pending installation.

Homebrew

brew install --cask misfitdev/tap/daisy

This taps misfitdev/homebrew-tap automatically and installs the same signed and notarized app as the DMG. To upgrade, quit Daisy, then run:

brew upgrade --cask misfitdev/tap/daisy

Reopen Daisy afterward. See update compatibility if a peer reports a protocol mismatch. Homebrew verifies the DMG’s SHA-256 during cask installation; it does not grant Accessibility or Input Monitoring. When an automatic-update policy is selected in Advanced settings, Daisy can update its running app, including a Homebrew-installed copy. To update manually instead, run brew upgrade as above. brew uninstall --cask misfitdev/tap/daisy removes the app while retaining settings, device identity, and paired peers. If Daisy was installed manually, quit it and remove the existing app from Applications before installing the cask.

Optional command line

The same app binary provides commands for diagnostics, automation and advanced network settings. Run this once in a Terminal session to use the examples below:

alias daisy=/Applications/Daisy.app/Contents/MacOS/daisy

When run from Terminal, the bundled binary relaunches through Daisy.app so macOS applies the app’s permissions. Quit the running menu-bar app before starting a CLI sharing session.

Inspect permissions and connections

# Inspect permissions and ask macOS for missing grants.
daisy permissions --request
# List trusted peers, round-trip statistics and local identity.
daisy peers
daisy stats
daisy id

To collect debug output, prefix a sharing command with RUST_LOG=daisy=debug, for example RUST_LOG=daisy=debug daisy listen. Record the system in use and macOS versions when reporting a problem.

Connect directly or use a custom port

Run listen on one system and connect on the other. Add --pair for a new peer:

daisy listen --pair
daisy connect peer.local --pair --side right

# Both sides must use the same custom port.
daisy listen --port 24851 --pair
daisy connect peer.local:24851 --pair --side right

--side places a peer that has no saved position; it defaults to right. Arrange it in the window afterward. --bind sets the listener address; the default, 0.0.0.0, accepts connections on every interface. Use a specific local address to restrict it.

Change trust from the command line

Replace <name-or-fingerprint> with a peer name or fingerprint from daisy peers.

daisy trust <name-or-fingerprint> idle:12h
Policy argumentEffect
idleTrust until unused for 4 days
idle:<hours>h or idle:<days>dTrust until unused for that duration
<days>dFixed term from this change; connecting does not extend it
onceThis session, with accidental-drop reconnect grace
foreverUntil explicitly forgotten

Trust rules still apply on both systems.

Forget peers or leave the group

# Remove named peers and their introduced systems from the whole group.
daisy forget <name-or-fingerprint>...
# Leave from this system without removing other group members.
daisy forget --all

Named forgetting requires new pairing for removed systems to rejoin. To pause access without changing trust, stop sharing instead.

Inspect or replace identity

daisy id
# Replace both local identities; every peer must pair again.
daisy rotate-key

Unlock this system before rotating its device key. See key protection before copying or deleting identity files.

Data

Daisy keeps settings, paired peers and display arrangement in ~/Library/Application Support/daisy/. Its device signing key stays in this system’s Secure Enclave; copying the directory does not copy a usable device identity.

Use --home <directory> or DAISY_HOME to choose a different data directory, and --name to change the name peers see. For identity rotation, see identity commands. Unlock this system before creating its device key.

See saved files and key protection before copying or deleting identity and trust data.

Trackpad behavior

  • Daisy captures three- and four-finger trackpad swipes on macOS 26 and later.
  • A macOS 27 peer replays live progress, including pullback cancellation.

Remove Daisy

Quit Daisy, remove Daisy.app, remove the data directory if you do not need its identity or peer list, and revoke the app in the Accessibility and Input Monitoring permission lists.

See Security model for the consequences of copying or deleting identity and trust data.

Back to top