OpenClaw logo
TryOpenClaw
Try for $1

Close the laptop, kill the bot: Claude Code's always-on problem

By Linas Valiukas · March 24, 2026

Anthropic has shipped four different features in three months trying to make Claude Code work as an always-on agent. Channels. Dispatch. Cloud tasks. Desktop tasks. Each one gets closer. None of them get there.

The problem isn't effort. The problem is architecture.

A CLI is not a server

Claude Code is a Node.js process that runs in your terminal. That's the whole product. When you start a session, it spawns child processes for MCP servers and tool calls. When the terminal closes, the parent process dies and takes everything with it. No daemon mode. No background service. No process that survives you closing your laptop.

This is fine for a coding assistant. You open a terminal, you code, you close the terminal, you're done. But a messaging agent needs to be alive when you're not. That's the entire point of having one.

Anthropic knows this. Their channels documentation says it plainly: "Events only arrive while the session is open, so for an always-on setup you run Claude in a background process or persistent terminal."

Read that again. Their solution to "Claude Code isn't always-on" is "you make it always-on." Set up a server. Install tmux or a process manager. Handle reboots, crashes, and OOM kills yourself. Congratulations, you're a sysadmin now.

The permission prompt that blocks everything

Even if you keep the terminal alive, you hit the next wall immediately. Claude Code has a permission system. Every tool call can trigger a prompt asking you to approve it. When you're at your keyboard coding, that's fine. Useful, even.

When you're not at the keyboard, your bot stops. From the docs: "If Claude hits a permission prompt while you're away from the terminal, the session pauses until you respond." Someone messages your Telegram bot at 2 AM. Claude wants to call a tool to look something up before replying. Permission prompt fires. Nobody approves it. Your bot goes silent until morning.

The workarounds all have holes. You can pre-configure allow rules in settings.json, but you can't anticipate every tool call an agent might need. You can use the permission relay protocol to forward prompts to your phone via Telegram, but then you're the human in the loop at 2 AM. You can use --permission-mode plan, but that makes your agent read-only.

Or you can use the flag.

The flag Anthropic doesn't want you to use

--dangerously-skip-permissions. That's the real name. Anthropic chose those words on purpose. It bypasses every safety prompt. Every tool call goes through without human approval.

For a coding assistant running in a sandbox on your machine, it's a calculated risk. For a messaging bot that strangers can talk to, running unattended on a server? The flag name is the documentation.

It also doesn't work reliably. There are 20+ open GitHub issues about it. The flag still prompts for .claude/ directory writes. It sometimes asks for permissions on Linux anyway. It resets mid-session when hooks are configured. In headless mode, the agent infinitely retries on permission denial instead of failing gracefully.

So the only way to run Claude Code unattended removes all safety guardrails, and it doesn't even do that consistently.

Anthropic's attempts to patch the gap

Since January, Anthropic has thrown features at this problem. Here's what each one actually does and where it falls short:

Channels (March 20): Pipe Telegram and Discord messages into a CLI session. Session must be open. Permission prompts block everything. Only two platforms. No WhatsApp. We covered this in detail.

Dispatch (March 17): Send tasks to your desktop from your phone. Sounds great. Except: your Desktop app has to be running. Close the app, shut down the machine, or let it sleep, and Dispatch stops. It's task delegation, not always-on. Computer use approvals expire after 30 minutes. Pro/Max plans only.

Cloud scheduled tasks: Run on Anthropic's servers, persist without your machine. The closest thing to always-on. But minimum interval is one hour. You can't run a messaging bot that responds to people once an hour. These are cron jobs, not agents.

Desktop scheduled tasks: Run locally, survive restarts. Minimum one-minute interval. Better, but still not real-time, and still tied to your machine being on.

Each one solves a piece of the puzzle. None of them assemble it.

What people actually do

The community has built its own duct-tape solutions. A project called Instar wraps Claude Code in a persistent server with a supervisor daemon, SQLite memory, crash recovery, and Telegram integration. It exists because Claude Code doesn't do any of that natively. Another project, ClaudeClaw, adds scheduling, voice commands, and cron jobs on top of Claude Code. Both predated Anthropic's official Channels launch.

The more practical crowd runs Claude Code inside tmux on a VPS with --dangerously-skip-permissions and hopes for the best. One Hacker News user described needing "multiple moving parts — Tailscale, tmux, hooks" just to keep a remote setup alive. Another said they "got fed with the permission approval and did not want to use --dangerously-skip-permissions" but saw no other option.

Nobody's happy with this. It works the way carrying water in your hands works. You'll get some there.

Why the architecture can't be patched

The core issue isn't missing features. It's that Claude Code is a CLI process with a request-response lifecycle. A message comes in, Claude processes it, a response goes out, and Claude waits for the next input. As one developer put it: "CLI-based AI agents block waiting for input. After completing a task, they sit idle."

An always-on agent needs to be a server. It needs to accept connections from multiple users simultaneously. It needs persistent state that survives process restarts. It needs a permission model designed for unsupervised operation, not one that pauses everything until a human clicks "allow."

You can bolt features onto a CLI to make it behave more like a server. Anthropic is doing exactly that. But the bolts keep showing.

What "always-on" actually looks like

OpenClaw is a server application. It runs as a Docker container backed by PostgreSQL. Start it and it stays running. Conversation state persists across restarts. Crash recovery is built in. It handles multiple users concurrently, maintains per-user conversation history, and has skill-level access controls designed for autonomous operation.

No terminal to keep open. No permission prompts to approve at 2 AM. No flags that disable every safety mechanism just so your bot keeps responding.

The difference isn't polish. It's category. Claude Code is a tool you use. An always-on agent is a thing that runs. Those are different architectures for different problems, and no amount of feature work will turn one into the other.

On TryOpenClaw.ai, you don't manage any of this. You sign up, connect your messaging app, and your agent is live. WhatsApp, Telegram, Discord, Slack, iMessage. Persistent memory. Proactive scheduling. Always on. We handle the servers, the restarts, the updates, and the uptime. Managed hosting starts at $39/month.

Frequently asked questions

Can Claude Code run 24/7 as a messaging bot?

Not natively. The process dies when the terminal closes. Anthropic suggests running it in a background process or persistent terminal, which means setting up and maintaining server infrastructure yourself. Cloud scheduled tasks run on Anthropic's servers but fire at most once per hour — too slow for real-time messaging.

What does --dangerously-skip-permissions do?

It bypasses all permission prompts in Claude Code. Without it, an unattended bot pauses every time Claude needs to use a tool, waiting for human approval that never comes. The flag removes all safety guardrails and has 20+ open bugs on GitHub. Anthropic named it to communicate the risk.

Does Dispatch solve the always-on problem?

Partially. You can send tasks from your phone, but the Desktop app must be running on your machine. Close the app or shut down the computer, and sessions stop. It's for delegating tasks, not running a 24/7 messaging agent.

How does OpenClaw handle always-on differently?

OpenClaw is a server application built for continuous operation. PostgreSQL-backed persistent storage, conversation history that survives restarts, multi-user support, and a permission model designed for autonomous operation. No open terminal required, no desktop app to babysit.

LV

Linas Valiukas

Software engineer and founder of TryOpenClaw.ai. Been writing code since age 14.

Try it right now

This is just one example — OpenClaw adapts to whatever you need. Describe any workflow in plain language and it figures out the rest. Pay $1 for a full 24-hour trial, pick your messaging app, and start chatting with your own instance in under 60 seconds. Love it? $39/mo. Not for you? Walk away — we delete everything.

Try OpenClaw for $1

24h full access. No commitment. Cancel anytime.