Lexmount Browser
Use when the user wants Codex to create, reuse, inspect, or operate a Lexmount remote browser session. Supports context and session lifecycle commands plus Playwright-backed action commands such as opening pages, clicking, typing, screenshots, waitin
Free to install — no account needed
Copy the command below and paste into your agent.
Instant access • No coding needed • No account needed
What you get in 5 minutes
- Full skill code ready to install
- Works with 1 AI agent
- Lifetime updates included
Description
--- name: lexmount-browser description: Use when the user wants Codex to create, reuse, inspect, or operate a Lexmount remote browser session. Supports context and session lifecycle commands plus Playwright-backed action commands such as opening pages, clicking, typing, screenshots, waiting for selectors, and extracting page snapshots. Prefer this skill over hand-written curl requests or ad hoc Playwright scripts when working with Lexmount browser automation. compatibility: "Requires Python 3 plus the dependencies in `requirements.txt`, including `lexmount` and `playwright` for installed-skill usage. Use the installed skill path under `~/.codex/skills/lexmount-browser` by default. If running from this repository during development, prefer `lexmount-python-sdk-quickstart/venv` because it already has the SDK dependencies. Authenticated SDK commands require `LEXMOUNT_API_KEY` and `LEXMOUNT_PROJECT_ID`. `LEXMOUNT_BASE_URL` is optional and should be set to `https://apitest.local.lexmount.net` only in the office test environment." allowed-tools: Bash --- # Lexmount Browser Use this skill when the task needs a Lexmount remote browser for automation, debugging, or manual connection setup. ## Setup check During installation, the installer asks you to choose a `region preset`. Current presets are: - `China region` -> `browser.lexmount.cn` - `Global region` -> `browser.lexmount.com` If `~/.codex/skills/lexmount-browser/.env` already contains `LEXMOUNT_API_KEY` and `LEXMOUNT_PROJECT_ID`, the installer can import them directly into the installed skill. API Keys pages: - `China region`: `https://browser.lexmount.cn/settings/api-keys` - `Global region`: `https://browser.lexmount.com/settings/api-keys` During `npx` installation, prefer confirming the prompt that creates the skill-local virtual environment and installs dependencies. If that step was skipped, initialize the installed skill manually: The virtual environment should live inside the installed skill directory at `~/.codex/skills/lexmount-browser/.venv`. ```bash python3 -m venv ~/.codex/skills/lexmount-browser/.venv ~/.codex/skills/lexmount-browser/.venv/bin/pip install -r ~/.codex/skills/lexmount-browser/requirements.txt ``` This installs the Lexmount SDK and the Playwright Python client into the skill-local virtual environment. Then use: ```bash ~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py --help ``` If you do not want a virtual environment, you can also use: ```bash python3 ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py --help ``` If you are developing from this repository instead of the installed skill, prefer: ```bash lexmount-python-sdk-quickstart/venv/bin/python browser-skill/scripts/lexmount_browser.py --help ``` Use any Python environment that can import `lexmount`, `playwright`, `httpx`, and `dotenv`. ## Region Configuration Environment variables: - `LEXMOUNT_API_KEY` - `LEXMOUNT_PROJECT_ID` - `LEXMOUNT_BASE_URL` - `LEXMOUNT_BASE_URL` is optional. - If you use the `Global region` endpoint, set `LEXMOUNT_BASE_URL=https://api.lexmount.com`. - If you use the `China region` endpoint, do not set `LEXMOUNT_BASE_URL`. Only set it for the office test environment: - `LEXMOUNT_BASE_URL=https://apitest.local.lexmount.net` ## When to use this skill - The user wants Codex to create or reuse a Lexmount browser context. - The user wants a CDP websocket URL for Playwright or another browser client. - The user wants the SDK path instead of manually constructing HTTP requests. - The user wants the quick direct websocket path and accepts the shared-browser limitation. ## When not to use this skill - The task only needs raw HTTP calls unrelated to browser sessions. - The user is asking for Kubernetes deployment or browser-manager server work rather than browser session usage. ## Quick start Run the installed helper: ```bash ~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py prepare ``` This returns JSON with: - `context_id` - `session_id` - `connect_url` - `inspect_url` ## Preferred workflow 1. Prefer the installed helper script instead of hand-writing HTTP requests or ad hoc Playwright code. 2. Use `session create` for lifecycle work and `action ...` commands for browser interactions. 3. `prepare` remains available as a compatibility alias for `session create`. 4. `session create` does not create a context by default. 5. Pass `--create-context` only when the user explicitly needs a new persistent browser profile. 6. Pass `--context-id` when the user wants to reuse an existing context. 7. Use `session close --session-id <id>` when cleanup is needed. 8. Use `action open-url`, `action click`, `action type`, `action wait-selector`, `action screenshot`, `action eval`, or `action snapshot` for the common interaction path. 9. Use `case validate` and `case run` when the task is a repeatable multi-step flow that should live in a file instead of a one-off terminal command. 10. Use `run submit/list/summary/watch/retry` when the user wants to launch the same case multiple times, inspect batch-level status, quickly understand local run results, or rerun failed batches. 11. Only use `direct-url` when the user explicitly wants the quick shared-browser connection method from `wss://.../connection`. 12. Use `research knowledge` when the task is knowledge gathering from search engines with one producer browser generating links and multiple consumer browsers capturing page content in parallel. ## Commands ### Session lifecycle - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session create` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session create --create-context` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session create --context-id <id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session list` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session get --session-id <id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session close --session-id <id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py session keepalive --session-id <id>` ### Context lifecycle - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py context create` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py context list` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py context get --context-id <id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py context delete --context-id <id>` ### Browser actions - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action open-url --session-id <id> --url https://example.com` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action wait-selector --session-id <id> --selector 'button'` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action click --session-id <id> --selector 'button'` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action type --session-id <id> --selector 'input[name=q]' --text 'hello'` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action screenshot --session-id <id> --output /tmp/example.png` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action eval --session-id <id> --expression '() => document.title'` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py action snapshot --session-id <id>` ### Case execution - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py case validate --file /path/to/case.json` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py case run --file /path/to/case.json --stop-on-error` ### Batch run control - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run submit --file /path/to/case.json --count 5 --concurrency 2` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run list` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run summary --batch-id <batch_id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run watch --batch-id <batch_id> --expected-count 5` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run watch --batch-id <batch_id> --live --changes-only` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py run retry --batch-id <batch_id>` ### Research templates - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py research knowledge --query "browser automation" --max-links 100 --consumer-count 6` - `research knowledge` creates one producer browser for search result pages and multiple consumer browsers that stream-capture result page content into a local run directory. ### Compatibility and direct connection - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py prepare` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py list-contexts` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py close-session --session-id <id>` - `~/.codex/skills/lexmount-browser/.venv/bin/python ~/.codex/skills/lexmount-browser/scripts/lexmount_browser.py direct-url` ## Behavior rules - Prefer `session create` over `direct-url`. - Default session browser mode is `normal`. - Default context mode is `read_write`. - `session create` creates a plain session by default and does not allocate a context unless `--create-context` or `--context-id` is provided. - Return structured JSON to the caller instead of prose when using the helper script. - If the SDK import fails, tell the user that `lexmount-python-sdk` or its Python dependencies are not ready in the current environment. - If credentials are missing, report which environment variable is absent. - If session creation hits the platform parallel browser/session limit, return a structured `browser_parallel_limit_reached` error and make the message explicit that the browser parallel quota is full. ## Validation note For local validation, prefer exporting credentials in the current shell for one command instead of hard-coding them into the skill files or script. If the provided `LEXMOUNT_API_KEY` and `LEXMOUNT_PROJECT_ID` are production credentials, do not add `LEXMOUNT_BASE_URL`. ## Implementation note The helper script can read credentials from the installed skill `.env` file at `~/.codex/skills/lexmount-browser/.env`. When working inside this monorepo, the repository copy of the script also injects the local SDK source tree from `lexmount-python-sdk/src` into `PYTHONPATH`, so a separate package install is not required there.
Security Status
Unvetted
Not yet security scanned
Related AI Tools
More Make Money tools you might like
Marketing Skills Division
Free"42 marketing agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more coding agents. 7 pods: content, SEO, CRO, channels, growth, intelligence, sales. Foundation context + orchestration router. 27 Python tools (stdli
Insert instructions below
FreeReplace with description of the skill and when Claude should use it.
Engineering Team Skills
Free"23 engineering agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw, and 6 more tools. Architecture, frontend, backend, QA, DevOps, security, AI/ML, data engineering, Playwright, Stripe, AWS, MS365. 30+ Python tools (stdlib-
Business & Growth Skills
Free"4 business growth agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. Customer success (health scoring, churn), sales engineer (RFP), revenue operations (pipeline, GTM), contract & proposal writer. Python tools (stdlib-onl
C-Level Advisory Ecosystem
Free"10 C-level advisory agent skills and plugins for Claude Code, Codex, Gemini CLI, Cursor, OpenClaw. CEO, CTO, COO, CPO, CMO, CFO, CRO, CISO, CHRO, Executive Mentor. Multi-role board meetings, strategy routing, structured recommendations. For founders
NotebookLM Automation
FreeComplete API for Google NotebookLM - full programmatic access including features not in the web UI. Create notebooks, add sources, generate all artifact types, download in multiple formats. Activates on explicit /notebooklm or intent like "create a p