Device management
Device lists and details, group choices, pairing and removal, and per-device sync rules.
The Devices page is the live view of the current space's members: which machines are online, whether the link is direct or relayed, and which content types are allowed to leave this device for each peer. Every action applies to the active space; switching spaces redraws the page.
Page layout
The left list groups this device, paired devices, and mobile sync devices. Select a device to show its details on the right. The list footer provides device invitations, a phone connection icon beside the invitation button, and space switching. An empty paired-device section also offers an add action.
Local details include the device name, sync control, connection information, and space rebuild action. Paired-device details include sync rules, connection information, and unpairing. Mobile details include the server address, credentials, and last activity.
Device trust changes
When a device-group decision is required, UniClipboard opens a required decision dialog and sends a system notification. Each option first explains its main effect, such as which devices will stop syncing. Expand View devices to inspect the member list, expected sync scope, and rejoining requirements. Incomplete information is labeled explicitly rather than treated as an empty list. A removal change may offer Accept this removal and Stay in the current device group. When this device would leave, the choices are Leave the device group and Keep existing devices. Other issues show the available device groups. Group membership, expected sync scope, and current sync availability are different facts. An expected scope does not mean that peers have confirmed the choice or that synchronization has resumed.
Removing this device requires an additional confirmation. A submitted choice may be complete, pending, or require re-pairing; follow the displayed result. If device state changes while you choose, the app refreshes the options and asks you to choose again. If the result cannot yet be confirmed, choose Check again. When another issue remains after one is resolved, the dialog explains it and asks for a new choice without carrying over the previous selection. Separate groups are a long-term result, not an offline or failed state, and are not merged automatically.
If a re-pairing reminder appears at startup, Don't show again remembers your preference to hide that reminder. It does not restore old device relationships or clear the requirement to re-pair. Choosing Open device management alone does not permanently hide the reminder.
The device list contains current space members only. Historical relationships do not bring removed devices or devices in another space back into the list. Update required appears only when the background service confirms an outdated version. Offline status alone does not mean that a device needs an update or has been removed.
What a peer card tells you
Devices now appear as list rows. Desktop rows show the name and online, offline, or action-required status. Select a row to see full connection details and actions on the right. Phones show last activity, which does not indicate a persistent online connection.
Transport channel badge
The little tag next to Online reports how the connection is reaching
the peer:
| Tag | Meaning |
|---|---|
LAN | Discovered and connected directly over the local network. |
Direct | NAT punched through; cross-network P2P direct. |
Relay | Hole-punching failed; running through the encrypted relay. |
The relay only ever sees ciphertext — see Pairing & sync — What the relay sees. This badge reflects reachability and performance, not confidentiality.
Adding a device
Choose the add-device action from the list footer. An empty paired-device section also provides an add action. The dialog will:
- Ask the sponsor daemon to mint a one-time invitation code.
- Show the code with a countdown (default TTL is 5 minutes).
- Offer a one-click copy button.
Hand the code to the new device (read it aloud, paste in a private chat — the code carries no passphrase). On the new device, click I already use UniClipboard elsewhere, enter the invite code and the space passphrase. Full walkthrough at Quick start — Add a second device.
Once an invitation expires or is consumed, it can't be reused. That's the protocol's single-use design, not a bug — just mint a fresh one.
Per-device settings
Select a paired device to show its settings in the right-hand detail panel.
Basic info
The header shows the device name, status, and unpair action. Expand Connection info to view or copy the device identifier and see its channel and address.
Send and receive controls
Sync with this device controls synchronization with that peer. Turning it off stops both directions. It cannot be enabled here while global sync is off.
The tray menu's Device Sync submenu also lists paired devices, including offline ones. A checkmark means this device's sync preference is enabled. Click a device to turn sending and receiving off or on together without changing its content-type rules or pairing. Changes appear in both the menu and the device detail panel. Global sync remains the master switch: device choices are preserved while it is off and take effect when it is enabled again.
Content-type allowlist
Text, images, links, files, and rich text each offer four directions: both, send only, receive only, or off. Restore defaults restores the default sync rules. Disabled send types never leave this device for that peer. Disabled receive types are rejected before they enter local history or the system clipboard. These preferences apply locally to this peer; they do not change the peer's preferences. Re-enabling a type affects future content only.
Unpairing
Click Unpair in the device-detail header and confirm. After unpairing:
- The peer disappears from "Space members".
- Once removal completes, future traffic from that node ID is rejected by the protected space.
- Local history is untouched — clips that already synced over stay.
Member removal is completed by the space itself. It continues across app or background-service restarts. When another device must come online before the change can finish, that device alone shows the Waiting for update icon; there is no separate refresh flow or permanent-loss confirmation.
If recovery is required, use a trusted remaining device to restore or rejoin the space. Do not treat an ordinary offline device as removed.
Removal cannot erase history that was already stored on a lost or stolen device. Treat that local copy as still accessible.
Re-pair the removed device: Create a fresh space invite on a trusted remaining
device and join from the removed device.
Rebuilding the space
In this device's Danger zone, click Rebuild space, enter RESET, and confirm.
Rebuilding creates a new space containing only this device. Local history and settings remain; old membership, security state, and unfinished invitations are cleared. Other devices must pair again.
The CLI equivalent is uniclip space reset --yes. This is not a factory reset.
Mobile sync devices
Registered phones appear in a separate group on the left, with their names and last activity. They are not members of the desktop trust group and do not show desktop transport badges. Selecting a phone opens its server address, username, last activity, and credential controls on the right.
The phone icon opens Connect phone. Regular sync is selected by default and connects using local-network settings. Device connection (Experimental) instead pairs the phone into the space with an invitation code. Each method has a short description, with actions in the shared dialog footer. Regular sync is enabled only after confirmation. Listener errors appear inside the dialog with configuration and retry actions, while device connection remains available. When phones are registered, a settings button also appears beside their group heading.
An existing device's original password cannot be recovered. Reset the password to pair it again. Newly created or updated credentials provide a fresh QR code and credential backup in the detail panel. Editing allows changes to the label, username, or password; a blank password keeps the existing one. Changing the username reissues credentials and requires the phone to pair again. Revoking a device prevents its old credentials from accessing the service.
For the full setup walkthrough, see Mobile sync.
How fast does online status update
The page is push-driven. The daemon owns a small keepalive worker
that detects peers coming and going and broadcasts a peers.changed
WebSocket event; the page just listens and re-renders.
- A peer coming back online propagates within ~1 s: the peer's own keepalive dials this device, which fires the event immediately.
- A peer going offline is detected in ~25–60 s by the daemon's keepalive tick plus the underlying QUIC idle timeout.
The page also runs a one-shot refresh in two situations, as a belt-and- suspenders fallback in case a push was missed:
- The first time you open the Devices page in a session.
- Each time the page returns to the foreground (you switch tabs back).
There is no periodic polling — closing the Devices page reduces its
network traffic to zero. If a status still looks clearly wrong (e.g.
you see Offline for a peer that's clearly running), click the refresh
button beside the paired devices heading. A notification shows the result
counts and reports connection-check errors or a failed device-list refresh.
If it's still off, head to
Troubleshooting — Peer not appearing.
CLI equivalents
| GUI action | CLI equivalent |
|---|---|
| "Space members" list | uniclip member list (local device + paired peers; add --probe for fresh online state). |
| Add device → invite code | uniclip space invite |
| Join an existing space | uniclip space join --code <code> |
| Copy Peer ID | uniclip space status --json → network.endpoint |
| Unpair | uniclip member remove <PEER-ID> |
| Per-peer content-type allowlist | uniclip member sync show <DEVICE> / uniclip member sync set <DEVICE> |
| Mobile sync — status | uniclip mobile status |
| Mobile sync — list paired | uniclip mobile status |
| Mobile sync — register a device | uniclip mobile setup (wizard) or uniclip mobile add --label … |
| Mobile sync — revoke a device | uniclip mobile revoke <device-id> |