All News
DocumentationGatewayInfrastructure

OpenClaw Splits Plugin Docs Into Three Reference Tiers, Adds Token Limits to Its Gateway, and Stops Mangling Telegram HTML

Four documentation updates landed on the same day. Plugin navigation gets a three-tier overhaul. The OpenAI-compatible gateway learns to cap completion tokens. Docker deployments stop losing OAuth credentials on every rebuild. And Telegram replies finally render bold text as bold — not as literal angle brackets.

May 13, 20266 min read

New Plugin Documentation Tiers

Plugin Reference

Inventory, dependency resolution, and install override documentation for operators managing plugin installations

Plugin SDK Reference

Core SDK surface covering subpaths, entrypoints, runtime hooks, agent harness integration, setup, testing, and manifest authoring

Plugin Maintainer Reference

Architecture internals, migration guides, compatibility matrices, and channel-specific technical documentation for plugin maintainers

Plugin Documentation Gets a Navigation Overhaul

OpenClaw's plugin ecosystem has grown considerably in 2026. The documentation, however, was still organized as though the plugin system was a single concern. A flat “Building plugins” section tried to serve three distinct audiences simultaneously: operators installing plugins, developers building them, and maintainers working on the plugin infrastructure itself. None of those groups were well served by sharing a sidebar.

That section is now split into three dedicated reference tiers. The Plugin Reference covers plugin inventory, dependency resolution, and install overrides — the operational surface that administrators interact with. The Plugin SDK Reference homes in on the developer surface: subpath conventions, entrypoint contracts, runtime hooks, agent harness integration, setup, testing, and manifest authoring. And a new Plugin Maintainer Reference collects the internal architecture documentation, migration guides, compatibility matrices, and channel-specific technical details that were previously scattered across the building section.

The top-level “Plugins” section now focuses purely on installation and management, while “Bundled plugin guides” retains its own space. A new channel ingress SDK page was added to the SDK reference as part of the reorganization.

No existing routes were removed. Every page that had a URL before still has the same URL now. The reorganization is purely navigational — a nav-audit script confirmed zero broken links after the change.

It's a structural change that reflects a maturity milestone. When a project's plugin system is simple enough for one docs section, that's fine. When it has an SDK, a maintainer internals layer, and a growing list of bundled extensions, the flat structure becomes a tax on every reader who has to scroll past content written for someone else.

The OpenAI Gateway Learns Token Caps

OpenClaw's OpenAI-compatible HTTP gateway — the endpoint that lets any OpenAI SDK client talk to OpenClaw agents — now supports two request parameters that developers have been expecting: max_completion_tokens and max_tokens.

The first is the preferred field, matching the Chat Completions API convention. The second is treated as a legacy alias for backward compatibility. When both are present in the same request, the newer max_completion_tokens takes precedence. Values are forwarded to upstream providers with the field name selected based on what each provider expects.

The practical effect: developers who use OpenClaw's gateway as an OpenAI drop-in can now control generation length per-request, the same way they would against OpenAI directly. It also means orchestration frameworks that set token budgets — like LangChain, LlamaIndex, or custom cost-control layers — no longer have their caps silently ignored when routed through OpenClaw.

Docker Deployments Stop Losing OAuth Credentials

If you ran OpenClaw in Docker and used OAuth-backed auth profiles — for example, connecting a ChatGPT or Codex account through the browser-based login flow — there was a quiet problem: the encryption key that protected those stored tokens lived inside the container. Every docker compose down && docker compose up destroyed it. The tokens were still on disk, but the key to decrypt them was gone. Every rebuild forced a full re-authentication.

A new environment variable, OPENCLAW_AUTH_PROFILE_SECRET_DIR, now points to a host-mounted directory where the encryption key is persisted. The Docker setup script creates this directory with 600 permissions, adds the appropriate volume mount to the Compose configuration, and ensures ownership is fixed during prestart. The key directory is kept separate from the main config directory — a deliberate isolation choice that prevents backup scripts from accidentally sweeping up cryptographic material alongside configuration files.

For existing Docker operators: the setup script handles creation of the new directory automatically. After the next update, OAuth-backed auth profiles survive container rebuilds without re-authentication.

Telegram Stops Escaping Its Own HTML

Telegram's Bot API supports a specific subset of HTML: bold, italic, underline, strikethrough, code, pre, blockquote, and links. Everything else gets rejected. OpenClaw's Telegram integration handled this by escaping all HTML before sending — the safest possible approach, and the laziest. The result: when a model replied with <b>important</b>, users saw the literal text <b>important</b> instead of important.

The fix introduces a tag-validation layer that identifies Telegram's supported HTML tags and preserves them through the rendering pipeline, while continuing to escape anything the Bot API would reject. A separate change removes the generic plain-text sanitizer from the Telegram outbound adapter, which was double-escaping content that the new tag-aware renderer had already handled.

The documentation update is a single line: “Raw model HTML is escaped to reduce Telegram parse failures” becomes “Supported Telegram HTML tags are preserved; unsupported HTML is escaped.” One sentence. But the behavior change behind it is significant for anyone whose agents generate formatted output.

Migration Keyboard Controls Get a Quiet Fix

A smaller documentation update landed for the Codex migration CLI. The interactive migration selector — the prompt where operators choose which Codex skills to migrate — had a keyboard interaction problem: pressing Enter was supposed to activate the highlighted row and continue, but it wasn't behaving correctly when items were pre-selected. The “Skip for now” and bulk-selection rows in particular were affected.

The migration documentation now clarifies the intended controls: Space toggles individual rows, Enter activates the highlighted row and proceeds. The underlying code was also fixed to match, with a new reconciliation function that handles Enter key activation without deselecting previously chosen items.

Other Updates at a Glance

Gateway Token Limits

OpenAI HTTP gateway now honors max_completion_tokens and max_tokens on inbound requests, with the newer field taking precedence

Docker Auth Persistence

OAuth auth profile encryption keys survive container rebuilds via a dedicated host volume mount

Telegram HTML Rendering

Supported HTML tags like <b>, <blockquote>, and <code> are preserved in replies instead of being escaped to literal text

The Pattern Worth Noticing

None of these changes add a headline feature. There's no new model integration, no new channel, no new tool. What landed instead is the kind of work that makes existing features more usable: documentation that matches the reader's role, API parameters that match industry convention, credentials that survive the most basic operational event, and HTML rendering that does what users expect.

The plugin documentation split is particularly telling. A project reorganizes its docs when it accepts that different readers need different things. Lumping SDK internals with operator guides was a carry-over from when the plugin system was small enough for one audience. That era is over. The three-tier structure is an acknowledgment that OpenClaw's plugin ecosystem now has distinct stakeholders who don't benefit from each other's reference material.

The best infrastructure work is invisible when it's done right. Today's changes are the kind that prevent tomorrow's support tickets — less glamorous than a feature launch, but exactly what a maturing platform needs.

DeployClaw News · Analysis by Carlos Simpson

DeployClaw hosts OpenClaw instances. Upstream fixes ship automatically. This publication covers development independently.