<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>App Linker on aitasks</title><link>https://www.aitasks.io/docs/tuis/applink/</link><description>Recent content in App Linker on aitasks</description><generator>Hugo</generator><language>en</language><atom:link href="https://www.aitasks.io/docs/tuis/applink/index.xml" rel="self" type="application/rss+xml"/><item><title>How-To Guides</title><link>https://www.aitasks.io/docs/tuis/applink/how-to/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/applink/how-to/</guid><description>&lt;h2 id="pair-a-mobile-device"&gt;Pair a mobile device&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;Run &lt;code&gt;ait applink&lt;/code&gt; on the host that holds your aitasks workspace.&lt;/li&gt;
&lt;li&gt;The Pairing screen shows a QR code and the underlying &lt;code&gt;applink://&lt;/code&gt; URI.&lt;/li&gt;
&lt;li&gt;Open the companion app on your phone (separate
&lt;code&gt;aitasks_mobile&lt;/code&gt; repo) and tap &lt;strong&gt;Scan QR&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;The companion app decodes the URI and (once the transport lands) opens a
TLS WebSocket back to the host using the pinned certificate fingerprint.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id="regenerate-the-token"&gt;Regenerate the token&lt;/h2&gt;
&lt;p&gt;Press &lt;strong&gt;r&lt;/strong&gt; on the Pairing screen. A new 256-bit token is drawn and the QR
re-renders in place. Any previously issued &lt;em&gt;unused&lt;/em&gt; QR becomes invalid
immediately — but devices that have already paired keep their long-lived
bearer and stay connected. Regenerate is safe to use mid-session.&lt;/p&gt;</description></item><item><title>Reference</title><link>https://www.aitasks.io/docs/tuis/applink/reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://www.aitasks.io/docs/tuis/applink/reference/</guid><description>&lt;h2 id="keybindings"&gt;Keybindings&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;Key&lt;/th&gt;
 &lt;th&gt;Action&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;r&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Regenerate the pairing token (Pairing screen)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;s&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show the Status screen (from Pairing)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;p&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Show the Pairing screen (from Status)&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;j&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Open the TUI switcher modal&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;q&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;Quit&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="screens"&gt;Screens&lt;/h2&gt;
&lt;h3 id="pairing"&gt;Pairing&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Generates a one-time 256-bit token via &lt;code&gt;secrets.token_urlsafe(32)&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Detects the LAN IPv4 and builds the URI per
&lt;code&gt;aidocs/applink/protocol.md&lt;/code&gt; §Pairing flow.&lt;/li&gt;
&lt;li&gt;Renders the URI as a QR code using &lt;code&gt;segno&lt;/code&gt;, displayed with half-block
Unicode for compact terminal output. The raw URI is not shown on screen
to avoid leaking the pairing token to bystanders.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="regenerate-semantics"&gt;Regenerate semantics&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;r&lt;/code&gt; rotates only the &lt;em&gt;unused&lt;/em&gt; pairing token. Devices that have already
paired carry their long-lived bearer and keep their connection IDs across
a regenerate action.&lt;/p&gt;</description></item></channel></rss>