sitegpt knowledge.
For step-by-step tasks, use the task pages:
- Agent-first onboarding
- Install and log in
- Authentication
- Chatbots
- Knowledge
- External data sources
- Customization
- Conversations
How to read this reference
- Tables list commands in the form you type them. Placeholders are in angle brackets, for example
<chatbot-id>. - Aliases are other names for the same command. They are listed in the description.
- A command shown with
--yesfails without it. See Output and exit codes. - Every command level has help, for example
sitegpt --help,sitegpt knowledge --help, orsitegpt settings appearance --help. - Use
--jsonwhen you need full IDs, cursors, nested data, or output for scripts.
Global options
You can use global options with any command.| Option | Description |
|---|---|
--json | Print JSON instead of tables and text. |
--profile <name> | Use a saved local profile for this command. Alias: -p <name>. |
--api-base <url> | Use a different SiteGPT API base URL for this command. |
-q, --quiet | Hide progress output. |
--debug | Print request tracing to stderr. Alias: --verbose. |
-h, --help | Show help for the current command level. |
-v, --version | Print the installed CLI version. |
| Variable | Description |
|---|---|
SITEGPT_API_TOKEN | Use this token for the current command. The CLI then ignores saved profiles. |
SITEGPT_API_BASE | Use this API base URL for the current command. |
SITEGPT_PROFILE | Use this profile when you do not pass --profile. |
NO_COLOR | Turn off colored output. |
XDG_CONFIG_HOME | Store profiles in $XDG_CONFIG_HOME/sitegpt/config.json. |
| Item | Behavior |
|---|---|
API base URL with SITEGPT_API_TOKEN | --api-base, else SITEGPT_API_BASE, else https://sitegpt.ai. |
| API base URL with a saved profile | --api-base and SITEGPT_API_BASE override the URL stored in the profile. |
<boolean> values | true, false, yes, no, on, off, 1, or 0. |
| Profile file | ~/.config/sitegpt/config.json, or $XDG_CONFIG_HOME/sitegpt/config.json when XDG_CONFIG_HOME is set. |
Output and exit codes
| Item | Behavior |
|---|---|
| Exit code | 0 when the command succeeds. 1 for every error. |
| JSON success | With --json, stdout gets { "ok": true, "data": { ... } }. |
| JSON error | With --json, stdout gets { "ok": false, "error": { "code", "message", "hint", "details" } }. hint and details appear only when set. API errors also add "meta": { "requestId" }. |
| Text error | Without --json, stderr gets CODE: message. API errors add (request <request-id>) to that line. A second line that starts with → gives a hint when one exists. |
| Progress messages | Go to stderr. --quiet and --json hide them. |
| Wrong flags or arguments | Error code INVALID_USAGE. |
| Unknown top-level command | Error code UNKNOWN_COMMAND. The message suggests a close name when one exists. |
Command shown with --yes | Fails without --yes. Error code CONFIRMATION_REQUIRED. |
Agent-first onboarding
For users who have no SiteGPT account yet, or who want to preview a chatbot before signup.onboarding start needs no login. The other commands need the temporary token that onboarding start returns. For the full flow, see Agent-first onboarding.
| Command | Description |
|---|---|
sitegpt onboarding start <website-url> | Create a temporary workspace and chatbot. No login needed. |
sitegpt onboarding status <workspace-id> | Show the workspace status, claim state, links, and setup checklist. |
sitegpt onboarding claim <workspace-id> | Start the claim for an email, plan, and billing interval. |
sitegpt onboarding delete <workspace-id> --yes | Delete an unclaimed workspace and revoke its temporary token. |
| Option | Applies to | Description |
|---|---|---|
--agent-name <name> | start | Name of the AI agent that creates the workspace. |
--agent-client-id <id> | start | Client ID of the AI agent. |
--email <email> | claim | Required. Email that will own the claimed account. |
--plan <plan> | claim | Required. STARTER, GROWTH, or SCALE. |
--interval <interval> | claim | Required. MONTH or YEAR. |
--yes | delete | Required. Confirms the delete. |
sitegpt onboarding start https://example.com --json
SITEGPT_API_TOKEN=<temporary-token> sitegpt onboarding status <workspace-id> --json
SITEGPT_API_TOKEN=<temporary-token> sitegpt onboarding claim <workspace-id> --email user@example.com --plan GROWTH --interval MONTH --json
SITEGPT_API_TOKEN=<temporary-token> sitegpt onboarding delete <workspace-id> --yes
Login
Login saves a token in a local profile and makes that profile the default. With no--profile, the profile is default. sitegpt login uses the OAuth device flow. For the flow, scopes, and access levels, see Authentication.
| Command | Description |
|---|---|
sitegpt login | Log in through the browser with standard CLI access. |
sitegpt login --full-access | Request every self-service scope that your dashboard role can issue. |
sitegpt login --scope <scope> | Request only the scopes you name. |
sitegpt login --chatbot <chatbot-id> | Limit the token to the chatbots you name. |
sitegpt login --token <token> | Save an existing token locally. No browser step. |
| Option | Description |
|---|---|
--profile <name> | Local profile to save the token in. |
--api-base <url> | API base URL. Production is https://sitegpt.ai. |
--name <name> | Token name shown in SiteGPT. Default: SiteGPT CLI (<profile>). |
--full-access | Request all allowed self-service scopes. Cannot be combined with --scope. |
--scope <scope> | One scope to request. Repeatable. |
--chatbot <chatbot-id> | Limit the token to this chatbot. Repeatable. |
--expires-in-days <1-365> | Token lifetime in days. Default: 90. |
--token <token> | Existing token to save. Cannot be combined with --full-access, --scope, --chatbot, --name, or --expires-in-days. |
sitegpt login
sitegpt login --profile support-agent
sitegpt login --full-access
sitegpt login --scope account:read --scope chatbots:read --scope knowledge:write
sitegpt login --chatbot <chatbot-id> --scope knowledge:read --scope knowledge:write
sitegpt login --profile <profile-name> --token <sitegpt-token>
--token. See Authentication.
Logout
Logout removes a local profile from your machine. It does not revoke the token in SiteGPT. To revoke it, usesitegpt tokens revoke <token-id>.
| Command | Description |
|---|---|
sitegpt logout | Delete the selected local profile, or the default one. |
sitegpt logout --profile <name> | Delete a named local profile. |
Whoami
| Command | Description |
|---|---|
sitegpt whoami | Show the current user, profile, and sign-in method. |
sitegpt whoami --json | Return the account details as JSON. |
Profiles
Profiles are named credentials saved on your machine.| Command | Description |
|---|---|
sitegpt profiles list | List saved profiles. sitegpt profiles does the same. |
sitegpt profiles show [profile] | Show a named profile, or the selected one. |
sitegpt profiles use <profile> | Make a profile the default. Alias: set-default. |
sitegpt profiles delete <profile> | Delete a local profile. Alias: remove. |
sitegpt profiles list
sitegpt profiles show default
sitegpt profiles use production
sitegpt -p support-agent whoami
sitegpt profiles delete local-test
API tokens
API tokens are scoped credentials for the CLI and AI agents. For the list of scopes, see Authentication.| Command | Description |
|---|---|
sitegpt tokens list | List active tokens. sitegpt tokens does the same. |
sitegpt tokens list --include-revoked | Include revoked tokens. |
sitegpt tokens create --name <name> --scope <scope> | Create a token. |
sitegpt tokens rotate <token-id> | Issue a new secret for a token and revoke the old secret. Alias: roll. |
sitegpt tokens revoke <token-id> | Revoke a token. Alias: delete. |
| Option | Applies to | Description |
|---|---|---|
--name <name> | create | Required. Token name. |
--scope <scope> | create | Required. Scope to grant. Repeatable. |
--chatbot <chatbot-id> | create | Limit the token to this chatbot. Repeatable. |
--expires-in-days <1-365> | create | Lifetime in days. Default: 90. |
--expires-at <iso-date> | create | Exact expiry date. Cannot be combined with --expires-in-days. |
--include-revoked | list | Also list revoked tokens. |
sitegpt tokens list --include-revoked --json
sitegpt tokens create --name "Knowledge agent" --scope account:read --scope chatbots:read --scope knowledge:write
sitegpt tokens create --name "One chatbot" --chatbot <chatbot-id> --scope knowledge:read --scope knowledge:write
sitegpt tokens rotate <token-id>
sitegpt tokens revoke <token-id>
The CLI shows new and rotated token secrets once. Save them before you close
the terminal.
Account
| Command | Description |
|---|---|
sitegpt account show | Show your account profile. sitegpt account does the same. |
sitegpt account update --name <name> | Change your account name. |
sitegpt account picture upload <path> | Upload a profile picture. Alias: add. |
sitegpt account picture delete --yes | Delete the profile picture. Alias: remove. |
sitegpt account show --json
sitegpt account update --name "Jane Doe"
sitegpt account picture upload ./avatar.png
Usage
| Command | Description |
|---|---|
sitegpt usage | Show used, quota, and remaining amounts in the current usage window. Covers chatbots, pages, normal messages, GPT-4 messages, and members. |
Limits
| Command | Description |
|---|---|
sitegpt limits | Show total, assigned, and available pages, messages, and members, and the amounts assigned to each chatbot. |
Billing
Billing commands only read data. They do not change your plan.| Command | Description |
|---|---|
sitegpt billing subscription | Show subscription details. |
sitegpt billing invoices | List invoices with number, status, billing date, amount, currency, and download URL when there is one. |
Chatbots
Most chatbot commands need--chatbot <chatbot-id>.
| Command | Description |
|---|---|
sitegpt chatbots list | List the chatbots you can access. sitegpt chatbots does the same. |
sitegpt chatbots get <chatbot-id> | Show one chatbot. |
sitegpt chatbots create <title> | Create a chatbot. You can also pass the title with --title. |
sitegpt chatbots update <chatbot-id> | Change the title, the description, or both. |
sitegpt chatbots delete <chatbot-id> --yes | Delete a chatbot. |
sitegpt chatbots transfer <chatbot-id> --email <email> | Give the chatbot to another user. SiteGPT creates an account for the recipient if they have none. |
| Option | Applies to | Description |
|---|---|---|
--title <title> | create, update | Chatbot title. |
--description <description> | create, update | Chatbot description. |
--email <email> | transfer | Email of the new owner. Pass this or --user-id. |
--user-id <user-id> | transfer | User ID of the new owner. |
--keep-source-as <role> | transfer | Keep the previous owner as a member with this role: AGENT, MANAGER, ADMIN, or SUPER_ADMIN. Default: the previous owner is removed. |
sitegpt chatbots create "Acme Support" --description "Answers Acme customer questions" --json
sitegpt chatbots update <chatbot-id> --title "Acme Help"
sitegpt chatbots delete <chatbot-id> --yes
sitegpt chatbots transfer <chatbot-id> --email new-owner@example.com --keep-source-as ADMIN
Dashboard summary
| Command | Description |
|---|---|
sitegpt dashboard --chatbot <chatbot-id> | Show the chatbot summary. Aliases: dashboard show, dashboard get. |
Engagement analytics
| Command | Description |
|---|---|
sitegpt analytics --chatbot <chatbot-id> | Show daily engagement, totals, and a comparison with the previous period. Aliases: analytics show, analytics get. |
| Option | Description |
|---|---|
--chatbot <chatbot-id> | Required. |
--start <YYYY-MM-DD> | First UTC day. Default: 29 days before --end. |
--end <YYYY-MM-DD> | Last UTC day. Default: today. |
| Rule | Behavior |
|---|---|
| Default range | The last 30 UTC days, including today. |
| Range limit | At most 366 days. --start cannot be after --end. Otherwise: VALIDATION_FAILED. |
| Plan | If the plan does not include analytics: ANALYTICS_LOCKED. See Plans and limits. |
| Daily fields | Widget opens, visitor and AI message counts, reactions, conversations started, unique visitors, escalations, leads, and unanswered turns. Insight counters appear only when insights is on. |
sitegpt analytics --chatbot <chatbot-id> --start 2026-08-01 --end 2026-08-19 --json
Installation
| Command | Description |
|---|---|
sitegpt installation snippet --chatbot <chatbot-id> | Show the chat URL, the widget script URL, and the embed code. |
Icons
| Command | Description |
|---|---|
sitegpt icons upload --chatbot <chatbot-id> <type> <image-path> | Upload a chatbot icon. Alias: add. |
sitegpt icons delete --chatbot <chatbot-id> <type> --yes | Delete a chatbot icon. Alias: remove. |
| Value | Allowed values |
|---|---|
<type> | bot, person, agent, watermark, chat-bubble |
| File extensions | png, jpg, jpeg, webp, gif, avif, svg |
sitegpt icons upload --chatbot <chatbot-id> bot ./bot.png
sitegpt icons upload --chatbot <chatbot-id> chat-bubble ./logo.png
sitegpt icons delete --chatbot <chatbot-id> watermark --yes
Knowledge documents
A document is one item of content that SiteGPT trained on, such as one page or one file.knowledge docs is an alias for knowledge documents.
| Command | Description |
|---|---|
sitegpt knowledge documents list --chatbot <chatbot-id> | List documents. |
sitegpt knowledge documents get --chatbot <chatbot-id> <document-id> | Show one document. |
sitegpt knowledge documents stats --chatbot <chatbot-id> | Show document counts. |
sitegpt knowledge documents edit --chatbot <chatbot-id> <document-id> | Replace the content of one document. Alias: update. |
sitegpt knowledge documents update-config --chatbot <chatbot-id> <document-id> | Change how SiteGPT reads and refreshes one or more documents. |
sitegpt knowledge documents resync --chatbot <chatbot-id> <document-id> | Resync one or more documents. |
sitegpt knowledge documents delete --chatbot <chatbot-id> <document-id> --yes | Delete one or more documents. Alias: remove. |
sitegpt knowledge wait --chatbot <chatbot-id> | Wait until no document is still training. |
| Option | Applies to | Description |
|---|---|---|
--query <text> | list, stats, resync, delete | Search documents. |
--source <source> | list, stats, resync, delete | Filter by source. Repeatable. |
--status <status> | list, stats, resync, delete | Filter by training status. Repeatable. |
--type <type> | list, stats, resync, delete | Filter by document type. Repeatable. |
--limit <1-100> | list | Results per page. Default: 50. |
--cursor <cursor> | list | Get the next page. |
--content | get | Include the document text when available. Alias: --include-content. |
--max-content-chars <1-500000> | get | Limit the length of the included text. |
--content <text> | edit | New document content. Pass this or --file. |
--file <path> | edit | Read the new content from a file. Cannot be combined with --content. |
--document <id> | update-config, resync, delete | Document ID. Repeatable. Alias: --document-id. |
--state <state> | resync, delete | Select by training state: all, trained, pending, failed. |
--all | resync, delete | Select all matching documents. |
--dry-run | delete | Print the selector that the command would send, then stop. It does not contact SiteGPT, does not list matches, and does not need --yes. |
--sync <frequency> | update-config | Refresh schedule for these documents: NEVER, DAILY, WEEKLY, MONTHLY. This is separate from the sync job of a source. Frequencies that the plan does not include are set to NEVER with a warning. |
--only-main-content <boolean> | update-config | Read only the main page content. |
--include-selector <selector> | update-config | CSS selector to include. Repeatable. |
--exclude-selector <selector> | update-config | CSS selector to exclude. Repeatable. |
--header "Name: value" | update-config | Request header. Repeatable. Allowed names: User-Agent, Accept, Accept-Language. |
--timeout <seconds> | wait | Longest time to wait. Default: 600. |
| Rule | Behavior |
|---|---|
Selecting documents for update-config | Pass IDs as arguments, with --document, or both. Also pass --sync or at least one read option. |
Selecting documents for resync and delete | Pass at least one selector: IDs, --document, --state, or --all. --query, --source, --status, and --type narrow the selection. |
--state with --status | Not allowed together. Error code DOCUMENT_STATUS_FILTER_CONFLICT. |
Plan and --sync | Frequencies that the plan does not include are set to NEVER with a warning. |
| Waiting | knowledge wait and the --wait option of the add commands check every 3 seconds. After the timeout, the command fails with TRAINING_TIMEOUT, and pending documents keep training. Failed documents do not make the command fail. The Training settled line reports how many failed. |
TEXT, URLS_LIST, YOUTUBE, SITEMAP, WEBSITE, LOCAL_FILE,
NOTION, GOOGLE_DRIVE, DROPBOX, ONEDRIVE, BOX, SHAREPOINT,
CONFLUENCE, GITHUB
--state group that each belongs to:
| State | Statuses |
|---|---|
trained | SUCCESS |
pending | BACKLOG, QUEUED, QUEUED_FOR_RESYNC, QUEUED_FOR_UPDATE, QUEUED_FOR_DELETION, PROCESSING |
failed | FAILED, CANCELLED, BLOCKED_BY_QUOTA |
all | Every status |
TEXT, URL, FILE, NOTION_DOCUMENT, GOOGLE_DRIVE_DOCUMENT,
DROPBOX_DOCUMENT, ONEDRIVE_DOCUMENT, BOX_DOCUMENT,
SHAREPOINT_DOCUMENT, CONFLUENCE_DOCUMENT, GITHUB_DOCUMENT
sitegpt knowledge documents list --chatbot <chatbot-id> --status FAILED --json
sitegpt knowledge documents get --chatbot <chatbot-id> <document-id> --content
sitegpt knowledge documents edit --chatbot <chatbot-id> <document-id> --file ./updated.md
sitegpt knowledge documents resync --chatbot <chatbot-id> --state failed
sitegpt knowledge documents delete --chatbot <chatbot-id> --document <document-id> --yes
Shared options for adding web pages
knowledge links add, knowledge website add, and knowledge sitemap add all accept these options.
| Option | Description |
|---|---|
--skip-existing | Skip pages that are already trained. |
--wait | Wait until training finishes before the command exits. |
--timeout <seconds> | With --wait, the longest time to wait. Default: 600. |
--only-main-content <boolean> | Read only the main page content. Default: true. |
--include-selector <selector> | CSS selector to include. Repeatable. |
--exclude-selector <selector> | CSS selector to exclude. Repeatable. |
--header "Name: value" | Request header. Repeatable. Allowed names: User-Agent, Accept, Accept-Language. |
Knowledge links
| Command | Description |
|---|---|
sitegpt knowledge links add --chatbot <chatbot-id> <url...> | Add exact URLs. Up to 1,000 URLs per command. |
| Option | Description |
|---|---|
--sync <frequency> | Accepted, but not scheduled for links. The response sets it to NEVER and adds a warning. To schedule refreshes for links you already added, run knowledge documents update-config --sync. To refresh them now, run knowledge documents resync. |
sitegpt knowledge links add --chatbot <chatbot-id> https://example.com/pricing https://example.com/docs --only-main-content true
Knowledge website
| Command | Description |
|---|---|
sitegpt knowledge website add --chatbot <chatbot-id> <url> | Crawl a website from a starting URL. |
| Option | Description |
|---|---|
--depth <1-5> | Maximum crawl depth. Default: 3. |
--max-links <1-1000> | Maximum URLs to queue. Default: 50. Your page quota can lower it. |
--include-path <path> | Path pattern to include. Repeatable. |
--exclude-path <path> | Path pattern to exclude. Repeatable. |
--allowed-domain <domain> | Domain the crawler may follow. Repeatable. |
--sync <frequency> | Crawl the website again on a schedule: NEVER, DAILY, WEEKLY, MONTHLY. Frequencies that the plan does not include are set to NEVER with a warning. |
sitegpt knowledge website add --chatbot <chatbot-id> https://docs.example.com --depth 3 --max-links 200 --include-path /docs
Knowledge sitemap
| Command | Description |
|---|---|
sitegpt knowledge sitemap add --chatbot <chatbot-id> <url> | Add the URLs in a sitemap. |
| Option | Description |
|---|---|
--max-links <1-1000> | Maximum URLs to queue. Default: 50. Your page quota can lower it. |
--include-path <path> | Path pattern to include. Repeatable. |
--exclude-path <path> | Path pattern to exclude. Repeatable. |
--sync <frequency> | Import the sitemap pages again on a schedule: NEVER, DAILY, WEEKLY, MONTHLY. |
--scan <frequency> | Scan the sitemap on a schedule: NEVER, DAILY, WEEKLY, MONTHLY. A scan adds new URLs and deletes pages whose URLs left the sitemap. |
NEVER with a warning. If sync and scan use the same frequency, only the sync runs on that schedule. See Keep your content up to date.
sitegpt knowledge sitemap add --chatbot <chatbot-id> https://example.com/sitemap.xml --sync MONTHLY --scan DAILY
Knowledge YouTube
| Command | Description |
|---|---|
sitegpt knowledge youtube add --chatbot <chatbot-id> <url...> | Add YouTube URLs. Up to 1,000 URLs per command. |
| Option | Description |
|---|---|
--sync <frequency> | Accepted, but videos do not auto-sync. The response sets it to NEVER and adds a warning. To refresh videos, run knowledge documents resync. |
| Accepted URL | Format |
|---|---|
| Video | youtube.com/watch?v=... or youtu.be/... |
| Playlist | youtube.com/playlist?list=... |
| Channel | youtube.com/channel/..., youtube.com/c/..., or youtube.com/@handle |
sitegpt knowledge youtube add --chatbot <chatbot-id> https://www.youtube.com/watch?v=...
Knowledge text
Each chatbot has one text snippet. These commands replace the whole snippet.| Command | Description |
|---|---|
sitegpt knowledge text add --chatbot <chatbot-id> <text> | Replace the text snippet with the text you type. Alias: update. |
sitegpt knowledge text add --chatbot <chatbot-id> --file <path> | Replace the text snippet with the content of a file. |
| Option | Description |
|---|---|
--name <name> | Document name. Up to 120 characters. |
--file <path> | Read the text from a local file. Cannot be combined with inline text. |
sitegpt knowledge text add --chatbot <chatbot-id> "Support hours: Monday to Friday, 9:00 to 17:00."
sitegpt knowledge text add --chatbot <chatbot-id> --name FAQ --file ./faq.md
Knowledge files
| Command | Description |
|---|---|
sitegpt knowledge files add --chatbot <chatbot-id> <file...> | Upload local files. Up to 10 files, 20 MB per file, and 50 MB in total per command. |
sitegpt knowledge files add --chatbot <chatbot-id> ./guide.pdf ./faq.docx
Knowledge sync jobs
A sync job holds the sync and scan schedule of a source. Auto-sync runs only for website, sitemap, and GitHub sources. Scan runs only for sitemap sources. The list hides jobs with both frequencies set toNEVER. knowledge jobs is an alias for knowledge sync-jobs.
| Command | Description |
|---|---|
sitegpt knowledge sync-jobs list --chatbot <chatbot-id> | List sync jobs. |
sitegpt knowledge sync-jobs get --chatbot <chatbot-id> <job-id> | Show one sync job. |
sitegpt knowledge sync-jobs update --chatbot <chatbot-id> <job-id> | Change the sync frequency, the scan frequency, or both. |
sitegpt knowledge sync-jobs scan --chatbot <chatbot-id> <job-id> | Scan a sitemap now. Sitemap jobs only. Works even when the scan frequency is NEVER. |
sitegpt knowledge sync-jobs delete --chatbot <chatbot-id> <job-id> --yes | Disable the job. Sets both frequencies to NEVER. Trained pages stay. Alias: disable. |
| Option | Applies to | Description |
|---|---|---|
--source <source> | list | Filter by source: SITEMAP, WEBSITE, GITHUB. Repeatable. |
--sync <frequency> | list | Filter by sync frequency: DAILY, WEEKLY, MONTHLY. Repeatable. Alias: --sync-frequency. |
--scan <frequency> | list | Filter by scan frequency: NEVER, DAILY, WEEKLY, MONTHLY. Repeatable. Alias: --scan-frequency. |
--limit <1-100> | list | Results per page. Default: 50. |
--cursor <cursor> | list | Get the next page. |
--sync <frequency> | update | Set the sync frequency: DAILY, WEEKLY, MONTHLY. Sitemap, website, and GitHub jobs only. Otherwise: SYNC_FREQUENCY_UNSUPPORTED_SOURCE. NEVER is refused with SYNC_JOB_DELETE_REQUIRED. To stop auto-sync, run sync-jobs delete. |
--scan <frequency> | update | Set the scan frequency: NEVER, DAILY, WEEKLY, MONTHLY. Only sitemap jobs accept a value other than NEVER. Otherwise: SCAN_FREQUENCY_UNSUPPORTED_SOURCE. |
update needs --sync, --scan, or both.
sitegpt knowledge sync-jobs list --chatbot <chatbot-id>
sitegpt knowledge sync-jobs update --chatbot <chatbot-id> <job-id> --sync MONTHLY
sitegpt knowledge sync-jobs scan --chatbot <chatbot-id> <job-id>
sitegpt knowledge sync-jobs delete --chatbot <chatbot-id> <job-id> --yes
External data sources
Connect apps such as Google Drive or Notion, and ingest the files you select.knowledge connections is an alias for knowledge sources. For the steps, see External data sources.
| Command | Description |
|---|---|
sitegpt knowledge sources list --chatbot <chatbot-id> | List source connections. |
sitegpt knowledge sources create --chatbot <chatbot-id> | Create a source connection. Alias: add. |
sitegpt knowledge sources get --chatbot <chatbot-id> <source-id> | Show one source. |
sitegpt knowledge sources update --chatbot <chatbot-id> <source-id> | Change the source name, credentials, or redirect URL. |
sitegpt knowledge sources authorize --chatbot <chatbot-id> <source-id> | Authorize the app, or pick more files. Aliases: reauthorize, select-files, picker. |
sitegpt knowledge sources documents --chatbot <chatbot-id> <source-id> | List the selected files. Alias: docs. |
sitegpt knowledge sources ingest --chatbot <chatbot-id> <source-id> | Ingest the selected files. |
sitegpt knowledge sources revoke --chatbot <chatbot-id> <source-id> --yes | Revoke a source connection. Alias: delete. |
| Option | Applies to | Description |
|---|---|---|
--connector <connector> | list, create | Connector type. Required for create. |
--status <status> | list | Filter by connection status. Repeatable. |
--name <name> | create, update | Connection name. |
--owner <owner> | create | GitHub user or organization that owns the repositories. Required for GitHub. |
--api-key <token> | create, update | GitHub access token, or the token of a token-based source. Required for GitHub on create. |
--domain <domain> | create | Confluence site domain, for example your-team.atlassian.net. Required for Confluence. |
--label <label> | create | Connection label, saved in the source metadata. |
--metadata <json> | create, ingest | Extra metadata object. |
--client-redirect-url <url> | create, update, authorize | Where to send the user after the app sign-in or file picker. |
--clear-client-redirect-url | update | Remove the redirect URL. |
--limit <1-100> | documents | Results per page. Default: 50. |
--cursor <cursor> | documents | Get the next page. |
--sync <frequency> | ingest | Scheduled resync: NEVER, DAILY, WEEKLY, MONTHLY. GitHub sources only. Other connectors are set to NEVER with a warning. |
--external-id <id> | ingest | ID of one selected file to ingest. Repeatable. Aliases: --document, --page (for Confluence page IDs). |
--repo <repo> | ingest | GitHub repository. Required for GitHub sources. |
--branch <branch> | ingest | GitHub branch. |
--pattern <glob> | ingest | GitHub file pattern. Repeatable. |
update needs at least one option.
| Value | Allowed values |
|---|---|
| Connector | NOTION, GOOGLE_DRIVE, DROPBOX, ONEDRIVE, BOX, SHAREPOINT, CONFLUENCE, GITHUB. Not case-sensitive. google-drive also works. |
| Connection status | PENDING, ACTIVE, FAILED, REVOKED |
sitegpt knowledge sources create --chatbot <chatbot-id> --connector GOOGLE_DRIVE --name "Drive docs"
sitegpt knowledge sources authorize --chatbot <chatbot-id> <source-id>
sitegpt knowledge sources documents --chatbot <chatbot-id> <source-id>
sitegpt knowledge sources ingest --chatbot <chatbot-id> <source-id>
sitegpt knowledge sources ingest --chatbot <chatbot-id> <github-source-id> --sync MONTHLY
sitegpt knowledge sources revoke --chatbot <chatbot-id> <source-id> --yes
GitHub source helpers
| Command | Description |
|---|---|
sitegpt knowledge sources github repos --chatbot <chatbot-id> --source <source-id> | List GitHub repositories. Alias: repositories. |
sitegpt knowledge sources github files --chatbot <chatbot-id> --source <source-id> --owner <owner> --repo <repo> | List files in a repository. |
| Option | Applies to | Description |
|---|---|---|
--source <source-id> | repos, files | Required. GitHub source ID. |
--page <number> | repos | Page number. |
--per-page <1-100> | repos | Results per page. |
--owner <owner> | files | Required. Repository owner. |
--repo <repo> | files | Required. Repository name. |
--branch <branch> | files | Branch name. |
sitegpt knowledge sources github repos --chatbot <chatbot-id> --source <source-id> --per-page 100
sitegpt knowledge sources github files --chatbot <chatbot-id> --source <source-id> --owner acme --repo docs --branch main
sitegpt knowledge sources ingest --chatbot <chatbot-id> <source-id> --repo docs --branch main --pattern "docs/**"
Confluence source helpers
| Command | Description |
|---|---|
sitegpt knowledge sources confluence spaces --chatbot <chatbot-id> --source <source-id> | List Confluence spaces. |
sitegpt knowledge sources confluence pages --chatbot <chatbot-id> --source <source-id> --space <space-id> | List the pages in a space. |
| Option | Applies to | Description |
|---|---|---|
--source <source-id> | spaces, pages | Required. Confluence source ID. |
--space <space-id> | pages | Required. Confluence space ID. |
--limit <1-100> | spaces, pages | Results per page. |
--cursor <cursor> | spaces, pages | Get the next page. |
sitegpt knowledge sources confluence spaces --chatbot <chatbot-id> --source <source-id>
sitegpt knowledge sources confluence pages --chatbot <chatbot-id> --source <source-id> --space <space-id>
sitegpt knowledge sources ingest --chatbot <chatbot-id> <source-id> --page <page-id>
Custom responses
A custom response is a question and the answer you want the chatbot to use for it. See Add custom responses.| Command | Description |
|---|---|
sitegpt knowledge custom-responses list --chatbot <chatbot-id> | List custom responses. |
sitegpt knowledge custom-responses get --chatbot <chatbot-id> <custom-response-id> | Show one custom response. |
sitegpt knowledge custom-responses add --chatbot <chatbot-id> | Add a custom response. Alias: create. |
sitegpt knowledge custom-responses update --chatbot <chatbot-id> <custom-response-id> | Change a custom response. |
sitegpt knowledge custom-responses delete --chatbot <chatbot-id> <custom-response-id> --yes | Delete a custom response. |
| Option | Applies to | Description |
|---|---|---|
--query <text> | list | Search the questions and answers. |
--state <state> | list | OPEN: no approved answer yet. UPDATED: has an approved answer. ALL: both. Default: ALL. |
--source <source> | list | DOWNVOTED_BY_USER, MANUALLY_ADDED, MARKED_BY_ADMIN. Repeatable. |
--question <question> | add, update | Question text. Required for add. |
--answer <answer> | add, update | Approved answer. Required for add. |
--original-answer <answer> | add | The original answer, if you want to keep it. |
update needs --question, --answer, or both.
sitegpt knowledge custom-responses list --chatbot <chatbot-id> --state OPEN
sitegpt knowledge custom-responses add --chatbot <chatbot-id> --question "Do you offer refunds?" --answer "Contact support for refund eligibility."
sitegpt knowledge custom-responses update --chatbot <chatbot-id> <custom-response-id> --answer "Updated approved answer."
Personas
A persona sets the chatbot’s tone and style. The chatbot uses the persona you select withuse. See Write instructions.
| Command | Description |
|---|---|
sitegpt personas list --chatbot <chatbot-id> | List personas. |
sitegpt personas get --chatbot <chatbot-id> <persona-id> | Show one persona. |
sitegpt personas add --chatbot <chatbot-id> | Create a persona. Alias: create. |
sitegpt personas update --chatbot <chatbot-id> <persona-id> | Change a persona. |
sitegpt personas use --chatbot <chatbot-id> <persona-id> | Select the persona that the chatbot uses. |
sitegpt personas delete --chatbot <chatbot-id> <persona-id> --yes | Delete a persona. |
| Option | Applies to | Description |
|---|---|---|
--title <title> | add, update | Persona title. Up to 120 characters. Required for add. |
--description <description> | add, update | Description. Up to 1,000 characters. |
--instructions <text> | add, update | Persona text. Up to 20,000 characters. For add, pass this or --file. |
--file <path> | add, update | Read the persona text from a file. Cannot be combined with --instructions. |
sitegpt personas add --chatbot <chatbot-id> --title "Support specialist" --file ./persona.md --json
sitegpt personas use --chatbot <chatbot-id> <persona-id>
sitegpt personas update --chatbot <chatbot-id> <persona-id> --title "Friendly support specialist"
Instructions
Instructions tell the chatbot how to answer. Each set of instructions has its own temperature. The chatbot uses the set you select withuse. See Write instructions.
| Command | Description |
|---|---|
sitegpt instructions list --chatbot <chatbot-id> | List sets of instructions. |
sitegpt instructions get --chatbot <chatbot-id> <instruction-id> | Show one set. |
sitegpt instructions add --chatbot <chatbot-id> | Create a set. Alias: create. |
sitegpt instructions update --chatbot <chatbot-id> <instruction-id> | Change a set. |
sitegpt instructions use --chatbot <chatbot-id> <instruction-id> | Select the set that the chatbot uses. |
sitegpt instructions delete --chatbot <chatbot-id> <instruction-id> --yes | Delete a set. |
| Option | Applies to | Description |
|---|---|---|
--title <title> | add, update | Title. Up to 120 characters. |
--instructions <text> | add, update | Instruction text. Up to 20,000 characters. For add, pass this or --file. |
--file <path> | add, update | Read the instructions from a file. Cannot be combined with --instructions. |
--temperature <0-1> | add, update | Same as the Creativity Level slider in the dashboard. 0 is more focused. 1 is more random and creative. Default for add: 0.5. |
sitegpt instructions add --chatbot <chatbot-id> --file ./instructions.md --temperature 0.3 --json
sitegpt instructions use --chatbot <chatbot-id> <instruction-id>
Settings overview
You can read all settings at once, update them from a JSON file, or change one section at a time. For what each dashboard setting does, see Chatbot settings.| Command | Description |
|---|---|
sitegpt settings get --chatbot <chatbot-id> [section] | Show all settings, or one section. |
sitegpt settings update --chatbot <chatbot-id> --file <settings.json> | Update settings from a JSON file. |
sitegpt settings <section> get --chatbot <chatbot-id> | Show one section. |
sitegpt settings <section> update --chatbot <chatbot-id> | Update one section. Alias: set. Not for chat-mode, which uses set <mode>. |
| Rule | Behavior |
|---|---|
| Sections | general, appearance, chat-mode, localization, user-data, lead-form, human-support, webhooks |
| Other section spellings | settings get <section> also accepts chatMode, leadForm, humanSupport, and userData. |
get output | JSON, even without --json. |
--file <section.json> | Every section update command accepts it. Flags override the same fields in the file. |
Section update input | Needs --file or at least one flag. |
| Fields with no flag | Set them with --file, for example lead form custom fields. Run settings <section> get to see the field names. |
Settings: general
| Command | Description |
|---|---|
sitegpt settings general get --chatbot <chatbot-id> | Show general settings. |
sitegpt settings general update --chatbot <chatbot-id> | Update general settings. Alias: set. |
| Option | Description |
|---|---|
--description <text> | Description. Shown on the chatbot home screen. |
--support-email <email> | Support Email. Reply-to address for emails sent to visitors. |
--disable-smart-follow-ups <boolean> | Disable smart follow up questions. Default: false. |
--smart-follow-up-count <1-5> | Number of smart follow up questions to be shown. Default: 3. |
--disable-lead-notifications <boolean> | true turns off Enable Lead Notifications on the Leads Settings page, which stops lead emails. false turns it on. The recipient list does not change. |
--page-context <boolean> | Enable Page Context Awareness. Default: false. |
--model <model> | GPT Model: gpt-4.1 or gpt-4.1-mini. |
--rate-limit-thread-enabled <boolean> | Limit Messages Per Conversation. Default: false. Growth plan and above. |
--rate-limit-thread-max-messages <1-1000> | Max Messages Per Conversation. Used when the limit is on. Growth plan and above. |
--allowed-domain <domain> | Allowed Domains. A domain where the widget may load. Repeat for several, up to 50. Replaces the saved list. |
--clear-allowed-domains | Clear the allowed domains. The widget can then load on any domain. Cannot be combined with --allowed-domain. |
--excluded-path <path> | A page path where the floating widget is hidden, for example /checkout/*. Repeat for several, up to 50. Replaces the saved list. |
--clear-excluded-paths | Clear the excluded pages. The floating widget then shows on every page. Cannot be combined with --excluded-path. |
--rate-limit-thread-* options fail with RATE_LIMITS_NOT_AVAILABLE. See Plans and limits.
Settings: appearance
| Command | Description |
|---|---|
sitegpt settings appearance get --chatbot <chatbot-id> | Show appearance settings. |
sitegpt settings appearance update --chatbot <chatbot-id> | Update appearance settings. Alias: set. |
| Option | Description |
|---|---|
--title <title> | Widget title. 1 to 120 characters. |
--tooltip <text> | Launcher tooltip. |
--welcome <message> | Welcome message. |
--placeholder <text> | Placeholder text in the message box. |
--brand-color <color> | Main brand color. |
--brand-text-color <color> | Text color on the brand color. |
--icon-background-color <color> | Launcher icon background. |
--link-color <color> | Link color. |
--terms-text <text> | Terms text that visitors accept. |
--disclaimer <text> | Disclaimer text. |
--watermark-text <text> | Watermark text. Plan-dependent. |
--watermark-link <url> | Watermark URL. Plan-dependent. |
--cta-text <text> | Call-to-action button text. Plan-dependent. |
--cta-link <url> | Call-to-action button URL. Plan-dependent. |
--external-link-url <url> | External link URL. |
--learn-more <text> | Learn-more text. |
| Option | Description |
|---|---|
--icon-size <size> | SMALL, MEDIUM, LARGE, XL, 2XL, 3XL, 4XL, 5XL. Default: SMALL. |
--icon-position <position> | LEFT or RIGHT. Default: RIGHT. |
--icon-shape <shape> | CIRCLE or SQUARE. Default: CIRCLE. |
--desktop-auto-open <mode> | ALWAYS_OPEN_WITH_DELAY or DONT_OPEN. Default: DONT_OPEN. |
--mobile-auto-open <mode> | ALWAYS_OPEN_WITH_DELAY or DONT_OPEN. Default: DONT_OPEN. |
--desktop-open-delay <seconds> | Default: 0. |
--mobile-open-delay <seconds> | Default: 0. |
--distance-bottom <number> | Distance from the bottom. Default: 16. |
--mobile-distance-bottom <number> | Distance from the bottom on mobile. |
--horizontal-distance <number> | Distance from the side. Default: 16. |
--mobile-horizontal-distance <number> | Distance from the side on mobile. |
--font-size <8-32> | Default: 16. |
--height <1-100> | Default: 85. |
<boolean> value, for example --dark-mode true. All default to false.
| Option | Option | Option |
|---|---|---|
--icon-background-transparent | --hide-sources | --hide-tooltip |
--hide-watermark (plan-dependent) | --hide-feedback-buttons | --hide-bottom-navigation |
--show-messages-tab-anonymous | --hide-refresh-button | --hide-expand-button |
--hide-home-page | --rtl | --stay-on-home-if-no-thread |
--require-terms | --hide-terms-after-acceptance | --dark-mode |
WATERMARK_SETTINGS_NOT_AVAILABLE. The CTA options fail with CTA_SETTINGS_NOT_AVAILABLE. See Plans and limits.
sitegpt settings appearance update --chatbot <chatbot-id> --brand-color "#155DEE" --brand-text-color "#FFFFFF" --icon-shape CIRCLE --dark-mode true
Settings: chat mode
| Command | Description |
|---|---|
sitegpt settings chat-mode get --chatbot <chatbot-id> | Show the chat mode. |
sitegpt settings chat-mode set --chatbot <chatbot-id> AI | Set AI mode. This is the default. |
sitegpt settings chat-mode set --chatbot <chatbot-id> AGENT | Set human mode. Team members answer instead of the AI. |
Settings: localization
| Command | Description |
|---|---|
sitegpt settings localization get --chatbot <chatbot-id> | Show localization settings. |
sitegpt settings localization update --chatbot <chatbot-id> --file <section.json> | Update localization from a JSON file. Alias: set. |
Settings: user data
Pre-chat user details. Off by default. In the dashboard, this is Pre-Chat User Details in Leads > Settings. See Collect leads.| Command | Description |
|---|---|
sitegpt settings user-data get --chatbot <chatbot-id> | Show user data settings. |
sitegpt settings user-data update --chatbot <chatbot-id> | Update user data settings. Alias: set. |
| Option | Description |
|---|---|
--collect <mode> | MANDATORY, OPTIONAL, or DO_NOT_COLLECT. Default: DO_NOT_COLLECT. |
--collect-name <boolean> | Ask for the name. Default: false. |
--collect-phone <boolean> | Ask for the phone number. Default: false. |
--collect-name and --collect-phone change the same stored values as the lead form options with the same names.
Settings: lead form
| Command | Description |
|---|---|
sitegpt settings lead-form get --chatbot <chatbot-id> | Show lead form settings. |
sitegpt settings lead-form update --chatbot <chatbot-id> | Update lead form settings. Alias: set. |
| Option | Description |
|---|---|
--enabled <boolean> | Turn the lead form on. Default: false. |
--collect-name <boolean> | Ask for the name. Default: false. |
--collect-phone <boolean> | Ask for the phone number. Default: false. |
--industry-template <template> | custom, dental, hvac, legal, real_estate, automotive, healthcare, saas, ecommerce, consulting. Default: custom. |
--trigger <trigger> | intent, unable_to_answer, or after_x_messages. Default: intent. |
--custom-keywords <text> | Keywords for a custom trigger. |
--message-count <1-20> | Default: 1. |
--booking-enabled <boolean> | Default: false. |
--booking-link <url> | Booking URL. |
--escalate <boolean> | Escalate after the visitor submits the lead form. Default: false. |
--notifications-enabled <boolean> | Enable Lead Notifications. false stops lead emails. Default: true. |
--notification-email <email> | Email that gets lead notifications. Repeatable. |
Settings: human support
| Command | Description |
|---|---|
sitegpt settings human-support get --chatbot <chatbot-id> | Show human support settings. |
sitegpt settings human-support update --chatbot <chatbot-id> | Update human support settings. Alias: set. |
| Option | Description |
|---|---|
--enabled <boolean> | Turn human support on. Default: false. |
--positive-prompt <text> | Positive prompt. Default: That answered my question. |
--request-prompt <text> | Prompt to ask for a person. Default: Connect to an agent. |
--confirmation <text> | Text shown after a visitor asks for a person. Default: Your request has been forwarded to our human support team. They will respond soon. |
--show-buttons <boolean> | Show the support buttons. Default: true. |
--replace-suggestions <boolean> | Show support prompts instead of suggestions. Default: true. |
--notifications-enabled <boolean> | Turn on support notifications. Default: false. |
--notification-email <email> | Email that gets support notifications. Repeatable. |
--new-conversation-notifications-enabled <boolean> | Turn on new conversation notifications. Default: false. |
--new-conversation-email <email> | Email that gets new conversation notifications. Repeatable. |
escalationPolicy field with --file. It takes up to 2,000 characters. Leave it empty to use the default triggers.
Settings: webhooks
| Command | Description |
|---|---|
sitegpt settings webhooks get --chatbot <chatbot-id> | Show webhook settings. Shows whether each token is set, not the token. |
sitegpt settings webhooks update --chatbot <chatbot-id> | Update webhook settings. Alias: set. |
| Option | Description |
|---|---|
--message-url <url> | Message webhook URL. |
--message-token <token> | Message webhook token. |
--escalation-url <url> | Escalation webhook URL. |
--escalation-token <token> | Escalation webhook token. |
--leads-url <url> | Leads webhook URL. |
--leads-token <token> | Leads webhook token. |
WEBHOOKS_NOT_AVAILABLE. See Webhooks and Plans and limits.
Conversation starters
Conversation starters are buttons that visitors see before they send a message.| Command | Description |
|---|---|
sitegpt starters list --chatbot <chatbot-id> | List conversation starters. |
sitegpt starters get --chatbot <chatbot-id> <starter-id> | Show one conversation starter. |
sitegpt starters add --chatbot <chatbot-id> | Add a conversation starter. Alias: create. |
sitegpt starters update --chatbot <chatbot-id> <starter-id> | Change a conversation starter. |
sitegpt starters delete --chatbot <chatbot-id> <starter-id> --yes | Delete a conversation starter. |
sitegpt starters reorder --chatbot <chatbot-id> <id...> | Set the order. |
| Option | Applies to | Description |
|---|---|---|
--title <title> | add, update | Button title. Up to 120 characters. Required for add. |
--message <message> | add, update | Message sent when a visitor clicks the button. Up to 5,000 characters. Required for PROMPT buttons. Alias: --description. |
--link <url> | add, update | Link target. Sets the type to LINK. Required for LINK buttons. |
--type <type> | add, update | PROMPT or LINK. Default: PROMPT. |
--page <path> | add, update | Show the starter only on matching pages, for example /pricing or /docs/*. Uses the same patterns as excluded pages. Repeat for several, up to 20. Replaces the saved list. |
--clear-pages | add, update | Show on every page. Cannot be combined with --page. |
ESCALATION buttons.
Conversation followups
Follow-up suggestions are buttons shown after the chatbot answers. The CLI calls themfollowups.
| Command | Description |
|---|---|
sitegpt followups list --chatbot <chatbot-id> | List follow-up suggestions. |
sitegpt followups get --chatbot <chatbot-id> <followup-id> | Show one follow-up suggestion. |
sitegpt followups add --chatbot <chatbot-id> | Add a follow-up suggestion. Alias: create. |
sitegpt followups update --chatbot <chatbot-id> <followup-id> | Change a follow-up suggestion. |
sitegpt followups delete --chatbot <chatbot-id> <followup-id> --yes | Delete a follow-up suggestion. |
sitegpt followups reorder --chatbot <chatbot-id> <id...> | Set the order. |
| Option | Applies to | Description |
|---|---|---|
--title <title> | add, update | Button title. Up to 120 characters. Required for add. |
--message <message> | add, update | Message sent when a visitor clicks the button. Up to 5,000 characters. Required for PROMPT and ESCALATION buttons. Alias: --description. |
--link <url> | add, update | Link target. Sets the type to LINK. Required for LINK buttons. |
--type <type> | add, update | PROMPT, LINK, or ESCALATION. Default: PROMPT. |
--escalation | add, update | Make the button an escalation button. Same as --type ESCALATION. |
--page and --clear-pages work only for conversation starters.
Conversations
A conversation is the chat between one visitor and your chatbot or team. Commands use the conversation ID as<thread-id>. For the steps, see Conversations.
| Command | Description |
|---|---|
sitegpt conversations list --chatbot <chatbot-id> | List conversations. |
sitegpt conversations get --chatbot <chatbot-id> <thread-id> | Show one conversation. |
sitegpt conversations update --chatbot <chatbot-id> <thread-id> | Change conversation details. |
sitegpt conversations star --chatbot <chatbot-id> <thread-id> | Star a conversation. |
sitegpt conversations unstar --chatbot <chatbot-id> <thread-id> | Remove the star. |
sitegpt conversations resolve --chatbot <chatbot-id> <thread-id> | Resolve a conversation. |
sitegpt conversations unresolve --chatbot <chatbot-id> <thread-id> | Reopen a conversation. |
sitegpt conversations read --chatbot <chatbot-id> <thread-id> | Mark as read. |
sitegpt conversations unread --chatbot <chatbot-id> <thread-id> | Mark as unread. |
sitegpt conversations escalate --chatbot <chatbot-id> <thread-id> | Escalate to human support. |
sitegpt conversations switch-to-ai --chatbot <chatbot-id> <thread-id> | Return to AI mode. |
sitegpt conversations delete --chatbot <chatbot-id> <thread-id> --yes | Delete a conversation. |
sitegpt conversations bulk --chatbot <chatbot-id> --action <action> <thread-id...> | Run one action on up to 100 conversations. |
| Option | Applies to | Description |
|---|---|---|
--status <status> | list | all, open, or resolved. Default: all. |
--mode <mode> | list, update | AI or AGENT. |
--escalated <boolean> | list, update | Escalation state. |
--important <boolean> | list, update | Starred state. |
--read <boolean> | list | Read state. |
--lead <lead-id> | list | Conversations linked to this lead. |
--query <text> | list | Search conversations. |
--tag <tag-id> | list, update | For list: filter by tag. For update: replace all assigned tags with these IDs. Repeatable. |
--include-empty | list | Include conversations with no messages. |
--limit <1-100> | list | Results per page. Default: 50. |
--cursor <cursor> | list | Get the next page. |
--title <title> | update | Conversation title. |
--resolved <boolean> | update | Resolve or reopen. |
--mark-read <boolean> | update | Mark as read or unread. |
--email <email> | update | Visitor email. |
--name <name> | update | Visitor name. Needs --email in the same command. |
--phone <phone> | update | Visitor phone. Needs --email in the same command. |
--webhook-url <url> | update | Webhook URL. |
--webhook-token <token> | update | Webhook token. |
--message <message> | escalate, switch-to-ai | Text of the system message added to the conversation. Up to 2,000 characters. |
--action <action> | bulk | star, unstar, resolve, unresolve, mark-read, mark-unread, or delete. |
--yes | bulk | Required for delete. |
--dry-run | bulk | Print the action and the conversation IDs, then stop. It does not contact SiteGPT. |
| Rule | Behavior |
|---|---|
Default escalate message | I'm connecting you with a human agent. Please wait a moment. |
Default switch-to-ai message | Continuing with AI while waiting for human support |
| Resolved conversations | escalate and switch-to-ai fail. |
| Taken-over conversations | escalate fails while a team member has taken over, unless the conversation is already escalated. |
sitegpt conversations list --chatbot <chatbot-id> --escalated true --json
sitegpt conversations update --chatbot <chatbot-id> <thread-id> --tag <tag-id> --important true
sitegpt conversations bulk --chatbot <chatbot-id> --action resolve <thread-id> <thread-id>
Messages
Messages are the entries in a conversation. The CLI sends every message as the visitor.| Command | Description |
|---|---|
sitegpt messages list --chatbot <chatbot-id> <thread-id> | List the messages in a conversation. |
sitegpt messages send --chatbot <chatbot-id> <message> | Start a new conversation with a visitor message. |
sitegpt messages send --chatbot <chatbot-id> <thread-id> <message> | Send a visitor message in an existing conversation. |
sitegpt messages react --chatbot <chatbot-id> <thread-id> <message-id> <reaction> | Set a reaction on a message. |
sitegpt messages edit --chatbot <chatbot-id> <thread-id> <message-id> <text> | Change the text of a message. |
| Option | Applies to | Description |
|---|---|---|
--limit <1-500> | list | Results per page. Default: 100. |
--cursor <cursor> | list | Get the next page. |
| Rule | Behavior |
|---|---|
send with one argument | The argument is the message. The command starts a new conversation. |
send in AI mode | Waits for the chatbot reply and prints it. |
send in human mode | Saves the message. The AI does not reply. |
| Message length | Up to 20,000 characters. |
<reaction> | POSITIVE, NEGATIVE, or NEUTRAL. |
sitegpt messages list --chatbot <chatbot-id> <thread-id> --json
sitegpt messages send --chatbot <chatbot-id> "What can you help with?"
sitegpt messages send --chatbot <chatbot-id> <thread-id> "Can I talk to support?"
sitegpt messages react --chatbot <chatbot-id> <thread-id> <message-id> NEGATIVE
Tags
Tags group conversations. Each tag belongs to one chatbot, so every tag command needs--chatbot <chatbot-id>.
| Command | Description |
|---|---|
sitegpt tags list --chatbot <chatbot-id> | List tags. |
sitegpt tags get --chatbot <chatbot-id> <tag-id> | Show one tag. |
sitegpt tags add --chatbot <chatbot-id> <title> | Create a tag. You can also pass the title with --title. Alias: create. |
sitegpt tags update --chatbot <chatbot-id> <tag-id> --title <title> | Rename a tag. |
sitegpt tags delete --chatbot <chatbot-id> <tag-id> --yes | Delete a tag. |
| Option | Applies to | Description |
|---|---|---|
--query <text> | list | Search tags. |
--title <title> | add, update | Tag title. |
--id <id> | add | Your own tag ID. |
conversations update --tag.
sitegpt tags add --chatbot <chatbot-id> "Billing"
sitegpt tags update --chatbot <chatbot-id> <tag-id> --title "Enterprise sales"
sitegpt conversations update --chatbot <chatbot-id> <thread-id> --tag <tag-id>
Leads
A lead is the contact details that a visitor gives in the chat.| Command | Description |
|---|---|
sitegpt leads list --chatbot <chatbot-id> | List leads. |
sitegpt leads get --chatbot <chatbot-id> <lead-id> | Show one lead. |
sitegpt leads update --chatbot <chatbot-id> <lead-id> | Change lead details. |
sitegpt leads star --chatbot <chatbot-id> <lead-id> | Star a lead. |
sitegpt leads unstar --chatbot <chatbot-id> <lead-id> | Remove the star. |
sitegpt leads archive --chatbot <chatbot-id> <lead-id> | Archive a lead. |
sitegpt leads unarchive --chatbot <chatbot-id> <lead-id> | Restore an archived lead. |
sitegpt leads delete --chatbot <chatbot-id> <lead-id> --yes | Delete a lead. |
sitegpt leads bulk --chatbot <chatbot-id> --action <action> <lead-id...> | Run one action on many leads. |
| Option | Applies to | Description |
|---|---|---|
--status <status> | list | all, open, or archived. Default: all. |
--important <boolean> | list, update | Starred state. |
--query <text> | list | Search leads. |
--limit <1-100> | list | Results per page. Default: 50. |
--cursor <cursor> | list | Get the next page. |
--name <name> | update | Lead name. |
--phone <phone> | update | Lead phone. |
--archived <boolean> | update | Archive or restore. |
--action <action> | bulk | archive, unarchive, star, unstar, or delete. |
--lead <lead-id> | bulk | Lead ID. Repeatable. You can also pass lead IDs as arguments. |
--yes | bulk | Required for delete. |
--dry-run | bulk | Print the action and the lead IDs, then stop. It does not contact SiteGPT. |
sitegpt leads list --chatbot <chatbot-id> --status open --json
sitegpt leads update --chatbot <chatbot-id> <lead-id> --name "Jane Doe" --important true
sitegpt leads bulk --chatbot <chatbot-id> --action archive <lead-id> <lead-id>
Members
Members are team members who can access a chatbot. See Team members.| Command | Description |
|---|---|
sitegpt members list --chatbot <chatbot-id> | List team members. |
sitegpt members invite --chatbot <chatbot-id> <email> | Send an invite. Default role: AGENT. |
sitegpt members add --chatbot <chatbot-id> <email> | Add a member with no invite email. Creates the account if needed. Default role: AGENT. |
sitegpt members remove --chatbot <chatbot-id> <user-id> --yes | Remove a member. Alias: delete. |
| Option | Applies to | Description |
|---|---|---|
--role <role> | invite, add | AGENT, MANAGER, ADMIN, or SUPER_ADMIN. Default: AGENT. |
sitegpt members invite --chatbot <chatbot-id> teammate@example.com --role MANAGER
sitegpt members remove --chatbot <chatbot-id> <user-id> --yes
Member invites
| Command | Description |
|---|---|
sitegpt member-invites list --chatbot <chatbot-id> | List pending invites. |
sitegpt member-invites cancel --chatbot <chatbot-id> <invite-id> --yes | Cancel an invite. Alias: delete. |
MCP server
| Command | Description |
|---|---|
sitegpt mcp | Run the SiteGPT MCP server over stdio, for AI assistants that start local MCP servers. |
SITEGPT_API_TOKEN or a saved profile. For setup, the hosted server at https://sitegpt.ai/mcp, and the npx -y @sitegpt/mcp launcher, see MCP.
Agent guide
| Command | Description |
|---|---|
sitegpt agent-guide | Print the agent workflow, common paths, and command map. AI agents should run it first. |
sitegpt agent-guide --json | Print the same guide as JSON. |
https://sitegpt.ai/agents/sitegpt-cli-skill.md.
Shell completion
| Command | Description |
|---|---|
sitegpt completion bash | Print a bash completion script. |
sitegpt completion zsh | Print a zsh completion script. |
# bash: add this line to ~/.bashrc
source <(sitegpt completion bash)
# zsh: add this line to ~/.zshrc
source <(sitegpt completion zsh)