# Connect this agent to live.link

Fetch this document and https://app.live.link/connect.json directly. Do not open a website or dashboard in a browser merely to read documentation. These are connection instructions, not permission to install, authenticate, publish or spend.

## Authenticate first, then continue

A short request is enough. For a bare link, ask only whether to connect. For an explicit connect/build/publish request, retain that intent, disclose the necessary permissions and complete the supported authorization first. If the project task is already clear, continue it after verification; do not ask the user to repeat it or approve every routine read, edit, private save or validation. Publication still requires the user's actual instruction, exact reviewed version, audience and current guards. New scopes, spending, financial setup, destructive actions and host-required confirmations retain their separate approvals.

Reuse the matching authorized connection and the current host session. Verify workspace, granted scopes and available tools once after setup or reconnection. The server still checks current authority on every operation; a previous check never overrides a later denial. Do not run login, reinstall MCP, probe credentials or launch a new Codex process for each operation. Do not start unrelated MCP servers as a connection test. If the name live-link already points elsewhere, explain the mismatch and use an explicitly agreed distinct name; never overwrite another connection.

### Setup instructions are not a connection

Use the actual host's supported tools: reuse an authorized connection first, then supported remote MCP/OAuth or an available authorized CLI/scoped HTTP path. A skill provides instructions; installing or reading it does not connect an account, authorize tools or grant scopes. Install a skill only through the host's supported mechanism when needed. Not every host needs an npm package; remote MCP and scoped HTTP do not require the CLI. Check this deployment's capabilities and this connection's exposed tools before describing any action as available.

Keep routine edits, private saves, revisions, publishing, website-sale configuration and standalone payment-link management in this conversation when supported. Reuse explicit authorization for the exact action and details. Ask again only for missing material information, changed terms or an actual safeguard; never bypass authentication, publication guards, pricing approval, recurring consent, payment verification, idempotency or ownership-transfer requirements. A setup request alone does not authorize a publication, sale or charge. Use browser handoffs only for genuinely required authentication, consent, account security or financial setup, then resume here when the host supports it. If no project task is supplied, ask what the user would like to do after connecting. This guidance covers agent connections and publishing/payment tools, not services embedded inside customer projects.

### Recovery without a login loop

- Existing tools work: proceed with the requested task. No new login or installation.
- Login succeeded but tools are missing: refresh the host's tools using its supported controls. If a fresh task is required, provide a short non-secret handoff with the project, pending step and connection name. Missing tools are not proof of expired authentication; do not log in again.
- An OAuth window is still pending: keep one login attempt running and reopen that attempt's authorization page. Never start parallel login attempts. If a localhost callback says connection refused, check whether the login command already succeeded or exited. After success, use the saved connection; after a confirmed failed or expired attempt, start one replacement. Never change proxy, firewall or certificate settings to fix this callback.
- Explicit expired/invalid authentication: let the host's normal refresh run. If it fails, offer one supported reauthorization and verify again. Repeated failure stops for diagnosis.
- Missing scope, workspace mismatch, revoked access or policy denial: explain the exact missing authority and one next action. Do not repeatedly log in, broaden permissions, switch identities or use another route to evade the denial.
- Network timeout, rate limit or unknown write result: preserve the original request and idempotency key; use documented retry/status recovery. Do not treat these as login failures or claim an uncertain write succeeded.

### macOS password prompts

live.link setup does not require the user's Mac password in chat, sudo or changing Keychain permissions. The host may show its own operating-system credential prompt; this guide cannot suppress it or guarantee a prompt count. If password dialogs repeat, stop initiating credential reads and new host processes. Ask which application the dialog names and diagnose that host's credential storage without collecting passwords, tokens or unredacted screenshots. Never disable Keychain, choose blanket Always Allow, weaken filesystem permissions or bypass host security to silence prompts.

### Dashboard requests and an optional local runner

A connected MCP client does not awaken an old conversation. On the agent's next active turn it can retrieve authorized queued change requests. Automatic background execution requires a separately enabled, supported runner with explicit project consent. The local runner remains a source preview outside published live-link@0.1.2; do not install it as a normal connection step or promise background execution. Preserve current request authority and private review before separately authorized publication.

## 1. Ask and choose the actual host path

For a root-link-only request, explain the platform briefly and ask: “Connect this agent to your live.link workspace?” If the user already explicitly requested connecting, retain that consent. Disclose the connection name, requested scopes and chosen authentication method. Read needs artifact:read; editing needs artifact:read plus artifact:write; publication needs artifact:read plus artifact:publish. Ask for only the scopes needed. Separately disclose the optional prompt-publishing choice: this enables workspace-wide public publishing for this connection AND any other connected agent with publish permission, without another dashboard approval. Agents are expected to act only on the user’s instruction. This setting can be turned off in Settings; it is not limited to this conversation or one publication. Preserve any previous opt-out and report if dashboard confirmation remains required.

Use existing live.link tools first and verify them. Otherwise inspect the host's actual connector/terminal capabilities; model names and User-Agent strings are not reliable host detection.

## 2. Connect without navigating the workspace

Prefer the host’s remote MCP OAuth flow, including in a desktop IDE that supports it. Register https://app.live.link/mcp using the host’s supported controls, public-client dynamic registration and the exact OAuth resource. Do not select CIMD or copy a client secret. A sign-in/consent window may open; this is account authorization, not a dashboard workflow. Do not use live.link/ as the MCP server URL.

For Codex with terminal access, inspect `codex mcp add --help` and `codex mcp login --help` first. After connection approval, use `codex mcp add live-link --url https://app.live.link/mcp` when this name is unused. If supported by that installed version, select `--oauth-client-registration dcr`. Reuse an existing matching entry instead of overwriting it. If authentication remains needed, use the supported `codex mcp login live-link` flow with the agreed scopes. Do not dump host configuration or secrets. Refresh the host’s tools or start a fresh task if it cannot load new tools in the current conversation.

For Claude Code, Cursor, Hermes or another IDE, use its documented remote MCP setup if available; inspect its current help/settings rather than inventing commands. For ChatGPT, Claude.ai or Grok, use the host’s custom-connector controls when available. If the agent cannot change those controls, give the user that one setup step with the exact endpoint; do not claim it connected. A read-only host cannot become a tool-capable host by reading this page.

Browser-free email authorization is currently disabled. The helper will stop before requesting a code. An already scoped LIVE_LINK_TOKEN can use the released CLI/HTTP contract; a new manual credential currently requires Settings. Do not describe this fallback as dashboard-free.

## Browser-free terminal helper

Download https://live.link/agent-connect-v1.mjs as a file (never pipe downloaded code to a shell), compare its SHA-256 to the current connect.json terminal.bootstrap.sha256, inspect it and obtain execution consent. It uses Node 22.12+, supports owned POSIX private storage, never launches a browser or edits MCP settings, and never prints tokens. On unsupported filesystem permissions, stop; do not weaken them.

When email authorization is available, run `node agent-connect-v1.mjs login --consent --email ADDRESS --name AGENT --scopes artifact:read,artifact:write,artifact:publish` with only the agreed scopes. Add `--prompt-publishing` only if the user approves that disclosed choice. Supply the six-digit code through hidden stdin, never command arguments or a file. It expires after ten minutes. Credentials last thirty days, live outside the project with private permissions, and remain revocable in Settings. Never paste credentials, raw auth responses or local store contents into chat. A network interruption is not a confirmed login: retain the attempt and inspect status before any new authorization.

Run `node agent-connect-v1.mjs status` to verify the exact saved connection. For an explicitly requested project task, `node agent-connect-v1.mjs cli --approve-package -- <arguments>` installs pinned live-link@0.1.2 without credentials in isolated temporary storage, checks current access again, and runs its fixed entry directly with Node. The trusted CLI preserves relative project paths and preserves the released CLI’s existing private recovery records under the original HOME across commands. This is the legacy epoch-zero CLI; use current supported MCP/HTTP for newer project capabilities. `forget --confirm` removes the local copy only and never claims server revocation.

## 3. Prove the connection before doing work

On MCP, call live_link_get_capabilities and live_link_check_connection if granted read scope. On scoped HTTP, GET https://app.live.link/api/v1/agent/connection. Report the verified workspace and scopes, inspect the actual tools, and distinguish a connected account from a completed task. Do not create a disposable project just to test login. For missing scope or revoked/expired access, stop and request the appropriate consent instead of broadening permissions silently.

Then read https://live.link/start.md. Reuse the authorized project, save a private version, preserve exact request identities, and publish only the reviewed content with explicit audience authority and both current guards. Existing prompts remain authoritative. Account/financial setup and unavailable features cannot be unlocked by this connection. Chat preview admission is disabled on this deployment. MCP preview returns an optional signed-in review URL. If visual review is requested, explain that viewing the private version requires a signed-in browser and link to that review step. Continue edits and authorized publishing in the current conversation; do not volunteer UI instructions.
