1:"$Sreact.fragment"
2:T4b9,iPhone build 26 and later automatically records recognized text, including ordinary dictation, matched command phrases, routing decisions, errors, timings, and app versions on your paired host while you use voice input. Logging does not enable the microphone and no audio is included. You can turn voice history off in the command guide; that choice stays off across restarts and computer changes. Otherwise logging resumes when connected. The phone keeps up to 200 pending events in memory for up to 24 hours; turning logging off, changing computers, or quitting discards them. The host keeps the latest 1,000 events for up to 7 days, pruning while running and when next accessed. Review, export, or delete these records in Voice diagnostics in the Mac app. Exports contain transcripts. These records are separate from safe connection diagnostics and are not sent to a central analytics service. In the signed-in Mac app, voice history belongs to the current Handsfree account and its paired devices. Other Handsfree accounts cannot access it, and there is no global administrator view of everyone’s utterances. Signing out clears pending phone events; stored history stays in that account’s Mac storage.16:X
1b:X
1b:C
0:{"buildId":"wz0A9YF1IYMhihIBq8BL7","data":[{"rsc":["$","$1","c",{"children":[["$","main",null,{"className":"legal-page","children":[["$","a",null,{"href":"/","className":"legal-home","children":[["$","svg",null,{"xmlns":"http://www.w3.org/2000/svg","width":16,"height":16,"viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":2,"strokeLinecap":"round","strokeLinejoin":"round","className":"lucide lucide-arrow-left","aria-hidden":"true","children":[["$","path","1l729n",{"d":"m12 19-7-7 7-7"}],["$","path","x3x0zl",{"d":"M19 12H5"}],"$undefined"]}],"Back to Handsfree"]}],["$","h1",null,{"children":"Your work has a home."}],["$","p",null,{"className":"lede","children":"Handsfree connects directly to the computer you pair. Here’s where your information goes."}],["$","h2",null,{"children":"Voice and conversations"}],["$","p",null,{"children":"The installed iPhone app transcribes microphone audio on device using Apple’s Speech framework and requires on-device English recognition. It sends only recognized text to your paired host and speaks returned text using the iPhone voice. There is no host or Apple-server audio fallback in this native flow. The browser companion uses a different path: it sends completed recordings to the host for transcription and can receive host-generated reply audio. Your host sends transcripts, project context and agent messages to its configured AI provider."}],["$","p",null,{"children":"The Mac app, headless Linux app, and updated iPhone app use a Handsfree account. Older command-line hosts remain available through explicit legacy pairing. Conversations are not stored in a central Handsfree database. This does not mean your information never leaves your network: the host’s provider configuration determines where agent inference happens. Browser speech also depends on the host’s configured speech providers."}],["$","h2",null,{"children":"Voice diagnostics"}],["$","p",null,{"children":"$2"}],["$","h2",null,{"children":"Accounts and setup"}],["$","p",null,{"children":"Account sign-in is provided by Clerk in your system browser. This internal release uses Clerk Development. Clerk processes your account email, profile, and authentication information. Handsfree receives your account identifier and basic profile; sign-in tokens use macOS Keychain-backed storage, iOS Keychain, or a passphrase-encrypted Linux vault. New hosts verify your Clerk identity during phone pairing; your OAuth access token is sent over HTTPS to your chosen host and then to Clerk for this check. Signing out removes local account tokens and attempts remote OAuth revocation. Host sign-out stops that host; iPhone sign-out stops local listening and connections but does not stop agent work already submitted. It does not delete the Clerk account or revoke every paired host credential. Revoke a lost phone from each host."}],"$L3","$L4","$L5","$L6","$L7","$L8","$L9","$La","$Lb","$Lc","$Ld","$Le","$Lf","$L10","$L11","$L12","$L13"]}],null,"$L14"]}],"isPartial":"$@15","staleTime":"$16","varyParams":null},{"rsc":"$L17","isPartial":"$@18","staleTime":"$16","varyParams":null},{"rsc":"$L19","isPartial":"$@1a","staleTime":"$16","varyParams":"$1b"},{"rsc":"$L1c","isPartial":"$@1d","staleTime":"$16","varyParams":null}],"isUpgradeableISRFallback":false,"a":"$@1e","rootVaryParams":null,"needsRuntimeRequest":"$@1f"}
20:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"OutletBoundary"]
21:"$Sreact.suspense"
23:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"ViewportBoundary"]
24:I[97367,["/_next/static/chunks/3fntmmi971322.js"],"MetadataBoundary"]
25:I[27201,["/_next/static/chunks/3fntmmi971322.js"],"IconMark"]
26:I[39756,["/_next/static/chunks/3fntmmi971322.js"],"default"]
27:I[37457,["/_next/static/chunks/3fntmmi971322.js"],"default"]
:HL["/_next/static/chunks/2cpy3hkr8pdlx.css","style"]
3:["$","p",null,{"children":"Project discovery reads local folder and Git metadata; it does not upload your project list to Clerk. Your selected projects and setup preferences are saved locally. Tailscale provides the private connection under its own account and policies. Coding-agent sign-in remains with each provider on the host; Handsfree does not copy provider credentials into Clerk."}]
4:["$","h2",null,{"children":"Camera and pairing"}]
5:["$","p",null,{"children":"The camera opens only when you choose to scan your computer’s connection code. QR images are processed on your device; camera frames are not saved or uploaded. The decoded address and one-use code are used to pair directly with your host. You can enter those details manually instead."}]
6:["$","h2",null,{"children":"What stays on your device"}]
7:["$","p",null,{"children":"The iPhone app keeps saved host details and its revocable device credentials locally. Credentials are stored in iOS Keychain and are not exposed to the web interface. The browser companion keeps its pairing credential in memory for the current page session. Provider API keys belong on the host. The delivery log keeps up to 200 confirmed-delivery timestamps and their host/session identifiers in local interface storage. It contains no message text or credentials and is not uploaded by the app."}]
8:["$","p",null,{"children":"The interface displays a bounded conversation snapshot. Audio is captured for the active voice interaction; this client does not create a permanent library of raw microphone recordings. The host and configured providers have their own processing and retention behavior."}]
9:["$","h2",null,{"children":"What stays on your host"}]
a:["$","p",null,{"children":"Your host manages project files, session history, queued commands, request identifiers, device authorizations, and event history used for reconnection. Agent work may read or change files and call external services according to the host’s configuration. Review those permissions before using unattended execution."}]
b:["$","h2",null,{"children":"Recording controls"}]
c:["$","p",null,{"children":"Microphone use starts with your action. Use Pause listening to stop listening, or end and send a single recording with Finish recording. Done for now stops capture and playback; an unfinished single recording and pending local recognition are discarded. Native iPhone listening stops when the app enters the background. It keeps the screen awake during active voice use. The browser companion pauses listening when the page is hidden. Force-quitting the app does not promise automatic listening restart."}]
d:["$","p",null,{"children":"You can revoke Microphone and Speech Recognition permissions in iOS Settings, or microphone permission through your browser settings. This version does not request location access, add advertising trackers, or require third-party analytics."}]
e:["$","h2",null,{"children":"Deletion and access"}]
f:["$","p",null,{"children":"Deleting a session requests its removal from the host. It does not undo agent changes to project files or erase records held by external providers. Forgetting a host removes the app’s saved pairing; the host operator should revoke the corresponding credential if device access must be terminated."}]
10:["$","p",null,{"children":"For data access or deletion involving a host, contact that host’s operator. For configured AI and speech services, consult those providers’ privacy and retention policies. Developer support details are provided with your distributed build or repository. For deletion of a Handsfree account held by Clerk, contact the beta administrator who supplied your build; self-service account deletion is not yet in this preview."}]
11:["$","h2",null,{"children":"About this notice"}]
12:["$","p",null,{"children":"This notice describes the current developer beta, version 1.0. Hosting or distributing a companion website may create ordinary infrastructure access logs subject to that deployment’s policies. The app does not automatically upload conversations to a Handsfree-operated cloud backend."}]
13:["$","footer",null,{"children":[["$","a",null,{"href":"/support/","children":"Support"}],["$","a",null,{"href":"/","children":"Open Handsfree"}],"Last updated September 8, 2026"]}]
14:["$","$L20",null,{"children":["$","$21",null,{"name":"Next.MetadataOutlet","children":"$@22"}]}]
17:["$","$1","h",{"children":[null,["$","$L23",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1, viewport-fit=cover"}],["$","meta","2",{"name":"theme-color","content":"#f7f8f5"}]]}],["$","div",null,{"hidden":true,"children":["$","$L24",null,{"children":["$","$21",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"Handsfree — A little less screen."}],["$","meta","1",{"name":"description","content":"A voice companion for Claude Code. Connect to your own computer, start a session, and keep your ideas moving."}],["$","meta","2",{"name":"application-name","content":"Handsfree"}],["$","link","3",{"rel":"icon","href":"/icon.svg"}],["$","link","4",{"rel":"apple-touch-icon","href":"/icon.svg"}],["$","$L25","5",{}]]}]}]}],null]}]
19:["$","$1","c",{"children":[null,["$","$L26",null,{"parallelRouterKey":"children","template":["$","$L27",null,{}]}]]}]
1c:["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/chunks/2cpy3hkr8pdlx.css","precedence":"next"}],["$","script","script-0",{"src":"/_next/static/chunks/3fntmmi971322.js","async":true}]],["$","html",null,{"lang":"en","children":["$","body",null,{"children":["$","$L26",null,{"parallelRouterKey":"children","template":["$","$L27",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]]}]
22:null
1f:true
16:300
16:C
1e:0
18:"$undefined"
1a:"$undefined"
1d:"$undefined"
15:"$undefined"
