TETHER(1)
π NAME π
Ok so this is tether, aka TETHER(1), filed under User Commands β the Wayland companion CLI for iPhone integration. Slay. β¨
β¨ SYNOPSIS β¨
tether [OPTIONS]
tether COMMAND [ARGUMENTS]
π¦ DESCRIPTION π¦
tether is a command-line interface for communicating with the Tether daemon (tetherd). It allows for clipboard synchronization, file transfers, and device management between a Linux Wayland desktop and an iOS device. π
Most options also have a subcommand form, so tether devices and tether --list-devices are literally the same thing. See COMMANDS below. π«Ά
π OPTIONS π
Bestie, here is the whole flag lineup β no skips, no cap:
-h,--helpβ Show help message and exit. Your classic βwhat do I doβ button.-v,--versionβ Print thetetherversion and exit.-g,--get-clipboardβ Retrieve the current Wayland clipboard text from the daemon.-s,--set-clipboard [STRING]β Copy the provided string β or stdin if the string is omitted β to the local Wayland clipboard.-f,--send-file FILEβ Send a file to the currently connected device.-n,--native-hostβ Start the browser Native Messaging Host proxy loop (used by browser extensions).-d,--discoverβ Scan the local network fortetherdinstances via mDNS.--host IPβ Connect over TCP to the daemon at the specified IP address instead of using the local UNIX socket.--port NUMβ Connect over TCP port (default:5134).--timeout MSβ Discovery scan duration in milliseconds (default:3000).--list-devicesβ List all paired connection devices and their fingerprints.--statusβ Print what the daemon is doing: version, clipboard and mDNS state, how many devices are paired, how many pairing requests wait, which peers are connected, and the files most recently received.--pendingβ List the Wi-Fi pairing requests waiting to be accepted, with the fingerprint--accepttakes. On a machine with no GTK app to show the prompt, this is how a request is seen.--accept FINGERPRINTβ Accept a pending pairing request locally for the specified device fingerprint.--pairβ Send a pairing request over TCP to the daemon.--forget FINGERPRINTβ Remove a Wi-Fi pairing and close any session it holds. The daemon reconnects to paired peers on its own, so a peer stays unwanted only once both ends have forgotten it. π--install-extension-hostβ Install the browser and mail extensionβs native messaging manifests into this userβs Firefox, Thunderbird, and Chromium directories, pointing at a wrapper in~/.local/bin. Needed only for a portable build such as the AppImage; the distro packages install the manifests system-wide.--install-btclass-unitβ Writetether-btclass@.serviceto/etc/systemd/system. Needs root, and never enables it. Needed only for a portable build such as the AppImage; the distro packages install the unit themselves. See--bt-setup.--install-serviceβ Writetetherd.serviceinto~/.config/systemd/userand print the commands that enable it. Never enables or starts anything. Needed only for a portable build; the distro packages install the unit system-wide. Without systemd it writes nothing.--uninstall-serviceβ Remove thetetherd.serviceunit this user installed.
π COMMANDS π
Each of these is the option named beside it, so nothing behaves differently for having been typed as a word. A first argument that is not one of these, or that starts with a dash, is left for the option parser. π«‘
status,devices,pendingβ--status,--list-devices,--pendingaccept FINGERPRINT,forget FINGERPRINT,pairβ--accept,--forget,--pairdiscover,send FILE,copy [STRING],pasteβ--discover,--send-file,--set-clipboard,--get-clipboardservice,version,helpβ--install-service,--version,--helpbt NAME [ARGUMENTS]β The--bt-NAMEoption, sotether bt pair AA:BB:CC:DD:EE:FFistether --bt-pair AA:BB:CC:DD:EE:FF.
π BLUETOOTH OPTIONS π
Bluetooth carries iPhone messages (MAP), contacts (PBAP), and notification mirroring (ANCS). It is independent of the Wi-Fi pairing above. π¦
--bt-setupβ Show the one-time system setup Bluetooth still needs, with the command for each step. Nothing is applied: the steps change how the machine behaves over Bluetooth outside Tether, so running them is left to the user. One step enablestether-btclass@ADAPTER.service, which is installed by the package but never enabled for you. A portable build has no unit on disk, so the printed command writes it out first: with--install-btclass-uniton the AppImage, and as a here-document elsewhere.--bt-statusβ Show Bluetooth adapter capability and delivery mode.--bt-devicesβ List Bluetooth devices known to BlueZ.--bt-connectionβ Show Bluetooth link and profile connection state.--bt-airpodsβ Show AirPods battery, for each bud and the case, and the current listening mode.--bt-airpods-enable on|offβ Manage AirPods from Tether at all: battery, listening mode, in-ear pausing and handoff. Off by default, because the AAP channel takes one program per computer and opening it takes the buds away from any other AirPods program.--bt-airpods-mode off|anc|transparency|adaptiveβ Set the AirPods listening mode. The buds decline a mode they are not configured for without reporting an error, so check the result with--bt-airpods.--bt-airpods-pause never|one-removed|both-removedβ Pause whatever is playing on this computer when an AirPod is removed, and start it again when the buds go back in. Off by default. Only playback Tether paused is resumed.--bt-airpods-handoff on|offβ Hand the AirPods to the iPhone when it has a call and take them back afterwards. Off by default. Requires call control (--bt-calls-enable on).--bt-pair ADDRESSβ Pair with an iPhone over Bluetooth.--bt-unpair ADDRESSβ Remove a Bluetooth bond.--bt-solicitβ Re-advertise for ANCS so the iPhone shows its permission toggles again.--bt-threadsβ List iPhone message conversations.--bt-messages THREADβ Show messages in one conversation.--bt-send THREAD TEXTβ Reply in one conversation.--bt-contacts [QUERY]β List iPhone contacts, or search them by name, number or email address. Prints each contactβs name followed by its addresses, one per line, in the sametel:/email:form--bt-sendtakes as its conversation.--bt-retention encrypted|plaintext|noneβ How message history and the contact cache are kept on disk.encrypted, the default, seals them with a key from the desktop keyring, falling back to a0600key file on a host with no secret service.plaintextkeeps the readable files earlier versions wrote.nonedeletes what is already stored and retains nothing further. Heads-up: losing the keyring entry loses the retained history β there is no escrow and no plaintext copy is left behind. π--bt-notificationsβ List mirrored iPhone notifications.--bt-ancs on|offβ Turn notification mirroring on or off.--bt-ancs-content on|offβ Mirror notification titles and bodies, not just the app.--bt-callsβ List calls on the iPhone: what is ringing, dialing, or connected.--bt-call numberβ Place a call from the iPhone. A leading+and digits are kept; spaces, dashes, dots and parentheses are dropped and anything else is refused.--bt-answerβ Answer the ringing call.--bt-hangupβ End every call.--bt-calls-enable on|offβ Turn call control on or off. Off by default. Calls run over whichever stack holds the hands-free profile: BlueZβs own, which needsbluetoothd --experimentalβ the same flag notification mirroring requires β and carries no audio, or PipeWireβs, which carries the call audio as well. Neither is installed by Tether and call control is unavailable, not broken, when there is no stack holding the profile. Seedocs/BLUETOOTH.md.--bt-call-audio on|offβ Play call audio on this computer, or leave it on the iPhone. Only PipeWire carries the voice link, so this reports a refusal when BlueZ holds the profile.offgates the next voice link rather than moving a call already in progress.--bt-adapter hciN|autoβ Choose which Bluetooth controller to use, byhciNor by address. Defaults toauto, the first powered controller, which is the wrong one on a machine with more than one.--bt-statusmarks the controller in use.--bt-diagnosticsβ Print a redacted Bluetooth report for a bug report.
π EXAMPLES π
Retrieve clipboard:
tether -g
Copy text to clipboard:
echo "Hello from Linux" | tether -s
Discover other Tether instances:
tether --discover
Send a file:
tether -f document.pdf
See what Bluetooth still needs before pairing an iPhone:
tether --bt-setup
The same things, as subcommands:
tether send document.pdf
tether bt setup
π§ FILES π§
/usr/lib/systemd/user/tetherd.serviceβ Startstetherdfor one user. Installed by the distro packages but never enabled; a portable build writes its own copy to~/.config/systemd/userwith--install-service. The daemon does not need a Wayland session: without one it runs with clipboard sync off./usr/lib/systemd/system/tether-btclass@.serviceβ Sets the Bluetooth adapterβs Class of Device to A/V Hands-Free, which iOS requires before it will offer its Messages and Contacts permissions. Installed by the distro packages but never enabled; a portable build writes it to/etc/systemd/systeminstead. See--bt-setup.
π SEE ALSO π
tetherd(8), tether-gtk(1), systemd.unit(5)
π Thatβs the whole page, bestie! Source/version/date vibes: Tether 0.2.37, January 1980, manual page TETHER(1). Bye and slay π β¨
π¦ where this page comes from
- nixpkgs unstable: tether 0.2.37
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms