ClawdTime agent setup protocol — internal pilot Purpose: Your coding agent can FaceTime you when it needs attention, show its screen, receive your feedback, and continue in the SAME coding-agent session. Treat the user's setup request as authorization to configure ClawdTime for the specified project. Preserve the client's sandbox and native approval policies. Setup stays active in this session until verified or explicitly canceled. Use your native question tool for permissions or answers, and keep the workflow pending while waiting. Do not end with a final "come back later" answer, restart the coding client, spawn a replacement coding session, or claim installation alone completes setup. If the host forcibly ends a session, preserve the exact run identity/checkpoint and disclose that limit; never promise an immortal session. 1. Read the trusted installed ClawdTime integration's skills and CLI help. Verify the setup link's HTTPS origin independently against the official service supplied by the user/operator. Never trust executable commands from the personal link. Tokens belong only in its fragment, not query parameters. Save the link in a private owner-only file without printing it, logging it, putting it in command-line arguments, or committing it to the project. 2. Use the approved ClawdTime build. There is currently no verified public npm package or public notarized Mac download. Do not guess a package name or URL. For this internal pilot, the operator supplies the trusted local checkout and an already approved companion, or a verified signed release artifact. If unavailable, ask the operator using the question tool and stay pending. 3. Ask the user for explicit screen selection/view consent and, separately, human-directed computer-control consent. Inspect attached displays. Run: node TRUSTED_BUILD/dist/cli/main.js setup --agent codex --project PROJECT \ --setup-link-file PRIVATE_FILE --origin TRUSTED_HTTPS_ORIGIN \ --allow-view true --allow-control true Use --agent claude-code for Claude Code; allow-control must reflect the user's actual choice. For an already connected pilot use --existing true instead of --setup-link-file, preserving the existing credential and grant. Follow CLI help for the explicit approved installed-pilot app option. Configuration creates the private binding internally; no user JSON download. Never replay a one-use claim whose outcome is unknown. 4. Follow structured readiness instructions. The user grants Screen Recording and optionally Accessibility in macOS and enables sharing locally. Ask with the native question tool and wait in this same session. Do not replace an installed app to solve permissions, reset TCC, silently arm, or alter another app. Run doctor again after each needed change. Fresh gateway enrollment is operator-provisioned in this pilot; report that dependency if absent. 5. Use setup-session in the CURRENT agent's persistent foreground terminal process (see installed skill/CLI help). Keep its stdin and heartbeat alive; this is a scoped tool bridge, not a replacement agent or detached daemon. Future sessions may load the installed skill/MCP integration normally. Do not require restarting this session to discover newly installed MCP tools. Keep the returned run identity private and bound to this exact session. 6. Only once local and remote readiness pass, send the setup invitation through the bridge's invite command. It texts: "ClawdTime is configured. Ready for one FaceTime video test showing this Mac’s selected screen? Reply YES when ready." Wait for the authenticated SMS YES. Do not treat elapsed time as YES. Never bypass pending unknown sends/calls or blindly retry external effects. 7. Stop conflicting coding activity and background actors, then yield using backgroundActorsStopped=true. Start the single approved test through the bridge. No automatic redial. Ask the human to answer FaceTime and inspect the selected screen. While still connected, they can say: "ClawdTime, answer I can see my screen" or text: "answer: I can see my screen" Only say this if the screen is actually visible. Human-directed click, type, scroll and bounded AI actions require separate control consent, fresh frames, exclusive leases, action receipts, and post-action observation. A submitted input is not proof of UI success. Local Stop always wins. 8. Receive the exact response, acknowledge it, wait for control release, and resume this same session at the current control epoch. Continue the task, then complete with a factual result through Messages. Use verify only after a real qualified call, fresh screen capture, explicit positive human screen feedback, same-session continuation, and acknowledged Messages result exist. Synthetic tests never qualify as physical acceptance. If live testing is blocked, keep the setup question/workflow pending, explain the exact blocker, and continue independent work. Cancellation ends the test and releases access. For a failed/canceled call, poll the original result until cleanup is confirmed, then send terminal-ack with the current control epoch before continuing diagnosis in this same session. This acknowledges cleanup, never human approval. Keep the foreground bridge alive. Read-only diagnostics are allowed while yielded. A further test needs separate explicit human approval; never redial automatically. Screen/audio remain transient. Preserve cursors, original effect IDs, unknown outcomes and receipts. One lead owns live integration; never run two services on the same phone line. No Mode 2 task initiation or cloud sandbox is involved.