Repository navigation
Releases
InfraLink 0.8.0
Downloads: macOS InfraLink-macOS.dmg (Apple silicon) · Windows InfraLink-Windows-Setup.exe (or .msi) · Android InfraLink-Android.apk. Checksums: SHA256SUMS.txt.
Security (found while testing 0.7)
- Two keys for the local API: the agent key in
api.jsonnow only reaches MCP and
read-only status. Settings, permissions, devices, join keys and Allow prompts need the
UI key, which the apps keep in memory (desktop: injected into the window, not the URL).
Before, any program that could readapi.jsoncould switch features on or approve
its own prompts. - Shared folders never expose InfraLink's own data (identity key, vault) or credential
folders (.ssh,.gnupg, cloud CLIs, keychains, browser profiles…), even when the
whole home folder is shared. They cannot be shared on their own either. - The UI no longer stores its key in localStorage.
- Join links opened from outside the app ask before joining.
Joining with a QR code
- Add device now asks Add a computer (code + key, as before) or Add a phone (QR
code with the same code + key, remade every 45 s). Devices also has separate "Add
computer" / "Add phone" buttons. - Android: Join with QR code (Google's scanner, no camera permission), or scan with
the Camera app (infralink://joinlink). Typing the code stays as the fallback. The
6-digit check on both screens is unchanged.
Computer use and prompts
- Turning computer use on asks macOS for Screen Recording / Accessibility right away;
the manual "Ask macOS again" button is the fallback at the bottom. - Allow prompts are never hidden: InfraLink comes to the front and the menu bar / tray
shows "Allow?". Agents get a clear answer within 20 s ("waiting for the user — tell
them to click Allow on "), "the user clicked Deny", or "turned off"; calling
again reuses the same prompt. The agent guide explains the prompts so any agent can
tell a user who does not know about them. - Commands and terminals with "Ask before each one": "declined" vs "nobody answered".
Menu bar / tray (macOS and Windows)
- Shows devices online, "● is using this computer" with Stop AI control,
waiting requests ("Review…"), and toggles for clipboard sharing and AI computer use.
macOS: a white template silhouette of the logo (with a dot while an agent is active)
and "AI" / "Allow?" next to it. Windows: colour icon with a red dot while active.
Devices
- A device that leaves the network disappears from every device's list right away
(owner and members); devices that were offline drop it at their next sync. It can be
added again later.
macOS permissions survive updates
- Builds are signed with a stable identity (
dev.infralink.app, identifier-based
requirement) instead of a random ad-hoc one, so Screen Recording / Accessibility
granted once stay granted after updating (before, every update silently lost them
while System Settings still showed InfraLink switched on). One last re-grant is needed
when moving to 0.8.0. The permission prompts now run on the app's main thread (macOS
ignored them from a background thread) and open the right Settings page. get_device_inforeportscomputer_permissions(screen, input) so agents can tell the
user exactly which permission is missing.
macOS icon
- Built from an Icon Composer document (
branding/macos/AppIcon.icon→Assets.car,
CFBundleIconName): macOS 26 shows it edge to edge without the light plate (the Dock
may show the old one until its icon cache refreshes). Older macOS usesicon.icnson
Apple's template shape.
Android
- A join link is used once: it no longer reappears after leaving a network.
- The QR scanner module is fetched in the background at start; clear guidance if Google
Play services cannot open it (Camera app or typing the code).
InfraLink 0.7.0
Computer use (new, off by default on every computer)
- AI agents can see a Windows or macOS screen and use its mouse and keyboard
(computer_screenshot,computer_action: click, drag, scroll, type, key chords,
open apps/files/URLs), on this computer or another one in the network. - Settings → Computer use: on/off, "Ask me first" (Allow prompt starts a session),
macOS permission status (Screen Recording, Accessibility) with a button to request
them, displays. Devices → per-device "Use this computer". A banner with Stop
shows on the controlled computer while an agent uses it.
AI agents
- New AI Agents page: Current activity (what each agent is doing right now, live,
computer control, commands it started), agents and permissions, tools, history. - Connect an agent: Claude Code, Codex, Cursor, Antigravity, Windsurf, VS Code
(GitHub Copilot), Gemini CLI, Claude Desktop, plus "Other agent or local harness"
(stdio command or local HTTP endpoint). Shows installed/connected; one-click Connect
edits only theinfralinkentry of the app's config (backup first). - Recovery when a device goes offline mid-task:
wait_for_device, commands keep
running andget_command_statusreportsunreachable(resume with the same job id
and offset),list_commandsfinds lost job ids,list_devicesshowslast_seen. sync_projectno longer skips Rustsrc/bin(the defaultbinexclude is for
.NET output folders only).- Guide for agents: new topics
computerandrecovery; PowerShell quoting tip.
Clipboard
- Clipboard is a chat: every copy on any device is a message with the device and time;
the newest is on every device's clipboard; copy any message back to this device. - Android: a clipboard worker in the background service applies copies from your
computers while the app is closed; "Send clipboard" notification action and Quick
Settings tile send what you copied on the phone.
Reliability and errors
- Requests that wait for an Allow prompt on another device (commands, computer use) no
longer time out after 30 s (they wait the full 90 s). - The UI shows the service's specific error messages, says when the local service is
not responding (instead of "Failed to fetch"), and a page error shows a recovery card
instead of a blank window. - Fixed a deadlock when turning a device's computer-use permission off.
Look
- macOS app icon fills the whole icon shape (no white plate); regenerate with
branding/scripts/make-macos-icon.py.
Installers: InfraLink_0.7.0_aarch64.dmg (macOS, Apple silicon),
InfraLink_0.7.0_x64-setup.exe / InfraLink_0.7.0_x64_en-US.msi (Windows, built on a
Windows PC through InfraLink), InfraLink_0.7.0_android.apk.
InfraLink 0.6.0
Shared Rust core for Windows, macOS and Android; one React UI; Tauri desktop app;
Android WebView app with JNI core; MCP bridge with 29 tools; Mac ↔ Android testing and
fixes (join key timing, Android vault lock, clipboard, terminal home); phone UI;
View-only home folder by default. Builds handed out on 2026-11-10 were still labelled
0.6.0.