Docs
Browser
Bots can browse the web, and you watch it live in the app's browser panel. Take control at any time to sign in or solve a CAPTCHA yourself.
How it works
kwant runs one long-lived Chromium per installation, with a separate browser context for each bot, channel or team. The app connects to kwant over a same-origin WebSocket. kwant relays the screen frames and your input, so your browser never talks to Chromium directly.
- Take Control gives you an exclusive hold. Bot navigation waits until you hand it back, close the panel or disconnect.
- Closing the panel stops its stream. Slow viewers don't build up a backlog of frames.
- Restarting kwant reconnects to the existing sessions while Chromium keeps running.
Local or VM mode
Choose where bots' browser and shell commands run in Settings → Computer, or with the browser panel's mode toggle. Switching takes effect at once, without a restart.
| Local computer | VM | |
|---|---|---|
| Default on | macOS | Everywhere else, including a VPS |
| Browser | Your installed Chrome or Chromium, windowless, with its own profile | A Chromium container |
| kwant's shell | On your computer, in the bot's folder. Every command asks first. | A separate execution container |
| Needs | A Chrome binary | Docker, or your own Chromium service |
In Local mode, Open as window reopens the same profile as a real window, with each bot's page, so you can sign in yourself. Show it here instead brings it back into the panel. kwant never uses your everyday Chrome profile.
VM mode with Docker
Install Docker and start kwant. The first browser request builds the browser image from a recipe embedded in the binary and starts a private container, so a VPS with only the binary works too. No desktop or display server is needed. Prebuild the images to skip the first-use wait:
docker build -t kwnt-browser:v1 -f docker/browser.Dockerfile docker
docker build -t kwnt-executor:v1 -f docker/executor.Dockerfile docker
The browser shares a 1.5 GiB memory limit across all bots, rather than one Chromium per bot. Browser contexts keep cookies and local storage apart. They aren't OS isolation between users who don't trust each other.
Your own Chromium service
If you manage Chromium separately, point kwant at its debugging endpoint:
KWNT_BROWSER_CDP_URL=http://browser:9222 kwnt serve --host 0.0.0.0 --port 8799
Keep that endpoint private: it grants full control of the browser. Use a dedicated browser, never a person's everyday profile.
Settings
| Environment | What it does |
|---|---|
KWNT_COMPUTER_MODE | local or vm, unless a choice is saved in Settings |
KWNT_CHROME_PATH | The browser binary Local mode launches |
KWNT_BROWSER_CDP_URL | Use an existing Chromium service |
Saved website logins for the browser are covered in Approvals & saved passwords.