# Ground State Foundry: put an AI chat assistant on this website You are a coding agent. The person pasted this page because they want Ground State Foundry's chat assistant on their website. Everything is ONE command, Ground State Foundry's installer, run in the website's repo folder (Node 18+), after the person says yes. ## Do this 1. Ask the person, in one message, and wait for the answer: "To add the chat assistant I need to run Ground State Foundry's installer (npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz setup). OK? And which email should your Ground State Foundry account use?" If the website code does not clearly show the business name, add to that same message: "And what is the business name, exactly as visitors should see it?" (then pass it as --business ""). Run nothing until they say yes. If they say no, stop and tell them they can paste this page again any time. 2. After the yes, in the website repo folder, run this one command exactly (it takes 1–3 minutes; allow at least 10 minutes before a timeout): ``` npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz setup --api https://core.groundstatefoundry.com --brand gsf.1795649294.8podaU4On9amNfgY71EalaPmyP00gHtv --email ``` Keep `--api` and `--brand` as they are: they say which Ground State Foundry account service to use. If the site is running locally (a dev server, `php -S`, `python -m http.server`…), add `--url http://localhost:` so setup reads the pages exactly as visitors see them (any framework). Without it, setup reads the source files. 3. When it prints "We emailed a sign-in link", tell the person: "Open the email from Ground State Foundry, press the button, then 'Yes, sign me in' on the page it opens. Nothing to type." The command waits for that click, then by itself: reads the repo (name, pages, FAQs, prices), creates the account and the assistant, adds the widget to the right file, tests it and publishes it. If your shell stops it before the click: run the same setup command again (it keeps waiting; no new email). 4. Read the last lines it prints and act on them: - "DONE FOR NOW … working locally": finished. The chat bubble works now on the local dev site (localhost / 127.0.0.1). Tell the person: "Deploy your site as usual; the chat goes live by itself." Show them the "Assumed" list it printed. - "NEEDS INPUT": run the `do` command it shows (ask the person only for facts the repo does not have), then the same setup command again. - "error (…)": do what the error and its "next:" line say, then the same setup command again. ## Rules - Setup only adds the one-line widget snippet. Do not commit, push or deploy unless the person asks you to. - Never invent business facts (prices, timings, offers, tax ids, domains). Ask the person. - Never type card details anywhere. Payment is an emailed card link. ## Good to know - Free trial: 100 website chats; no card needed to go live. When 20% is left we email the person a card link (`npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz pay` re-sends it). - Local dev sites (localhost, 127.0.0.1, *.localhost, any port) always show the widget, with free test chats. They never need listing. - Going live: the first time the widget loads on the public site (after the person deploys), that domain is added and the chat is live. Domains: `npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz domains` shows them; `npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz domains set example.com` · `npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz domains remove example.com` · `npx -y https://my.groundstatefoundry.com/skill/cli/0.1.0-864ae39b.tgz domains clear`. Setup only takes a domain from the site's own config (CNAME, package.json homepage, canonical URL); if the "Assumed" list shows a domain that is not the person's, remove it. - Detected sites: Next.js (app or pages router), Vite / React, plain HTML, WordPress theme, Shopify theme. Anything else: setup prints the one `