Skip to main content
xbot
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

Install & configure

One command

# Linux / macOS
curl -fsSL https://raw.githubusercontent.com/ai-pivot/xbot/master/scripts/install.sh | bash

# Windows (PowerShell)
irm https://raw.githubusercontent.com/ai-pivot/xbot/master/scripts/install.ps1 | iex

That is the whole install: binary + Web UI + every built-in plugin (genui / git-fancy / ambience), with the web channel already enabled. Nothing else to install, and no config file to edit first.

xbot-cli serve          # then open http://localhost:8082

In the browser: create an account → gear icon → LLM → base URL / API key / pick a model → start chatting.

Note
The first account on a fresh install needs no invite code and becomes the admin.

Let your agent install it

Paste this into your AI agent (Claude Code / Codex / Cursor …) — it installs and verifies on its own:

Install and start xbot on this machine:

1. Install: curl -fsSL https://raw.githubusercontent.com/ai-pivot/xbot/master/scripts/install.sh | bash
2. Verify:  xbot-cli setup --check        # exit code 0 means the install is complete
3. Start:   nohup xbot-cli serve >/tmp/xbot.log 2>&1 &
4. Confirm: curl -s -o /dev/null -w '%{http_code}' http://127.0.0.1:8082   # must print 200

If any step fails, read the Troubleshooting section below — do not skip the
check and claim it worked.

For an agent that wants to read up front, there is a dedicated executable guide (assertable steps, headless LLM setup, troubleshooting table):

Tip
Agent install guide (executable)https://ai-pivot.github.io/xbot/agent-install/

install.sh’s header comments carry the same pointer, and the script prints the doc URL as its last output — so the “paste this into your agent” flow always tells the agent what to read next.

Notes for the agent:

  • install.sh is idempotent — re-running it never clobbers existing settings (existing values always win).
  • setup --check is the single source of truth for a complete install: exit code 0 means all checks passed.
  • serve runs in the foreground; background it yourself (nohup / systemd / tmux).
  • After install ~/.xbot/config.json already has the web + plugin settings. Do not hand-edit llm.* — LLM settings live in the database; use the web settings panel or the xbot-cli commands instead.

Optional flags (all 5 of them)

Environment-variable prefixes — put them before the command, e.g. MODE=server-client PORT=9000 bash install.sh:

VariableDefaultPurpose
MODEstandalonestandalone = xbot-cli serve on demand; server-client = install a persistent service (systemd –user / launchd) that the CLI connects to
PORT8082Web UI + WebSocket port
XBOT_HOME~/.xbotData directory (config, database, plugins, web assets)
INSTALL_PATH~/.local/binWhere the binary is installed
CHANNELstablestable / beta / nightly; nightly is the latest build, overwritten on every master push

Behind the GFW, use the mirror (GH_MIRROR is set automatically by the mirror script):

curl -fsSL https://ghfast.top/https://raw.githubusercontent.com/ai-pivot/xbot/master/scripts/install-cn.sh | bash

Everything else — LLM subscriptions, channels (Feishu / QQ / Web / CLI), sandbox and runners, memory, hooks, logging, plugins — lives in Configuration.

Verify

xbot-cli --version        # version
xbot-cli setup --check    # completeness check: exit code 0 = OK
# Is the web server up? (add --noproxy '*' if a local proxy intercepts curl)
curl -s -o /dev/null -w '%{http_code}\n' http://127.0.0.1:8082     # expect 200

# server-client mode service status
systemctl --user status xbot-server     # Linux
launchctl list | grep xbot              # macOS

Troubleshooting

SymptomFix
setup --check reports a component MISSINGRe-run xbot-cli setup; offline: pass --offline-web/--offline-plugins with local packages
Page loads but sending fails with unsupported protocol scheme ""LLM not configured. Web → gear → LLM, enter base URL + API key + pick a model (editing config.json does nothing)
Port already in use / want another portPORT=9000 xbot-cli serve, or change web.port and restart
Page 404s or renders unstyledWeb assets missing: xbot-cli setup
Plugin panels are blankPlugins not activated: xbot-cli setup --config-only or /plugin reload-all
command not found: xbot-cli~/.local/bin is not on PATH: source ~/.bashrc or reopen the terminal
An old release installed without pluginsxbot-cli setup; if that fails, reinstall with CHANNEL=nightly (nightly always ships the plugin tarball)

Upgrade

curl -fsSL https://raw.githubusercontent.com/ai-pivot/xbot/master/scripts/install.sh | bash

Re-running the installer is the upgrade path: the binary is replaced, config.json and the database are left untouched.

Uninstall

systemctl --user disable --now xbot-server   # server-client mode
rm -f ~/.local/bin/xbot-cli
rm -rf ~/.xbot                                # data dir — includes the database

Build from source

git clone https://github.com/ai-pivot/xbot.git && cd xbot
make setup      # build CLI + Web UI + built-in plugins, install into ~/.xbot, activate channels

Requires Go 1.26+; make setup additionally needs Node.js (web frontend build).

See also