git clone https://github.com/ScrapingBee/scrapingbee-cli
cd scrapingbee-cli
pip install -e ".[dev,crawl]"pytest -m "not integration" # unit tests only (no API key needed)
pytest # all tests (requires SCRAPINGBEE_API_KEY)ruff check src tests
ruff format src testsKeep these in sync whenever you bump the version:
pyproject.toml→[project] versionsrc/scrapingbee_cli/__init__.py→__version__.claude-plugin/marketplace.json→plugins[0].versionplugins/scrapingbee-cli/.claude-plugin/plugin.json→version(Claude Code)plugins/scrapingbee-cursor/.cursor-plugin/plugin.jsonand.cursor-plugin/marketplace.json→version(Cursor)plugins/scrapingbee-cli/.codex-plugin/plugin.json→version(ChatGPT / Codex)plugins/scrapingbee-cli/plugin.json→version(GitHub Copilot CLI, Agent Plugins format).agents/skills/scrapingbee-cli/SKILL.mdandscrapingbee-cli-guard/SKILL.md→ frontmatterversion, thenscripts/sync-skills.sh
Plugin directories re-review a plugin when its version changes, so bump all three manifests in the same release PR.
The CI check-version job enforces that pyproject.toml and __init__.py stay in sync.
skills/scrapingbee-cli/ is the canonical source for all skill documentation. After editing it, run:
./sync-skills.shThis propagates changes to .agents/skills/scrapingbee-cli/ (Amp, RooCode, OpenCode, Gemini CLI) and .kiro/skills/scrapingbee-cli/ (Kiro IDE), and copies the agent file to all tool-specific agent directories.
The Amazon Q agent (.amazonq/cli-agents/scraping-pipeline.json) uses JSON format and must be updated manually.
- Create
src/scrapingbee_cli/commands/<name>.pyfollowing the pattern of an existing command (e.g.fast_search.py). - Register it in
src/scrapingbee_cli/commands/__init__.py. - Add a reference doc under
skills/scrapingbee-cli/reference/<name>/. - Add the command to the index table in
skills/scrapingbee-cli/SKILL.md. - Run
./sync-skills.sh.