diff --git a/README.md b/README.md index 96c71926..b76046cf 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ EXPLORBOT_KNOWLEDGE="Log in as admin@example.com / secret123" \ npx explorbot explore /admin/users --max-tests 3 ``` -Output lands in a per-host state directory, `~/.explorbot/state//`, so runs against the same app collect in one place and nothing is written to your project. Set `EXPLORBOT_EPHEMERAL=1` to keep nothing between runs. See [Agentic Usage](docs/workflow/agentic-usage.md). +Output lands in a per-host site directory, `~/.explorbot/sites//`, so runs against the same app collect in one place and nothing is written to your project. Set `EXPLORBOT_EPHEMERAL=1` to keep nothing between runs. See [Agentic Usage](docs/workflow/agentic-usage.md). ## Teaching Explorbot diff --git a/docs/reference/commands.md b/docs/reference/commands.md index dc253a3c..478ddae8 100644 --- a/docs/reference/commands.md +++ b/docs/reference/commands.md @@ -107,7 +107,7 @@ EXPLORBOT_AI_PROVIDER=openrouter \ | `EXPLORBOT_NO_BANNER` | Suppress the startup banner, for machine-readable output | -Explorbot resolves its configuration in this order: the path given to `--config`, then `explorbot.config.*` in the working directory, then the `EXPLORBOT_*` variables, and finally `~/.explorbot/config.*` from the global installation. A bare provider name fills every model role from the recommendations in [Providers](../basics/providers.md); a `provider/model-id` spec pins one model and splits on the first slash, so `openrouter/openai/gpt-oss-120b:nitro` selects OpenRouter with model `openai/gpt-oss-120b:nitro`. Supported providers: `openai`, `anthropic`, `google`, `groq`, `openrouter`, `sambanova`. +Explorbot resolves its configuration in this order: the path given to `--config`, then `explorbot.config.*` in the working directory, then the `EXPLORBOT_*` variables, and finally `~/.explorbot/config.*` from the global installation. A bare provider name fills every model role from the recommendations in [Providers](../basics/providers.md); a `provider/model-id` spec pins one model and splits on the first slash, so `openrouter/openai/gpt-oss-120b:nitro` selects OpenRouter with model `openai/gpt-oss-120b:nitro`. Supported providers: `openai`, `anthropic`, `google`, `groq`, `mistral`, `openrouter`, `sambanova`. In this mode output goes to `~/.explorbot/sites//output/` (or `EXPLORBOT_OUTPUT`, or a temp directory with `EXPLORBOT_EPHEMERAL=1`), experience is kept beside it unless the run is ephemeral, and the Historian is off, so no generated test files appear. See [Agentic Usage](../workflow/agentic-usage.md) for the full picture. @@ -847,6 +847,8 @@ npx explorbot init --global --provider openrouter --api-key sk-... # no wizard npx explorbot init --global --force # reinstall ``` +The global config holds models and keys, never a site: every command names the site it runs against. + | Option | Description | |--------|-------------| | `-c, --config-path ` | Path for the project config file | diff --git a/docs/workflow/agentic-usage.md b/docs/workflow/agentic-usage.md index 865252e4..c699a3f4 100644 --- a/docs/workflow/agentic-usage.md +++ b/docs/workflow/agentic-usage.md @@ -15,6 +15,12 @@ npx explorbot explore https://app.example.com/login --max-tests 3 `init --global` writes `~/.explorbot/config.js` with the recommended model ids of this Explorbot version and stores the key in `~/.explorbot/.env`. It needs no terminal — with `--provider` there is no wizard, so an agent can run it unattended. +The global config holds models and keys, never a site. Most commands carry the site themselves — `explore`, `plan`, `research`, `navigate`, `context`, `shell`, `freesail`, `docs collect`. The ones that take no URL argument — `test`, `learn`, `knows`, `experience`, `compact` — read it from `EXPLORBOT_URL`, and stop with `No site to explore` when it is unset: + +```bash +EXPLORBOT_URL=https://app.example.com npx explorbot learn "/login" 'Sign in as ${env.APP_USER}' +``` + This is the form to prefer. Each site explored gets its own folder under `~/.explorbot/sites//` holding `knowledge/`, `experience/`, and `output/`, so what Explorbot learns about an app is still there on the next run — the agent that explored `/checkout` yesterday does not start from zero today. Later runs can name the site by host instead of repeating the URL: ```bash diff --git a/package.json b/package.json index 0affdfea..3de078dc 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ }, "files": [ "dist/", + "docs/", "src/**/*.ts", "src/**/*.tsx", "bin/**/*.ts",