ReadonlyoutputDir: stringReadonlycaptureVideo: booleanReadonlyviewports: readonly ViewportConfig[]ReadonlymaxDepth: numberReadonlywaitTime: numberReadonlyvideoOptions: VideoOptionsReadonlyincludeSubdomains: booleanReadonlyallowedHosts: readonly string[]ReadonlyrouteConcurrency: numberReadonlymenuInteractionSelectors: readonly string[]ReadonlyscreenshotHideSelectors: readonly string[]ReadonlyffmpegPath: stringReadonlywarmupScroll: booleanReadonlylaunchArgs: readonly string[]ReadonlycolorScheme: "light" | "dark" | "no-preference"Readonlystates: readonly CaptureState[]Named interaction scripts run before capture. Empty by default, so a run without a states file behaves exactly as it always has.
ReadonlystateTimeout: numberDefault budget in ms for reaching a state: navigation, the
precondition probe and the script. A state may override it.
It deliberately stops there. Screenshot and video capture are bounded by
their own timeouts and by videoOptions.duration × viewport count, and
folding them in made the default unsatisfiable: a state captured with
--video could not fit a 30 s budget on any configuration, so every
state timed out. The default exceeds the 30 s navigation timeout so a
slow first load still leaves the script a budget to run in.
ReadonlypreconditionTimeout: numberBudget for a state's precondition probe; a state may override it with
its own preconditionTimeoutMs.
Separate from stateTimeout, and much smaller, because the two answer
different questions. The probe decides whether the state exists here at
all, and its cost is paid in full by every state that legitimately does
not — so it has to be long enough for a slow-booting app to reach first
paint, and short enough that a skip is not the run's dominant cost.
ReadonlycaptureRoutes: booleanCrawl and capture routes. false captures only scripted states.
ReadonlyallowStateRequests: booleanPermit request steps. Off by default: a states file handed to you by a
colleague should not be able to POST to your app because you ran the tool.
Optionaloptions: MakeOptionsStatic ReadonlyTypeStatic ReadonlyEncodedStatic ReadonlyContextStatic Readonly[Static ReadonlyastStatic ReadonlyfieldsReadonlyoutputDir: typeof String$ReadonlycaptureVideo: typeof Boolean$Readonlyviewports: Array$<typeof ViewportConfig>ReadonlymaxDepth: filter<Schema<number, number, never>>ReadonlywaitTime: filter<Schema<number, number, never>>ReadonlyvideoOptions: typeof VideoOptionsReadonlyincludeSubdomains: typeof Boolean$ReadonlyallowedHosts: Array$<typeof String$>ReadonlyrouteConcurrency: filter<Schema<number, number, never>>ReadonlymenuInteractionSelectors: Array$<typeof String$>ReadonlyscreenshotHideSelectors: Array$<typeof String$>ReadonlyffmpegPath: typeof String$ReadonlywarmupScroll: typeof Boolean$ReadonlylaunchArgs: Array$<typeof String$>ReadonlycolorScheme: Literal<["light", "dark", "no-preference"]>The prefers-color-scheme the browser reports to the page.
Defaults to "light", matching Playwright, so existing captures are
unchanged. Sites that follow the OS theme render their light face under
headless Chromium regardless of what their authors see day to day, so
capturing such a site's dark face requires saying so explicitly.
Readonlystates: Array$<typeof CaptureState>Named interaction scripts run before capture. Empty by default, so a run without a states file behaves exactly as it always has.
ReadonlystateTimeout: filter<Schema<number, number, never>>Default budget in ms for reaching a state: navigation, the
precondition probe and the script. A state may override it.
It deliberately stops there. Screenshot and video capture are bounded by
their own timeouts and by videoOptions.duration × viewport count, and
folding them in made the default unsatisfiable: a state captured with
--video could not fit a 30 s budget on any configuration, so every
state timed out. The default exceeds the 30 s navigation timeout so a
slow first load still leaves the script a budget to run in.
ReadonlypreconditionTimeout: filter<Schema<number, number, never>>Budget for a state's precondition probe; a state may override it with
its own preconditionTimeoutMs.
Separate from stateTimeout, and much smaller, because the two answer
different questions. The probe decides whether the state exists here at
all, and its cost is paid in full by every state that legitimately does
not — so it has to be long enough for a slow-booting app to reach first
paint, and short enough that a skip is not the run's dominant cost.
ReadonlycaptureRoutes: typeof Boolean$Crawl and capture routes. false captures only scripted states.
ReadonlyallowStateRequests: typeof Boolean$Permit request steps. Off by default: a states file handed to you by a
colleague should not be able to POST to your app because you ran the tool.
Static ReadonlyidentifierReadonlyoutputReadonlycaptureReadonlyviewportsReadonlymaxReadonlywaitReadonlyvideoReadonlyincludeReadonlyallowedReadonlyrouteReadonlymenuReadonlyscreenshotReadonlyffmpegReadonlywarmupReadonlylaunchReadonlycolorThe prefers-color-scheme the browser reports to the page.
Defaults to "light", matching Playwright, so existing captures are
unchanged. Sites that follow the OS theme render their light face under
headless Chromium regardless of what their authors see day to day, so
capturing such a site's dark face requires saying so explicitly.
ReadonlystatesNamed interaction scripts run before capture. Empty by default, so a run without a states file behaves exactly as it always has.
ReadonlystateDefault budget in ms for reaching a state: navigation, the
precondition probe and the script. A state may override it.
It deliberately stops there. Screenshot and video capture are bounded by
their own timeouts and by videoOptions.duration × viewport count, and
folding them in made the default unsatisfiable: a state captured with
--video could not fit a 30 s budget on any configuration, so every
state timed out. The default exceeds the 30 s navigation timeout so a
slow first load still leaves the script a budget to run in.
ReadonlypreconditionBudget for a state's precondition probe; a state may override it with
its own preconditionTimeoutMs.
Separate from stateTimeout, and much smaller, because the two answer
different questions. The probe decides whether the state exists here at
all, and its cost is paid in full by every state that legitimately does
not — so it has to be long enough for a slow-booting app to reach first
paint, and short enough that a skip is not the run's dominant cost.
ReadonlycaptureCrawl and capture routes. false captures only scripted states.
ReadonlyallowPermit request steps. Off by default: a states file handed to you by a
colleague should not be able to POST to your app because you ran the tool.
Static ReadonlyDefaultStaticmakeStaticannotationsMerges a set of new annotations with existing ones, potentially overwriting any duplicates.
StaticextendStatictransformStatictransformStaticpipe
The
prefers-color-schemethe browser reports to the page.Defaults to
"light", matching Playwright, so existing captures are unchanged. Sites that follow the OS theme render their light face under headless Chromium regardless of what their authors see day to day, so capturing such a site's dark face requires saying so explicitly.