Skip to content

Command reference

phpbotscout --help lists fourteen commands. Three of them are this project's; the rest come from go-tool-base, the framework the tool is built on, and behave the same way in every phpboyscout tool.

phpbotscout's own commands

Command Description
serve Run the daemon — the Discord gateway and the scheduled index refresh
ask Answer a question from the indexed documentation
index Manage the knowledge index
index sources List discovered sources and why each was admitted or rejected
index build Build the index from scratch
index refresh Re-index only the sources that have changed
index status Report what is indexed and how stale it is

Commands inherited from the framework

These are not documented page by page here — they are the framework's surface rather than this tool's, and they are documented with it. What is worth knowing is that they exist, because --help lists them and nothing else in these docs mentions them.

Command What it does Notes for phpbotscout
init Create the configuration file and bootstrap subsystems Run this first: most commands refuse to start without a config file
config Get, set, list, validate and locate configuration config path prints which files are actually being read
doctor Run diagnostic checks and print a pass/warn/fail report doctor report produces a redacted, paste-ready support bundle
version Print version, commit and build date Also checks the release source — see the warning below
update Replace the running binary with a newer release No release has been cut yet, so there is nothing to update to
changelog Show the embedded version history Embedded at build time
telemetry Enable, disable, inspect or reset usage telemetry Off unless you opt in
docs Browse the embedded documentation in the terminal Needs a build carrying the docs assets; a plain go install build omits them
mcp Run phpbotscout as an MCP server for an AI editor
completion Generate a shell completion script

version and update report an error until the first release exists

phpbotscout has never been tagged, so the release source has nothing to return. Any command that checks it logs:

ERRO failed to check for latest version error="failed to get latest release: no releases found"

The command still does its own job — the check is best-effort and does not change the exit code. The line stops appearing once a release is cut.

Global flags

Declared on the root command, so every command above accepts them.

Flag Type Default Meaning
--config string array /etc/phpbotscout/config.yaml, $HOME/.phpbotscout/config.yaml Config files to read. Naming one replaces the defaults rather than adding to them, and suppresses the project-local .phpbotscout.yaml layer
--debug bool false Force debug-level logging, whatever log.level says
--ci bool false Declare a CI environment. A literal credential in config is refused when CI is signalled
--output string text Output format: text or json
-h, --help bool false Help for the command

--config is the one most likely to surprise: it is a replacement, not an addition. See where configuration is read from.

What the commands cannot do

  • They cannot post to Discord. serve reads; nothing in this binary sends a message, opens a thread or moderates. See what phpbotscout does not do.
  • They cannot index a repository you name. The corpus is enumerated from the forge and filtered by a predicate; no flag or config key adds a source by hand. See what the bot is allowed to read.
  • They have no flag for the AI provider. ask reads ai.provider and ai.model from configuration only — there is no --provider on phpbotscout ask. The framework's docs ask has such a flag, but that is a different command answering from embedded documentation.