Seeds & personas
A seed is the master input that derives an entire coherent device: User-Agent, UA-CH, WebGL, canvas, audio, screen, hardware and more, all internally consistent. The same seed reproduces the same device every time.
Pick a seed in the right range
Each platform has a seed range. Choose a seed inside a range and the persona lines up automatically, or pass platform= explicitly.
| Platform | Seed range | platform= |
|---|---|---|
| Windows | 10000 – 99999 | "windows" |
| macOS (Apple Silicon) | 100000 – 199999 | "macos" |
| Linux | 200000 – 299999 | "linux" |
A repeatable device
seed.py
from capium import launch
# The same seed always reproduces the same device.
browser = launch(
seed=200123, # a specific, repeatable Linux device
platform="linux",
)
page = browser.new_context().new_page()A fresh identity each time
Leave seed out and Capium generates a new random identity per launch.
random.py
# Omit seed (or seed=None) for a fresh random identity each launch.
browser = launch(platform="windows")Passthrough (debugging)
Passing seed="off" (also "false" or "none") disables spoofing entirely and reports your host's real values. Useful to isolate whether an issue is the persona or the target. See the parameter reference.
passthrough.py
# seed="off" disables spoofing entirely and reports your real values.
browser = launch(seed="off") # debugging onlyReuse at scale
- One account, one seed. Keep a stable seed (and a persistent profile and sticky proxy) per identity you maintain, so the device looks the same every visit.
- Spread fresh work. For one-off, high-volume jobs, use distinct seeds so sessions don't share a single canvas/audio hash. Two different seeds never collide.
- Match the host. Prefer running a persona on a matching-OS host (a Windows persona on Windows); cross-OS rendering can surface tells. See What Capium patches.