Install
openclaw skills install gt-core-skillUse this skill when the user needs to work with Gumtree in a real Chrome browser session. It runs the local Python CLI and Chrome extension bridge to: - check login state - log in or out - search listings - read home recommendations, favourites, detail pages, and messages - favourite a listing - start the post-ad category flow
openclaw skills install gt-core-skillUse this skill only for Gumtree tasks that must run in a real browser via this repository's bridge.
uv run python scripts/cli.py ....extension/.python or a random virtualenv; use uv run.post-ad; filling and submitting the final ad form is not implemented.Work from the directory that contains SKILL.md, pyproject.toml, uv.lock, scripts/, and extension/.
Prerequisites:
uvFirst-time setup:
uv sync.chrome://extensions/.extension/.Gumtree Bridge is enabled.Runtime notes:
No module named 'websockets', run from this project directory and use uv run after uv sync.Use these commands exactly from the project root:
uv run python scripts/cli.py check-loginuv run python scripts/cli.py login --username "<email>" --password "<password>"uv run python scripts/cli.py logoutuv run python scripts/cli.py search --keyword "<keyword>"uv run python scripts/cli.py home-recommenduv run python scripts/cli.py favouritesuv run python scripts/cli.py detail --url "<detail-url>"uv run python scripts/cli.py detail-favourite --url "<detail-url>"uv run python scripts/cli.py messagesuv run python scripts/cli.py detail-message --url "<detail-url>"uv run python scripts/cli.py post-ad --keyword "<keyword>"Installed entrypoint variants are also valid:
uv run gumtree-skills ...For search, add optional flags only when the user asks for filtering or sorting:
--limit <N>--search-location <location>--search-category <category>--sort relevance|date|price_lowest_first|price_highest_first|distance--distance <N>--min-price <N>--max-price <N>--condition as_good_as_new|good|new|fair and repeat when needed--seller-type trade|private and repeat when needed--mobile-storage-capacity <value>--common-for-sale-colour <value>--mobile-model-apple <value>Preserve Gumtree's default search behavior unless the user asks to constrain it.
check-login should treat page-embedded JS data as the primary source of truth.__GUMTREE_ANALYTICS_CONFIG__, initialDataLayer, gumtreeDataLayer, legacy.loggedIn, and window.clientData are stronger signals than DOM text.Manage my Ads, My Orders, Favourites, My Alerts, My Details, Login, and Sign up are only fallbacks.login uses the page login modal, switches to email login, then submits the email and password.logout uses the user menu and submits logout-form.favourites opens https://www.gumtree.com/my-account/favourites.window.clientData.favouriteAds.adverts.detail-favourite requires a logged-in session.already_favourited or just_favourited.messages opens https://www.gumtree.com/manage/messages.--conversation-id "<id>" to target a specific conversation.--message "<text>" to send a message in the current or selected conversation.detail-message first enters messaging from the listing detail page, then reads or sends messages.messages and detail-message both require a logged-in session.post-ad calls Gumtree's category suggestion API with the provided keyword.--keyword, it returns suggested categories for user confirmation.--category-name "<name>" for fuzzy name matching.--category-index <index> to pick a suggestion directly./postad/create?categoryId=<id>.0 on success or 2 on failure.detail-favourite.post-ad stops after category selection and redirect.