{"version":"2.1.288","anchor":"sdk-result-message-gets-an-opaque-tag-field","canonical_anchor":"sdk-result-message-gets-an-opaque-tag-field","heading":"SDK messages can carry an optional tag field","tier":"internal","area":"SDK","scope":"individual","heads_up":false,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.288\/e\/sdk-result-message-gets-an-opaque-tag-field","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.288","markdown":"### SDK messages can carry an optional tag field\n\nMessages from the SDK can now include an optional tag that marks lines a host app may treat specially; hosts ignore tags they do not know\n\n**Unclear.** It is not known which tag values Claude Code actually sends.\n\n**What**\n\nThe SDK lets other programs run Claude Code and read its output as a stream of messages. The program reading that stream is called the host. Messages in the stream now have an optional `tag` field.\n\nThe tag marks a line that a host may want to treat specially. Ordinary lines do not have it. A host is expected to ignore any tag value it does not recognise.\n\n**Why**\n\nIf you build on the SDK and check messages strictly against a fixed set of fields, a new field may now appear in the stream. Make sure your code accepts it, and ignores values it does not know.\n\n- Area: SDK\n- Tier: Under the hood\n- Useful: 2\/5\n- Signal: 2\/5\n- Scope: individual\n- Heads-up: no"}