diff --git a/browsers/computer-controls.mdx b/browsers/computer-controls.mdx index 7e0a1a0..2555646 100644 --- a/browsers/computer-controls.mdx +++ b/browsers/computer-controls.mdx @@ -239,7 +239,14 @@ kernel browsers computer screenshot --to region.png --x 0 --y 0 --w ## Type text -Type literal text, optionally with a delay in milliseconds between keystrokes. +Type literal text on the host. By default, typing uses human-like variable timing: word-sized chunks, natural pauses at word and sentence boundaries, and optional realistic typos corrected with backspace. Set `smooth: false` for xdotool typing with a fixed per-keystroke delay (`delay`, in ms) or instant input when `delay` is `0`. + +| Parameter | Type | Default | Description | +| ------------- | ------- | ------- | ----------- | +| `text` | string | — | Text to type | +| `delay` | integer | `0` | Fixed delay in milliseconds between keystrokes. Only used when `smooth` is `false`; ignored when `smooth` is `true` | +| `smooth` | boolean | `true` | Human-like variable keystroke timing with word-boundary pauses (default, same idea as `moveMouse` / `dragMouse`) | +| `typo_chance` | number | `0` | Per-character typo rate from 0–0.10 (capped; 0.10 ≈ 10% per character on average), corrected with backspace. Only applies when `smooth` is `true` (silently ignored when `smooth` is `false`). Typical values are 0.02–0.05 | ```typescript Typescript/Javascript @@ -248,12 +255,27 @@ import Kernel from '@onkernel/sdk'; const kernel = new Kernel(); const kernelBrowser = await kernel.browsers.create(); +// Human-like smooth typing (default — omit smooth or pass true) +await kernel.browsers.computer.typeText(kernelBrowser.session_id, { + text: 'The quick brown fox jumps over the lazy dog.', +}); + +// Human-like with occasional typos (3% chance per character) +await kernel.browsers.computer.typeText(kernelBrowser.session_id, { + text: 'The quick brown fox jumps over the lazy dog.', + typo_chance: 0.03, +}); + +// Instant typing (all at once, no per-key delay) await kernel.browsers.computer.typeText(kernelBrowser.session_id, { text: 'Hello, World!', + smooth: false, }); +// Fixed delay between keystrokes (smooth off) await kernel.browsers.computer.typeText(kernelBrowser.session_id, { text: 'Slow typing...', + smooth: false, delay: 100, }); ``` @@ -264,27 +286,56 @@ from kernel import Kernel kernel = Kernel() kernel_browser = kernel.browsers.create() +# Human-like smooth typing (default — omit smooth or pass True) +kernel.browsers.computer.type_text( + id=kernel_browser.session_id, + text="The quick brown fox jumps over the lazy dog.", +) + +# Human-like with occasional typos (3% chance per character) +kernel.browsers.computer.type_text( + id=kernel_browser.session_id, + text="The quick brown fox jumps over the lazy dog.", + typo_chance=0.03, +) + +# Instant typing (all at once, no per-key delay) kernel.browsers.computer.type_text( id=kernel_browser.session_id, text="Hello, World!", + smooth=False, ) +# Fixed delay between keystrokes (smooth off) kernel.browsers.computer.type_text( id=kernel_browser.session_id, text="Slow typing...", + smooth=False, delay=100, ) ``` ```bash CLI -# Type text in the browser -kernel browsers computer type --text "Hello, World!" +# Human-like smooth typing (default) +kernel browsers computer type --text "The quick brown fox" + +# Human-like with occasional typos +kernel browsers computer type --text "The quick brown fox" --typo-chance 0.03 + +# Instant typing (all at once) +kernel browsers computer type --text "Hello, World!" --smooth=false -# Type text with a 100ms delay between keystrokes -kernel browsers computer type --text "Slow typing..." --delay 100 +# Fixed delay between keystrokes (smooth off) +kernel browsers computer type --text "Slow typing..." --smooth=false --delay 100 ``` +### Smooth vs instant typing + + + + + ## Press keys Press one or more key symbols (including combinations like "Ctrl+t" or "Ctrl+Shift+Tab"). Optionally hold modifiers and/or set a duration to hold keys down. diff --git a/images/smooth-typing-demo.gif b/images/smooth-typing-demo.gif new file mode 100644 index 0000000..649821a Binary files /dev/null and b/images/smooth-typing-demo.gif differ