Clawd Console
Your command deck
Clawdbot User Guide, Install & Troubleshooting FAQs

Clawdbot Persistent Session

A Clawdbot persistent session usually means one thing: your browser automation stays logged in across restarts. The foundation is a persistent Chrome profile directory (--user-data-dir) that lives on disk and is owned by the same service user every time.

Quick answer

  • Persistent: cookies, local storage, saved sessions, and your browser login state — if you use a stable profile directory.
  • Not persistent: ephemeral tab state and “whatever was open” unless you implement it explicitly.
  • Most common failure: the browser is launching with a different --user-data-dir (or a different OS user), so it looks like it “forgot” your login.
Related
This is part of the One-Brain reliability pattern:

Common symptoms

  • You must log in again after every restart/reboot.
  • Automation works only when you run it manually (but not via systemd).
  • Chrome starts, but CDP tools can’t connect (profile lock / port collision).
  • Sessions persist sometimes, but “randomly” disappear (usually split-brain: root vs non-root).
Image placeholder
(Insert: screenshot of persistent profile directory + /json/version check.)

What persistence means

When people say “persistent session,” they often mean “keep me logged in.” In practice, persistence happens at multiple layers:

  • Browser persistence (Chrome profile): cookies + local storage + saved sessions. This is the big one.
  • Gateway/console persistence (DATA_DIR): transcript, PM board, worklogs, uploads — durable state for the system itself.
  • Auth profile persistence (.clawdbot): provider tokens, profiles, and tool credentials tied to HOME.

If any of those move (different user, different home, different data directory), persistence will appear to “break.”

Browser persistence: use a stable user-data-dir

To keep logins across restarts, Chrome must start with the same profile directory every time, and that directory must be writable by the service user that runs Chrome.

Known-good pattern

google-chrome \
  --headless=new \
  --remote-debugging-address=127.0.0.1 \
  --remote-debugging-port=18800 \
  --user-data-dir=/home/master/clawd/apps/console-data/chrome-profile

Verify persistence is actually working

  1. Start Chrome with the profile directory.
  2. Log in once (interactive or via an operator flow that writes cookies).
  3. Restart Chrome.
  4. Confirm the session remains logged in.

Verify CDP endpoint

curl -s http://127.0.0.1:18800/json/version
If Chrome won’t start or CDP is down, use: Clawdbot headless Chrome troubleshooting.

Gateway/console persistence: DATA_DIR matters

Your PM board, transcript, and worklogs should live in a single durable directory (commonly referred to as DATA_DIR). This is separate from browser session persistence, but both are required for long-lived, operator-grade reliability.

  • If DATA_DIR is on ephemeral storage, you’ll lose state after reboot.
  • If you have multiple DATA_DIRs (or multiple installs), you’ll read/write different “realities.”

Start with the high-level guide: Clawdbot User Guide.

Troubleshooting: when persistence fails

If your session doesn’t stick, the cause is usually one of these:

  1. Different OS user starts Chrome (root vs master) ⇒ different home, different permissions, different profile path.
  2. Different user-data-dir each run ⇒ you’re creating a new profile every time.
  3. Profile lock / singleton issues ⇒ another Chrome instance still holds the profile directory.
  4. Port collision ⇒ CDP port is already in use, automation connects to the wrong instance (or none).
  5. Snap sandbox oddities ⇒ Chrome/Chromium packaging causes inconsistent behavior; prefer deb install when possible.

Get Early Access!

Launching any day…

Hosted Clawdbot + ClawdConsole workspaces are coming very, very soon.

Join the waitlist and we’ll spin up your workspace the moment access opens.

  • Same operator cockpit you’re seeing here
  • Private hosted workspace
  • We’ll email you your link when it’s ready