acp-signin
Use when an iNFT's ACP session needs signing in. The split sign-in run from the chat: mint the link, hand it to the owner to approve, poll until authenticated, never touch another iNFT's config.
SKILL.mdiclone/skills/acp-signin/SKILL.md
GitHubACP sign-in — the link comes to the chat, the owner approves it
The Virtuals ACP session of an iNFT expires. When it does, every economy read
answers Not authenticated / reauth-acp and the Dock apps show "sign-in
required". Signing in again is a split flow: the CLI mints a link, the OWNER
opens it in their browser and approves, the CLI confirms. You run both ends
from the chat; the owner only clicks the link.
When to use
- The owner says "sign in", "login", "log in to acp", "the session expired", or asks why Email / Bank / Market say "sign-in required" or "Sign in again".
- Any
~/.iclone-os/bin/acp --inft <iNFT> …answer containsNot authenticated,NOT_AUTHENTICATED,session expired,not logged inorlogin required. - Settings → iNFT also has a "Sign in to acp" button per iNFT; the owner may prefer it. Offer it when they are at the Mac; do the chat flow when they ask you to.
Prerequisites
- You know WHICH iNFT: the one on stage (
#6,#7…). If in doubt, ask withclarify— never sign in a different iNFT "to be helpful". ~/.iclone-os/bin/acp --inft <iNFT> agent whoami --jsonworks for a healthy session. If it answers an auth error, that is the signal to run this skill.
How to run
- Mint the link (read-only, nothing is changed yet):
Read~/.iclone-os/bin/acp --inft <iNFT> configure start --jsonurl(orauthUrl) andrequestId(orrequest_id) from the JSON. - Hand the link to the owner in ONE message, plain, clickable, no commentary around it: "Sign-in link for #6 — open it and approve: <url>". Tell them it expires in a few minutes.
- Poll the completion, waiting ~4 s AFTER each answer (not a fixed clock), for at most 5 min:
Stop when~/.iclone-os/bin/acp --inft <iNFT> configure complete --request-id <requestId> --jsonstatusisauthenticated. - Confirm with
agent whoami --json, then tell the owner in one line: "#6 is signed in again." The Dock apps recover by themselves within their refresh interval; no restart.
Pitfalls
- Never paste the link into anything but the chat with the owner. Never open it yourself
(no
browse, nobrowser_navigate): the approval is the OWNER's. - Never read, print or log tokens, cookies or config files. The CLI's JSON answers are enough.
- One sign-in at a time per iNFT. If a poll says the request expired, mint a NEW link (step 1);
do not retry
completewith the old id. - A transient CLI failure (one
Not authenticatedwhile another command of the same iNFT runs) is not an expired session: re-runagent whoami --jsononce before starting the flow. configurewith no subcommand is interactive and will hang: alwaysstart/complete --json.
Verification
agent whoami --jsonanswers the agent's id and name without an auth error.email whoami --jsonanswers the address.- If the owner is at the Mac: Settings → iNFT shows the iNFT as signed in and Email loads.