Research

marmot research — async deep research with optional structured output.

marmot research <query> [flags…]

Always async. Submits a research task on the provider, optionally polls until done.

Providers

exa, firecrawl, parallel, tavily.

Flags

FlagDescription
--provider <slug>One of the four. Falls back to defaults.research.provider.
--api-key <key>Override the env var.
--depth <basic|standard|deep>Effort tier. Maps to per-provider model/processor.
--instructions <text>Optional system instructions.
--schema <json>Inline JSON Schema for structured output.
--schema-file <path>JSON Schema from a file.
--waitBlock and poll until terminal status (default).
--asyncReturn the task id immediately.
--rawEmit the provider's native response under raw.
--jsonEmit the structured envelope (default).
--retries <n>Retry the initial submission up to N times. Polling is unaffected. Default 0, max 10.
--timeout <seconds>Per-attempt submit timeout. Default 120.

Async behavior

Default is --wait (poll until done). Pass --async to get the task id and follow up with marmot get <id>.

See Async tasks.

Config keys

{ "defaults": { "research": { "provider": "parallel" } } }