Intro

OpenClaw 2026.3.1 is out. This one is heavy. When I first opened the release notes, the scrolling didn’t stop for a while.

Three themes sum it up:

  1. Claude 4.6 finally thinks by default β€” Adaptive Thinking, auto-enabled
  2. Android nodes become a real personal assistant β€” cameras, contacts, calendar, pedometer and all
  3. Channel systems rebuilt from the ground up β€” Discord threads, Telegram DM topics, both redesigned

1. 🧠 Claude 4.6 β€” Adaptive Thinking Is Now the Default

This is the change I’ll feel the most from day one.

Previously, Claude 4.6 models were set to low thinking level by default, same as everything else. Now, all Claude 4.6 models default to adaptive β€” including Bedrock Claude 4.6 refs.

What does adaptive mean? Simple questions get fast answers. Complex problems trigger deeper reasoning automatically. No need to manually toggle /reasoning on anymore β€” Claude 4.6 just figures it out.

Other reasoning-capable models (Gemini, etc.) stay at low unless explicitly configured. Claude 4.6 gets special treatment.

If you’re already running Claude 4.6 as your default model, this is a free upgrade with zero config changes. πŸ‘‹


2. πŸ“± Android Nodes β€” Now Actually a Phone Assistant

Two separate PRs landed for Android in this release, both from @obviyus. That’s a lot of mobile love.

First batch: Hardware & Notifications

  • camera.list: List all cameras on the device
  • device.permissions: Check current app permission states
  • device.health: Query battery, storage, and device health
  • notifications.actions: Directly open / dismiss / reply to notifications

Second batch: Life Data

  • system.notify: Agent pushes a notification directly to the device
  • photos.latest: Access recent photos
  • contacts.search / contacts.add: Search and add contacts
  • calendar.events / calendar.add: Read and create calendar events
  • motion.activity / motion.pedometer: Activity detection and step count data

Honestly, at this point the AI has its hands on your phone. Adding contacts, creating calendar events, accessing photos β€” that’s proper assistant territory. The pedometer integration is particularly interesting if you’re into automating workout logs like I am. πŸƒβ€β™‚οΈ


3. πŸ’¬ Discord Threads β€” Fixed TTL β†’ Inactivity-Based Lifecycle

Discord thread-bound sessions used to run on a fixed TTL β€” a hard timer that expired regardless of whether the conversation was still active. That’s now replaced with an inactivity-based lifecycle. (Thanks @osolmaz)

Changes:

  • idleHours (default: 24h): Session ends after this much inactivity since the last message
  • maxAgeHours: Optional hard cap β€” session ends after this regardless of activity

New slash commands:

/session idle      # Immediately mark the current session as idle
/session max-age   # Set or inspect the max age for this session

The old fixed TTL had two failure modes: sessions dying mid-conversation when the timer hit, or zombie sessions lingering long after they were done. Inactivity-based control solves both cleanly.


4. πŸ“¨ Telegram DM Topics β€” One Chat, Multiple Sessions

The big Telegram feature in this release. (Thanks @kesor)

Per-DM topic routing is now supported. Within a single Telegram DM, you can have separate sessions routed by topic.

What’s configurable per topic:

  • Individual allowlists, dmPolicy, skills, and systemPrompt
  • DM topics routed as distinct inbound/outbound sessions
  • Topic-aware authorization and debounce applied to messages, callbacks, commands, and reactions

In plain terms: one Telegram bot chat, /work topic runs a work-mode agent with a business system prompt, /dev topic runs a coding agent. Completely independent. Useful if you’re managing multiple agents across one channel.


5. ⚑ OpenAI β€” WebSocket Is Now the Default Transport

OpenAI Responses API now defaults to WebSocket-first (transport: "auto"), with automatic SSE fallback if the connection fails.

Additional changes:

  • Shared WS stream/connection runtime wiring with per-session cleanup on close
  • WebSocket warm-up option added β€” enabled by default for openai/* models
    • params.openaiWsWarmup controls it per-model
    • Pre-establishes the WS connection to cut down first-response cold start latency

The warm-up option should make a noticeable difference for anyone where first-message response speed matters.


6. 🐳 Gateway/Docker β€” Built-in Health Check Endpoints

For anyone running OpenClaw behind Docker or Kubernetes. (Thanks @vincentkoc)

The gateway now ships built-in HTTP health check endpoints out of the box:

GET /health   # Liveness
GET /healthz  # Liveness (K8s style)
GET /ready    # Readiness
GET /readyz   # Readiness (K8s style)

If you already have custom handlers registered on those paths, they won’t be shadowed β€” fallback routing ensures your existing setup stays intact.

No more bolting on a separate health check proxy if you’re deploying to Kubernetes.


7. πŸͺΆ Cron/Heartbeat β€” Lightweight Bootstrap Mode

A practical optimization for automation runs. (Thanks @jose-velez)

Opt-in lightweight bootstrap mode:

  • Add --light-context to cron agent turns to skip unnecessary workspace file injection
  • For heartbeat, set agents.*.heartbeat.lightContext: true β†’ only HEARTBEAT.md is loaded
  • Less bootstrap overhead means fewer tokens burned per automated run

If you’re running Heartbeat every 30 minutes like I am, this quietly adds up to real savings. Every automated run that doesn’t need to load the full workspace context is money not spent on API calls. πŸ€‘


8. πŸ› οΈ Other Notable Changes

openclaw config file command (Thanks @cyb1278588254)

openclaw config file

Prints the path of the currently loaded config file β€” whether it’s coming from OPENCLAW_CONFIG_PATH or the default location. Small, but saves a lot of guessing during debugging.


New Diffs plugin tool (Thanks @gumadeiras)

A new read-only diff rendering tool that takes before/after text or a unified patch. Outputs to a gateway viewer URL, canvas view, or PNG image. Could slot nicely into code review workflows.


Web UI i18n expansion

  • zh-CN (Simplified Chinese): Cron page labels, filters, form help text, and validation messages fully localized (Thanks @BUGKillerKing)
  • de (German): German locale added to Overview settings, with supported locales auto-rendered from constants (Thanks @dsantoreis)

OpenClaw is becoming a genuinely global project. Korean when… πŸ‘€


Feishu gets serious attention (Thanks @xuhao1, @schumilin, @liuweifly, @zhoulongchao77)

Four separate Feishu updates in one release:

  • Docx table creation/writing + image/file uploads
  • Inbound message reaction handling (im.message.reaction.created_v1)
  • Chat info and member query tool actions
  • Optional owner permission grant on document creation

If your team runs on Feishu, this release has a lot for you.


LanceDB custom embeddings (Thanks @rish2jain, @vincentkoc)

LanceDB memory backend now supports a custom OpenAI baseUrl and configurable embedding dimensions. Useful if you’re pointing embeddings at a self-hosted OpenAI-compatible server.


OPENCLAW_SHELL environment marker (Thanks @vincentkoc)

OPENCLAW_SHELL is now automatically set across shell-like runtimes (exec, acp, acp-client, tui-local). Use it in .bashrc or .zshrc to detect OpenClaw contexts and apply different behavior for shell startup rules.


Wrapping Up

2026.3.1 is a release built around three things: better AI defaults, dramatically expanded mobile reach, and a maturing channel system.

Claude 4.6 Adaptive Thinking kicking in by default is the kind of upgrade you feel without doing anything. Android nodes crossing into contacts, calendar, photos, and motion data is the point where “AI as a real personal assistant” stops being hypothetical. And the Heartbeat lightweight bootstrap is the kind of quiet, practical win that pays off slowly but consistently.

Same as always:

openclaw update

Go get it. πŸš€