Browser automation for llmist agents using Camoufox anti-detect browser
npm install dhalsim![]()



Browser automation gadgets for llmist agents using Camoufox anti-detect browser.
Use dhalsim gadgets directly from the command line for quick tasks and testing.
``bashUse the BrowseWeb subagent
npx @llmist/cli agent "go to apple.com and find iPhone 16 Pro price" -g dhalsim:subagent
$3
Configure BrowseWeb subagent in
~/.llmist/cli.toml:`toml
[subagents.BrowseWeb]
model = "sonnet" # LLM model for the subagent (default: sonnet)
maxIterations = 20 # Max agent loop iterations (default: 15)
headless = true # Run browser in headless mode (default: true)
timeoutMs = 600000 # Overall timeout in ms (default: 300000 = 5 min, 0 = disabled)
disableCache = false # Disable browser cache for lower memory usage (default: false)
navigationTimeoutMs = 60000 # Navigation timeout in ms (default: 60000)
`#### Per-profile configuration
`toml
[develop.subagents.BrowseWeb]
headless = false # Show browser during development[research.subagents.BrowseWeb]
maxIterations = 30 # More iterations for deep research
`#### Using "inherit" for model
`toml
[subagents.BrowseWeb]
model = "inherit" # Use parent agent's model
`#### Production Deployment
For production environments, consider the following settings:
`toml
[production.subagents.BrowseWeb]
headless = true # Always run headless in production
disableCache = true # Reduces memory per browser instance (~100-200MB savings)
navigationTimeoutMs = 90000 # 90s for slow networks or heavy sites
maxIterations = 20 # More iterations for reliability
`Resource requirements:
- Each browser instance uses ~300-500MB RAM
- Running multiple concurrent
BrowseWeb calls multiplies memory usage
- Use disableCache = true for environments with <1GB RAM per browser$3
`toml
[my-research-command]
gadgets = [
"dhalsim:subagent", # from npm
"git+https://github.com/zbigniewsobiecki/dhalsim.git#dev:subagent", # from git
]
`---
Using in Projects
Install dhalsim as a dependency and use gadgets programmatically.
$3
`bash
npm install dhalsim
`$3
`typescript
import { LLMist } from 'llmist';
import { Dhalsim } from 'dhalsim';const result = await LLMist.createAgent()
.withModel('sonnet')
.withGadgets(new Dhalsim())
.askAndCollect('Go to google.com and search for "playwright"');
// With custom timeout (10 minutes)
const dhalsim = new Dhalsim({ timeoutMs: 600000 });
// Disable timeout for debugging
const debugDhalsim = new Dhalsim({ timeoutMs: 0 });
`$3
`typescript
import { LLMist } from 'llmist';
import { createGadgetsByPreset } from 'dhalsim';const gadgets = createGadgetsByPreset('all');
const agent = LLMist.createAgent()
.withGadgets(...gadgets)
.ask('Navigate to example.com and take a screenshot');
for await (const event of agent.run()) {
// handle events
}
`---
Presets
-
all (default) - All gadgets
- readonly - Navigate, Screenshot, GetFullPageContent, ListPages
- minimal - Navigate, Screenshot, GetFullPageContent
- subagent` - BrowseWeb subagent only| Category | Gadgets |
|----------|---------|
| Page | NewPage, ClosePage, ListPages |
| Navigation | Navigate, GoBack, GoForward, Reload |
| Content | GetFullPageContent, Screenshot |
| Interaction | Click, Type, Fill, FillForm, PressKey, Select, Check, Hover, Scroll, DismissOverlays |
| Script | ExecuteScript |
| Wait | WaitForElement, Wait |
| User Input | RequestUserAssistance |
Autonomous browser agent that can navigate, interact, and extract information from websites. Runs its own agent loop internally, making it suitable for complex multi-step web tasks.