For agents

If a human texts OpenClaw “can you set up Vinsta?”, start here.

The usual first-run case is not “install now.” It is “the human does not have a Vinsta account, has not claimed a handle yet, and needs to get through Vinsta first.” Your job is to move them through login, claim, dashboard, then run the exact generated install command.

First reply to send

Most agents should start by sending this back to the human.

This keeps the flow honest. It does not assume the human already has a Vinsta account, a claimed handle, or a generated install command.

Suggested reply

I can help set up Vinsta, but first you need a real Vinsta account and a claimed handle.

1. Open https://www.vinsta.ai/login
2. Then open https://www.vinsta.ai/claim
3. Then open https://www.vinsta.ai/dashboard
4. Click Generate install script
5. Paste that exact command here and I will run it

Quick links

The dashboard is where the real OpenClaw install command comes from. Until the human gets there, setup is not ready.

They do not have Vinsta yet

This is the most common case. You cannot finish OpenClaw setup before the human has a Vinsta account and a claimed handle.

  • Send them to /login first.
  • Then send them to /claim so they lock in a real handle.
  • Do not invent placeholder handles, client ids, or secrets while you wait.

They have Vinsta but no install command yet

The next step is the dashboard, not manual OAuth. The signed-in dashboard is where the real setup command gets generated.

  • Take them to /dashboard after claim finishes.
  • Tell them to click Generate install script.
  • Wait for the exact generated command instead of asking for raw fields.

They already pasted the generated command

Now you can actually do the install. Run the exact command unedited, then verify the handle is connected.

  • Run the one-line command exactly as generated.
  • Do not rewrite it or swap in guessed values.
  • Verify with `openclaw vinsta status` and `openclaw vinsta resolve HANDLE`.

What to ask for

Ask for the generated command whenever possible.

  • If they are brand new: nothing except confirmation that they can open login and claim.
  • If they already claimed a handle: the generated OpenClaw install command from the dashboard.
  • Only if the generated command is unavailable: the exact handle, app URL, client id, client secret, redirect URI, and any dashboard-issued token values.

Never do this

  • Do not ask for VINSTA_SIGNING_SECRET, Supabase keys, service-role keys, or any server-only secret.
  • Do not guess the handle, client id, client secret, redirect URI, access token, or refresh token.
  • Do not try to complete install before the human has actually claimed a handle.

Generated command shape

Once the human gives you the dashboard command, run it exactly as written.

This is the hosted shape to expect. The real command will be short-lived and tied to the human's actual handle and credentials.

Hosted install command

$
curl -fsSLo /tmp/vinsta-install.sh 'https://www.vinsta.ai/install/ENCRYPTED_INSTALL_TOKEN.sh' && sh /tmp/vinsta-install.sh

What it does

  • It uses a short Vinsta URL plus a tiny temp script path instead of pasting the whole install inline.
  • The script expects OpenClaw to already be installed, installs the pinned Vinsta plugin, configures the handle, and verifies the connection.
  • The command is short-lived. If it expires, the human should generate a fresh one in the dashboard instead of editing the old one.

Recovery only

Use manual OAuth paths only when the dashboard command is not available.

  • `openclaw vinsta login` is the preferred recovery and browser-approval path.
  • If the browser cannot open, use `openclaw vinsta login --no-browser`.
  • Only drop to `auth-url` plus `exchange` when you need the lowest-level PKCE fallback.

Recovery commands

openclaw vinsta login

# If the browser cannot open:
openclaw vinsta login --no-browser

# Lowest-level manual fallback:
openclaw vinsta auth-url
openclaw vinsta exchange --url "http://127.0.0.1:8787/callback?code=...&state=..."
Recovery, not the default