nimble-extract-reference
Reference for nimble extract command. Load when fetching URLs or scraping pages. Contains: render tiers 1-3, all flags, browser actions, network capture, parser schemas, geo targeting, async, parallelization.
What this skill does
# nimble extract — reference
Fetches a URL and returns its content. The workhorse command — use for any URL where no agent exists.
## Table of Contents
- [Parameters](#parameters)
- [Drivers](#drivers)
- [CLI](#cli)
- [Python SDK](#python-sdk)
- [Render tiers — escalate on failure](#render-tiers--escalate-on-failure)
- [Browser actions](#browser-actions)
- [Network capture](#network-capture)
- [Parser schemas — structured extraction](#parser-schemas--structured-extraction)
- [Geo targeting](#geo-targeting)
- [Async extract](#async-extract)
- [Batch extract](#batch-extract)
- [Parallelization](#parallelization)
- [Response](#response)
---
## Parameters
| Parameter | CLI flag | Type | Default | Description |
| ----------------- | ------------------- | ------ | ------- | --------------------------------------------------------------------------- |
| `url` | `--url` | string | — | Target URL (**required**) |
| `render` | `--render` | bool | false | Enable headless browser (JS rendering) |
| `driver` | `--driver` | string | `vx6` | Engine: `vx6` · `vx8` · `vx8-pro` · `vx10` · `vx10-pro` — see Drivers table |
| `formats` | `--format` | array | `["html"]` | Output format(s): `"html"`, `"markdown"`. CLI: string (`--format markdown`). SDK: array (`formats=["markdown"]`). |
| `parse` | `--parse` | bool | false | Enable parser (use with `parser`) |
| `parser` | `--parser` | JSON | — | Extraction schema — see [parsing-schema.md](parsing-schema.md) |
| `browser_actions` | `--browser-action` | JSON | — | Browser actions sequence — see [browser-actions.md](browser-actions.md) |
| `network_capture` | `--network-capture` | JSON | — | XHR intercept rules — see [network-capture.md](network-capture.md) |
| `is_xhr` | `--is-xhr` | bool | false | Direct API call — no browser, no render |
| `country` | `--country` | string | — | ISO Alpha-2 geo proxy (e.g. `US`, `GB`) |
| `state` | `--state` | string | — | State-level geo targeting |
| `city` | `--city` | string | — | City-level geo targeting |
| `locale` | `--locale` | string | — | LCID locale (e.g. `en-US`, `fr-FR`) — pair with `country` |
| `method` | `--method` | string | `GET` | HTTP method: `GET`, `POST`, `PUT`, `PATCH`, `DELETE` |
| `tag` | `--tag` | string | — | Request tag for analytics |
---
## Drivers
| Driver | Description | Render | Best for |
| ---------- | ----------------- | ------ | ------------------------------ |
| `vx6` | Fast HTTP (no JS) | No | Static HTML, APIs, high volume |
| `vx8` | Headless browser | Yes | Dynamic sites, SPAs |
| `vx8-pro` | Headful browser | Yes | Complex interactions |
| `vx10` | Stealth headless | Yes | Bot-protected sites |
| `vx10-pro` | Stealth headful | Yes | Most protected sites |
---
## CLI
```bash
# Markdown output (default for most tasks)
nimble --transform "data.markdown" extract \
--url "https://example.com/page" --format markdown
# Save to file
nimble --transform "data.markdown" extract \
--url "https://example.com/page" --format markdown > .nimble/page.md
```
## Python SDK
```python
from nimble_python import Nimble
nimble = Nimble()
resp = nimble.extract(url="https://example.com/page", formats=["markdown"])
print(resp["data"]["markdown"])
```
---
## Render tiers — escalate on failure
**Failure signals:** status 500 · empty `data.html` / `data.markdown` · "captcha" / "verify you are human" in content · login wall instead of target page
| Tier | CLI | When |
| ---- | --------------------------------------------------------------------- | ----------------------------------------------- |
| 1 | `extract --url "..."` | Static pages, docs, news, GitHub, Wikipedia, HN |
| 2 | `extract --url "..." --render` | SPAs, dynamic content, JS-rendered pages |
| 2b | `--render --render-options '{"render_type":"idle2","timeout":60000}'` | Slow SPAs, wait for network idle |
| 3 | `--render --driver vx10-pro` | E-commerce, social, job boards — max stealth |
```bash
# Tier 1 — no render
nimble --transform "data.markdown" extract --url "https://example.com" --format markdown
# Tier 2 — render
nimble --transform "data.markdown" extract --url "https://example.com" --render --format markdown
# Tier 3 — stealth
nimble --transform "data.markdown" extract --url "https://example.com" --render --driver vx10-pro --format markdown
```
```python
# Tier 2 — render
resp = nimble.extract(url="https://example.com", render=True, formats=["markdown"])
# Tier 3 — stealth
resp = nimble.extract(url="https://example.com", render=True, driver="vx10-pro", formats=["markdown"])
```
---
## Browser actions
For interacting with a page before extracting — clicks, scrolls, form fills, infinite scroll. Requires `render=True`.
See [browser-actions.md](browser-actions.md) for all action types and params.
```bash
nimble --transform "data.markdown" extract \
--url "https://example.com/product" --render \
--browser-action '[
{"type": "click", "selector": ".tab-reviews", "required": false},
{"type": "wait_for_element", "selector": ".review-list"}
]' --format markdown
```
```python
resp = nimble.extract(
url="https://example.com/product",
render=True,
browser_actions=[
{"type": "click", "selector": ".tab-reviews", "required": False},
{"type": "wait_for_element", "selector": ".review-list"},
],
formats=["markdown"],
)
```
---
## Network capture
When page data comes from XHR/AJAX calls, or to call a known API endpoint directly with `--is-xhr`.
See [network-capture.md](network-capture.md) for filter syntax and `--is-xhr` mode.
```bash
# Intercept an API call triggered by the page
nimble extract \
--url "https://example.com/products" --render \
--network-capture '[{"url": {"type": "contains", "value": "/api/products"}, "resource_type": ["xhr", "fetch"]}]' \
> .nimble/products-api.json
# Known public API endpoint — use --is-xhr (no browser, fastest)
nimble --transform "data.markdown" extract \
--url "https://api.example.com/v1/markets?q=elections&limit=50" \
--is-xhr --format markdown
```
```python
# Intercept via render
resp = nimble.extract(
url="https://example.com/products",
render=True,
network_capture=[{"url": {"type": "contains", "value": "/api/products"}, "resource_type": ["xhr", "fetch"]}],
)
captures = resp["data"]["network_capture"]
# Direct API call — no browser
resp = nimble.extract(
url="https://api.example.com/v1/markets?q=elections&limit=50",
is_xhr=True,
)
```
> **Note:** `is_xhr` and `render` are mutually exclusive.
---
## Parser schemas — structured extraction
When markdown doesn't contain fields cleanly. Results land in `data.parsing`.
See [parsing-schema.md](parsing-schema.md) for selector types, extractors, and post-processors.
```bash
nimble extract --url "https://example.com/producRelated in Image & Video
watch
IncludedWatch a video (URL or local path). Downloads with yt-dlp, extracts auto-scaled frames with ffmpeg, pulls the transcript from captions (or Whisper API fallback), and hands the result to Claude so it can answer questions about what's in the video.
physical-ai-defect-image-generation
IncludedUse when the user wants to orchestrate defect image generation, run associated setup, or handle outputs on OSMO. The Day 0 path handles cold-start with USD-to-ROI, image-edit augmentation, and AnomalyGen to create initial PCBA datasets. The Day 1 path performs inference and labeling on real images. This skill helps with first-time asset setup, creation of finetuning checkpoints, and configuring deployment. Trigger keywords: defect image generation, dig workflow, dig pipeline, defect image detection workflow, aoi pipeline, aoi anomalygen, usd2roi anomalygen, day 0 pcba, day 1 pcba, day 1 real-photo alignment, day 1 manual roi, metal surface anomaly, glass defect, anomalygen finetune, setup_pcb, setup_metal, setup_glass, setup_pretrained, dig setup, dig datasets, dig pretrained checkpoint, dig image-edit endpoint.
accelint-react-best-practices
IncludedReact performance optimization and best practices. ALWAYS use this skill when working with any React code - writing components, hooks, JSX; refactoring; optimizing re-renders, memoization, state management; reviewing for performance; fixing hydration mismatches; debugging infinite re-renders, stale closures, input focus loss, animations restarting; preventing remounting; implementing transitions, lazy initialization, effect dependencies. Even simple React tasks benefit from these patterns. Covers React 19+ (useEffectEvent, Activity, ref props). Triggers - useEffect, useState, useMemo, useCallback, memo, inline components, nested components, components inside components, re-render, performance, hydration, SSR, Next.js, useDeferredValue, combined hooks.
elevenlabs-agents
IncludedBuild conversational AI voice agents with ElevenLabs Platform using React, JavaScript, React Native, or Swift SDKs. Configure agents, tools (client/server/MCP), RAG knowledge bases, multi-voice, and Scribe real-time STT. Use when: building voice chat interfaces, implementing AI phone agents with Twilio, configuring agent workflows or tools, adding RAG knowledge bases, testing with CLI "agents as code", or troubleshooting deprecated @11labs packages, Android audio cutoff, CSP violations, dynamic variables, or WebRTC config. Keywords: ElevenLabs Agents, ElevenLabs voice agents, AI voice agents, conversational AI, @elevenlabs/react, @elevenlabs/client, @elevenlabs/react-native, @elevenlabs/elevenlabs-js, @elevenlabs/agents-cli, elevenlabs SDK, voice AI, TTS, text-to-speech, ASR, speech recognition, turn-taking model, WebRTC voice, WebSocket voice, ElevenLabs conversation, agent system prompt, agent tools, agent knowledge base, RAG voice agents, multi-voice agents, pronunciation dictionary, voice speed control, elevenlabs scribe, @11labs deprecated, Android audio cutoff, CSP violation elevenlabs, dynamic variables elevenlabs, case-sensitive tool names, webhook authentication
humanizer
IncludedHumanize AI-generated text by detecting and removing patterns typical of LLM output. Rewrites text to sound natural, specific, and human. Uses 28 pattern detectors, 560+ AI vocabulary terms across 3 tiers, and statistical analysis (burstiness, type-token ratio, readability) for comprehensive detection. Use when asked to humanize text, de-AI writing, make content sound more natural/human, review writing for AI patterns, score text for AI detection, or improve AI-generated drafts. Covers content, language, style, communication, and filler categories.
generating-mermaid-diagrams
IncludedSalesforce architecture diagrams using Mermaid with ASCII fallback. Use this skill when generating text-based diagrams for Salesforce architecture, OAuth flows, ERDs, integration sequences, or Agentforce structure. TRIGGER when: user says "diagram", "visualize", "ERD", or asks for sequence diagrams, flowcharts, class diagrams, or architecture visualizations in Mermaid. DO NOT TRIGGER when: user wants PNG/SVG image output (use generating-visual-diagrams), or asks about non-Salesforce systems.