Capture / Your devices
Your devices
Your phone, your browsers and your machines work together in two ways: a device pairs with lwis on a machine to send to that machine's agents, and a browser can be linked to your phone to share its identity.
Pair a device with a machine
Pairing connects a phone, a browser (the /capture/ web app or the Firefox extension) or a test device to the lwis daemon on one machine.
- On the machine, run
lwis pair --label "$(hostname)". It shows a QR code and the pairing link (--print-urlprints only the link). For a browser on this machine,--openis simpler: see below. - Scan the QR code with the Android app, or paste the link in the browser (Pair a machine).
- Both screens show the same 6-digit code. Confirm it on both sides: on the machine, answer the
[y/N]prompt; whenlwis pairruns without a terminal (for example, run by your agent), confirm withlwis devices confirm <code>.
The code protects you against someone intercepting the pairing: check it, don't just tap through. The first pairing also registers the machine with the drop API, which takes a few seconds to a couple of minutes (a small proof of work).
A browser on the same machine, in one click
lwis pair --open opens the capture page in the machine's default browser with the pairing already filled in, and pairing starts by itself. Compare the 6-digit code that lwis prints with the one in the browser, click Codes match, and confirm on the machine (the [y/N] prompt, or lwis devices confirm <code> when it runs without a terminal). This is how your agent pairs your browser for you: it runs the command, shows you the code, and confirms only once you say the codes match. --print-link prints the same link without opening a browser.
A pairing link goes only to your own browser or device, never into an issue, a log or someone else's hands. It's a one-time secret, and it expires after 10 minutes.
Trust levels
Each pairing has a trust level that decides whether its captures reach your agent sessions directly.
| Device | Default | Why |
|---|---|---|
| Android app | full | its code ships inside the signed APK |
| Browser extension | full | signed by the browser's store |
Web app (/capture/) | confirm | its code is downloaded from the server at each visit |
With confirm, a capture waits until you accept it on the machine with lwis accept <cid> (or /lwis:accept <cid> in Claude Code). Change a device's level with lwis devices trust <id> full or lwis devices trust <id> confirm.
Manage paired devices
| Command | What it does |
|---|---|
lwis devices | list paired devices with their trust level, last activity and state |
lwis devices rm <id> | forget a device (its keys, topics and upload grant) |
lwis devices rm --all | forget every device |
lwis devices rekey <id> | rotate the session keys with a device now |
lwis devices trust <id> full|confirm | change its trust level |
Pairings expire after 90 days without any traffic. An expired device sees "pairing expired: pair again". Change the period with pairing_ttl_days in lwis's config.json (0 = never).
Pause delivery from your phone
In the app, the Machines screen has a Pause delivery switch for each machine. While paused, nothing reaches that machine's agent sessions: captures are queued (for up to 24 hours) and delivered when you resume. Any paired device can pause; only devices with full trust can resume. On the machine itself, lwis pause and lwis resume do the same, and lwis log records who did what.
Link a browser to your phone
A linked browser becomes one of your devices: it receives captures your phone (or your contacts) send to you, and can send to your phone. It never holds your identity keys, which stay on the phone.
- In the browser, open /capture/, go to Inbox and choose Link to my phone. It shows a QR code and a link.
- Scan the QR code with your phone's camera (it opens lwis), or copy the link and use People → My devices → Link a browser in the app.
- Check that both screens show the same 6-digit code, and confirm on both.
The browser then appears under My devices on the phone, and as a destination when you send. In the browser's Inbox, Get notified lets your phone ring it while the tab is in the background (see Doorbells and notifications).
To unlink, remove the browser from My devices on the phone: that revokes it on the server too. Unlinking from the browser only forgets the link locally.