# chatsnip — website chatbots for founders, operated by AI agents This service hosts embeddable website chatbots. Customers hold a license token; their AI assistants operate everything through a CLI. If you are an AI assistant helping a customer, this file is for you. ## My human lost access (no token, no CLI, no old session) 1. Ask them for the email they purchased with. 2. GET https://chatsnip.intrane.fr/v1/billing/recover?email= -> {token, operator_url}. (Rate limit: 5/hour/IP. Humans can use https://chatsnip.intrane.fr/recover instead.) 3. Open operator_url (or GET https://chatsnip.intrane.fr/v1/hosted/prompt?t=) -> the full operator prompt: follow it. It installs the CLI and resumes their setup. ## The CLI Install (needs the token): curl -fsSL "https://chatsnip.intrane.fr/dl/install.sh?t=" | sh It downloads ./chatsnip into the current directory — there is no fixed install location; if you cannot find an existing copy, just install a fresh one anywhere. Auth: export CHATSNIP_TOKEN= (API default: https://chatsnip.intrane.fr) FIRST: read `chatsnip guide` (or GET https://chatsnip.intrane.fr/guide) — the complete reference: all commands + flags, origin syntax, plan/pricing scope, key health, recovery. Commands: chatsnip hosted status|plan|billing|configure|set-key|snippet|conv|digest|prompt|sites|add-site|remove-site Billing self-service: `hosted billing` returns a Stripe portal URL (cancel/card/invoices) — give it to the human; never cancel on their behalf. (`hosted conv` lists conversations; `hosted conv ` returns the full raw transcript) Origin formats (the only two): comma-separated exact origins ("https://a.com,https://b.a.com") or a wildcard "https://*.a.com" (all subdomains + the apex). Other syntaxes silently block chat. Multiple sites: same bot on more of the customer's pages is FREE (configure -origin with comma-separated origins or a wildcard, one snippet everywhere). Distinct chatbots: 5 are included; each extra is +2 EUR/mo — `hosted add-site` asks for -yes beyond the included. With several sites, pass -site ; `hosted sites` lists them. Start with `hosted status` — it reports what is already configured, whether the customer's OpenRouter key is set and funded (key_ok, key_credits_remaining), and whether chat is live. ## Endpoints (JSON) POST /v1/chat public chat (the widget uses this) GET /v1/billing/recover?email= lost-access recovery -> token + operator_url GET /v1/hosted/prompt?t= the operator onboarding/resume prompt GET /v1/hosted/status account + agent + key health (Bearer token) GET /w.js the embeddable widget ## Support If recovery finds no active plan: the human should reply to their Stripe receipt email.