kdeps-components-browser
v1.1.1kdeps kdeps-component: browser
set components / shelf workflow
PurposeDrive a real browser with Playwright - navigate, click, fill, type, upload, select, check, hover, scroll, press, clear, evaluate, screenshot, wait
LLM context: ~364 tokens when loaded (prompt or tool definition)
Where it runs
Part of the components set, used in workflow and agent mode. Ready-made workflow steps (sql, browser, email, git, ocr...) a resource calls by name; in agent mode they are also tools.
- a resource names a component (or the model calls it as a tool)
- the component's own resources runcomponents/browser
- its output goes back to the caller
Loaded by: kdeps (agent loop), /settings, kdeps validate, kdeps run, kdeps bundle package, kdeps env, kdeps export k8s, kdeps test
In the code: kdeps (agent loop)yaml.(*Parser).ParseWorkflowyaml.(*Parser).loadAssetComponents
Install
A kdeps asset: installed with the first-run profile that includes its set, or the first time a command needs it, and updated without a new release.
Also installs what it requires, when missing or older: schemas/v1 >=1.0.4, tools/browser_ops.
Pin a version with kdeps install components/browser@<version>.
Contents
component.yaml
apiVersion: kdeps.io/v1
kind: Component
metadata:
name: browser
description: Drive a real browser with Playwright - navigate, click, fill, type, upload, select, check, hover, scroll, press, clear, evaluate, screenshot, wait
version: "1.1.1"
interface:
inputs:
- name: url
type: string
default: ""
description: Page to open first; with a sessionId and no url, the session's last page
- name: actions
type: array
default: []
description: "Steps in order, e.g. [{action: fill, selector: '#q', value: kdeps}, {action: press, key: Enter}]"
- name: engine
type: string
default: chromium
description: chromium, firefox or webkit
- name: headless
type: boolean
default: true
description: Run without a window
- name: sessionId
type: string
default: ""
description: Keep cookies, storage and the current page between calls with the same id
- name: viewport
type: object
default: {}
description: "{width, height}; default 1280x720"
- name: timeout
type: string
default: 30s
description: Per-step timeout as a duration
- name: waitFor
type: string
default: ""
description: Selector to wait for after the first page loads
- name: userAgent
type: string
default: ""
description: User-Agent override
- name: stealthMode
type: boolean
default: false
description: Launch flags and context settings that make automation less detectable
# The tool returns {success, url, title, sessionId, actionResults}: the page
# it ended on and each step's result fields.
output: "{{ fromJSON(output('browserRun').body) }}"
resources:
# One call to the kdeps API's browser_ops tool: the component holds no
# browser code of its own. Playwright runs in the kdeps process and the
# engine's browser downloads on first use.
- actionId: browserRun
name: Browser
httpClient:
method: POST
url: http://kdeps.api/apis/tools.kdeps.io/v1/tools/browser_ops/call
headers:
Content-Type: application/json
failOnError: true
timeout: 600s
data:
url: "{{ get('browser.url') }}"
actions: "{{ get('browser.actions') }}"
engine: "{{ get('browser.engine') }}"
headless: "{{ get('browser.headless') }}"
sessionId: "{{ get('browser.sessionId') }}"
viewport: "{{ get('browser.viewport') }}"
timeout: "{{ get('browser.timeout') }}"
waitFor: "{{ get('browser.waitFor') }}"
userAgent: "{{ get('browser.userAgent') }}"
stealthMode: "{{ get('browser.stealthMode') }}"
requires:
schemas/v1: ">=1.0.4"
tools/browser_ops: ""
version: 1.1.1
requires:
schemas/v1: '>=1.0.4'
tools/browser_ops: ""
files:
component.yaml: |
apiVersion: kdeps.io/v1
kind: Component
metadata:
name: browser
description: Drive a real browser with Playwright - navigate, click, fill, type, upload, select, check, hover, scroll, press, clear, evaluate, screenshot, wait
version: "1.1.1"
interface:
inputs:
- name: url
type: string
default: ""
description: Page to open first; with a sessionId and no url, the session's last page
- name: actions
type: array
default: []
description: "Steps in order, e.g. [{action: fill, selector: '#q', value: kdeps}, {action: press, key: Enter}]"
- name: engine
type: string
default: chromium
description: chromium, firefox or webkit
- name: headless
type: boolean
default: true
description: Run without a window
- name: sessionId
type: string
default: ""
description: Keep cookies, storage and the current page between calls with the same id
- name: viewport
type: object
default: {}
description: "{width, height}; default 1280x720"
- name: timeout
type: string
default: 30s
description: Per-step timeout as a duration
- name: waitFor
type: string
default: ""
description: Selector to wait for after the first page loads
- name: userAgent
type: string
default: ""
description: User-Agent override
- name: stealthMode
type: boolean
default: false
description: Launch flags and context settings that make automation less detectable
# The tool returns {success, url, title, sessionId, actionResults}: the page
# it ended on and each step's result fields.
output: "{{ fromJSON(output('browserRun').body) }}"
resources:
# One call to the kdeps API's browser_ops tool: the component holds no
# browser code of its own. Playwright runs in the kdeps process and the
# engine's browser downloads on first use.
- actionId: browserRun
name: Browser
httpClient:
method: POST
url: http://kdeps.api/apis/tools.kdeps.io/v1/tools/browser_ops/call
headers:
Content-Type: application/json
failOnError: true
timeout: 600s
data:
url: "{{ get('browser.url') }}"
actions: "{{ get('browser.actions') }}"
engine: "{{ get('browser.engine') }}"
headless: "{{ get('browser.headless') }}"
sessionId: "{{ get('browser.sessionId') }}"
viewport: "{{ get('browser.viewport') }}"
timeout: "{{ get('browser.timeout') }}"
waitFor: "{{ get('browser.waitFor') }}"
userAgent: "{{ get('browser.userAgent') }}"
stealthMode: "{{ get('browser.stealthMode') }}"
Versions
| Version | Published | Status |
|---|---|---|
| 1.1.1 | 10/21/2026 | active |
| 1.1.0 | 10/21/2026 | active |
| 1.0.0 | 10/14/2026 | active |
Details
- Author
- kdeps
- License
- Apache-2.0
- Latest Version
- 1.1.1
- Published
- 10/14/2026