PicoClaw

PicoClaw and Nanobot confront OpenCode Go's session-header contract

PicoClaw's September 6 request seeks conversation-specific headers for OpenCode Go, while Nanobot has an open implementation. OpenCode's current Go documentation requires x-opencode-session for cache optimization; the projects disagree on how broadly to apply it, making endpoint scope part of the compatibility work.

← Back to homeOriginal source ↗

OpenCode Go's integration contract is exposing a gap beneath the familiar OpenAI-compatible label. A fresh PicoClaw request asks for a provider-specific header tied to the active conversation, while an open Nanobot implementation threads the same header through multiple request paths. The current official Go documentation confirms the requirement. A matching request body alone is not the complete service contract when the provider also relies on session identity for prompt-cache routing.

The facts

- PicoClaw issue 3369 says the agent already tracks a session ID but cannot currently map it to a provider-specific request header. - Its proposed opt-in setting maps that tracked ID to x-opencode-session for a dedicated opencode-go provider. - OpenCode Go's current documentation tells third-party coding agents to identify themselves, avoid abusive traffic and include the session header for prompt caching. - Nanobot PR 5662 proposes a conversation-scoped value for non-streaming chat, streaming chat and the Responses path, including compaction fallback. - The Nanobot implementation composes per-request headers with existing defaults rather than replacing user headers or other attribution. - PicoClaw explicitly excludes standard Zen, whereas Nanobot's proposal detects a broader group of OpenCode names and base URLs.

Why it matters

Compatibility now includes the lifecycle of a conversation, not just the syntax of a completion. A fixed custom header or one process-wide random value cannot describe distinct ongoing sessions in the way these proposals intend. The provider's documentation is also framed around coding-agent traffic and service quality, so treating every compatible URL as interchangeable risks missing terms that sit outside the API schema. For operators, the immediate consequence is to verify which endpoint a configuration actually reaches before diagnosing unexplained request failures as model instability.

Current

Inspected on 2026-09-07. The PicoClaw stable-release baseline is v0.3.1 published 2026-07-03T07:37:06Z. The Nanobot baseline is v0.3.0 published 2026-07-25T08:08:47Z. The main source was open when captured. Release metadata is a version boundary, not evidence that an open proposal has shipped.

Evidence

The primary source is sipeed/picoclaw issue #3369 (https://github.com/sipeed/picoclaw/issues/3369). Supporting context comes from OpenCode — Go integration requirements (https://opencode.ai/docs/go/); HKUDS/nanobot PR #5662 (https://github.com/HKUDS/nanobot/pull/5662). The linked records were inspected directly; related project records are not independent confirmations.

Operator take

Use the official Go documentation as the scope anchor and keep the disagreement visible. The Nanobot source cites a September 6 enforcement warning, but this brief did not independently inspect the cited X announcement and does not claim a universal cutoff or observed outage. The Go page directly supports the header requirement; it does not make the same case for standard Zen. A good integration test would preserve one identity within a conversation, separate different conversations and confirm header composition on retries and streaming. No live provider requests were made here, and no account or subscription action is needed to read these proposals.

Caveat

PicoClaw's item is a feature request and Nanobot's implementation remains open. The source cluster does not establish that either current stable release sends the header correctly. The September 6 enforcement date is quoted by contributors, while the directly inspected official evidence is the current Go documentation.

PicoClaw's item is a feature request and Nanobot's implementation remains open. The source cluster does not establish that either current stable release sends the header correctly. The September 6 enforcement date is quoted by contributors, while the directly inspected official evidence is the current Go documentation.