Skip to content

ACP spec violation: non-JSON output written to stdout #13634

@ignatov

Description

@ignatov

Problem

When running opencode as an ACP agent via stdio transport, it writes non-JSON database migration log lines to stdout. This violates the ACP specification, which requires that only valid JSON-RPC messages are written to stdout.

Example of the non-JSON output observed on stdout:

[database migration logs, startup messages, etc.]

This causes ACP clients to fail when parsing the stdout stream, since they expect every line to be a valid JSON-RPC message.

Reproduce

./opencode acp

Impact

  • opencode has been quarantined in the ACP registry because it breaks automated verification (verify_agents.py --auth-check)
  • ACP clients that connect to opencode over stdio will encounter parse errors

Expected behavior

All non-JSON-RPC output (logs, diagnostics, migration messages) should be written to stderr, not stdout. Only valid JSON-RPC messages should appear on stdout when running in ACP/stdio mode.

Environment

  • opencode v1.2.x
  • Running via ACP stdio transport

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions