The CLI is implemented with Commander in sources/main.ts. It always initializes logging first.
start- launches the engine (default settings.scout/settings.json).status- prints engine status if the socket is live.add- interactive setup for a provider or plugin.plugins load <pluginId> [instanceId]- loads a plugin instance (updates settings if engine is down).plugins unload <instanceId>- unloads a plugin instance.auth set <id> <key> <value>- stores an auth credential.
yarn devruns the CLI directly viatsx.
flowchart TD
main[main.ts] --> start[start]
main --> status[status]
main --> add[add]
main --> plugins[plugins]
main --> auth[auth]
sequenceDiagram
participant User
participant CLI
participant Settings
participant Auth
participant Plugins
participant Engine
User->>CLI: gram start
CLI->>Settings: read .scout/settings.json
CLI->>Auth: read .scout/auth.json
CLI->>Plugins: load enabled plugins
CLI->>Engine: start local socket + SSE