tengu_harbor_kite
A Claude Code feature flag, read out of the shipped bundle. It has been in the build since v2.1.224, including the newest one read.
Messages from another session render as an @sender header with indented body instead of raw tags.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.224.
In the changelogs
24Releases whose published page names tengu_harbor_kite.
-
v2.1.296
Administrators can now switch off messaging beyond a user's own agents
A managed setting,
messagingBeyondOwnAgentsDisabled, now turns this feature off and overridesCLAUDE_CODE_HARBOR_KITEgate cited by this entry
-
v2.1.248
Kite network transport now defaults on, including on Windows
The kite network transport is on by default everywhere, and CLAUDE_CODE_HARBOR_KITE=0 now really turns it off.
gate cited by this entry, found in this entry's text
-
v2.1.248
Cross-session peer messaging is on by default
Sessions can message each other by default now, including on Windows; the cloud variant stays off.
gate cited by this entry, found in this entry's text
-
v2.1.238
Cross-session peer identity is now keyed to the account, still off by default
Session-to-session messaging identity now follows your account, but the whole feature is off by default.
gate cited by this entry, found in this entry's text
-
v2.1.236
Asking another local session to ping you when it goes idle, built end to end but not offered to the model
Your session already honours idle-ping requests from other sessions; only asking for one is gated off.
gate cited by this entry, found in this entry's text
-
v2.1.236
The message tool's
notify_when_idleparameter and its supporting layerClaude can ask another session to ping it when idle, but the parameter is hidden unless the gate is on.
gate cited by this entry, found in this entry's text
-
v2.1.236
Every session now advertises that it can send idle notices
Every session now advertises itself as able to send idle notices, with no flag guarding it.
gate cited by this entry, found in this entry's text
-
v2.1.232
Cross-session message results now describe and pin the target
Cross-session send results now name the recipient and warn about duplicate or reused names.
gate cited by this entry, found in this entry's text
-
v2.1.232
@-mention completion for other Claude sessions
You could @-mention your other Claude sessions from the prompt box, but the flag is off by default.
gate cited by this entry, found in this entry's text
-
v2.1.232
@-mentioning another Claude session
Typing @name could message another live Claude session; the feature is off by default.
gate cited by this entry, found in this entry's text
-
v2.1.232
A /config row for messages from your other sessions
A settings row for handling messages from your other sessions exists but is hidden here.
gate cited by this entry, found in this entry's text
-
v2.1.232
@-mentions can resolve other sessions, behind a flag
@-mentions can point at another session instead of a file, but that stage is off here.
gate cited by this entry, found in this entry's text
-
v2.1.232
Hidden cross-session inbox row in the settings dialog
A cross-session inbox row can appear in settings but stays hidden without a server flag.
gate cited by this entry, found in this entry's text
-
v2.1.227
Refusing peer messages when cross-session messaging is off is now a distinct case
Sending messages between your Claude sessions stays off, and refusals now name the kill switch explicitly.
gate cited by this entry, found in this entry's text
-
v2.1.224
Incoming peer messages get their own transcript rendering
Messages from another session render as an @sender header with indented body instead of raw tags.
gate cited by this entry, found in this entry's text
-
v2.1.224
Peer address shown in the session info panel
The session info panel now shows your peer socket address when cross-session messaging is on.
gate cited by this entry, found in this entry's text
-
v2.1.224
Remote bridge peers documented as reply-only
Remote bridge sessions are described as reply-only and unreachable by name.
gate cited by this entry, found in this entry's text
-
v2.1.224
Cross-session messaging explains why it is unavailable
Messaging another session now tells you why it failed instead of silently doing nothing.
gate cited by this entry, found in this entry's text
-
v2.1.224
Remote Control sessions now explain that they are reply-only
Messaging a Remote Control session now explains it is reply-only until it messages you first.
gate cited by this entry, found in this entry's text
-
v2.1.224
Cross-session messaging inbox now actually starts at startup
Startup can now actually open the local socket that lets other sessions message you.
gate cited by this entry, found in this entry's text
-
v2.1.224
New ListAgents tool for finding other sessions you can message
A tool that lists other Claude sessions you can message exists but stays off by default.
gate cited by this entry, found in this entry's text
-
v2.1.224
SendMessage can address other sessions directly and reports delivery timing
Messages can be addressed to a specific session by socket or id, blocked unless peer messaging is enabled.
gate cited by this entry, found in this entry's text
-
v2.1.224
Forked sessions are told once that their twin is still running
A forked session can be told once that its twin is still live and how to reach it.
gate cited by this entry, found in this entry's text
-
v2.1.224
Forked sessions can be told their original is still running
A forked session can be told its original is still running and how to message it.
gate cited by this entry, found in this entry's text
Gate readings
7| Release | Resolved | This account | Anonymous | Compiled default |
|---|---|---|---|---|
| v2.1.296 read on another version | On for this account, and not off by default | on | on | on |
| v2.1.248 | On for this account, and not off by default | on | on | on |
| v2.1.238 | Off by default, switched on for this account | on | on | off |
| v2.1.236 | Off by default, switched on for this account | on | on | off |
| v2.1.232 read on another version | Off by default, switched on for this account | on | on | off |
| v2.1.227 read on another version | Off by default, switched on for this account | on | on | off |
| v2.1.224 read on another version | Off by default, switched on for this account | on | on | off |
Two arms, because they disagree: this account is the one account this site reads and anonymous is a baseline with no identity attached. A reading says nothing about your account, and off cannot rule out a rollout both readings sit outside of. What these readings can and cannot show.
Flag server, over time
18| Read as | Reading | From | Until | Version installed |
|---|---|---|---|---|
| anonymous | on | 2026-10-17T05:30:04Z | 2026-10-23T14:20:05Z | v2.1.302 to v2.1.309 |
| this account | on | 2026-10-07T18:00:12Z | 2026-10-23T14:20:05Z | v2.1.292 to v2.1.309 |
| anonymous | no longer carried | 2026-10-17T05:25:57Z | 2026-10-17T05:25:57Z | v2.1.302 |
| anonymous | on | 2026-08-19T04:25:04Z | 2026-10-17T05:10:04Z | v2.1.233 to v2.1.302 |
| this account | off | 2026-10-07T17:59:34Z | 2026-10-07T17:59:34Z | v2.1.293 |
| this account | on | 2026-09-10T21:47:12Z | 2026-10-07T17:10:05Z | v2.1.268 to v2.1.292 |
| this account | no longer carried | 2026-09-10T21:46:45Z | 2026-09-10T21:46:45Z | v2.1.268 |
| this account | on | 2026-09-08T20:36:15Z | 2026-09-10T17:40:05Z | v2.1.263 to v2.1.267 |
| this account | no longer carried | 2026-09-08T20:34:58Z | 2026-09-08T20:34:58Z | v2.1.265 |
| this account | on | 2026-09-06T02:40:05Z | 2026-09-08T18:45:05Z | v2.1.261 to v2.1.263 |
| this account | no longer carried | 2026-09-06T02:36:19Z | 2026-09-06T02:36:19Z | v2.1.263 |
| this account | on | 2026-08-22T13:25:05Z | 2026-09-06T01:55:04Z | v2.1.233 to v2.1.261 |
| this account | off | 2026-08-22T13:25:01Z | 2026-08-22T13:25:01Z | v2.1.240 |
| this account | on | 2026-08-18T18:55:06Z | 2026-08-22T12:15:05Z | v2.1.233 |
| anonymous | no longer carried | 2026-08-19T04:20:14Z | 2026-08-19T04:20:14Z | v2.1.233 |
| anonymous | on | 2026-08-14T22:10:05Z | 2026-08-19T03:45:04Z | v2.1.232 to v2.1.233 |
| this account | off | 2026-08-18T18:50:25Z | 2026-08-18T18:50:25Z | v2.1.235 |
| this account | on | 2026-08-14T22:10:05Z | 2026-08-18T17:30:05Z | v2.1.232 to v2.1.233 |
One row per unbroken stretch of one reading, newest first, from snapshots taken every twenty-five minutes or so. No longer carried is not off: it means the flag server stopped returning the gate at all, which is what a retired experiment looks like. The version column is what was installed when the reading was taken, not what caused it.
First cited
0No release's published evidence quotes this name. The ledger indexes the Evidence lines of every changelog on this site, so this says nobody here has ever quoted it; it says nothing about how old the name is.
Presence across releases
1Build by build
74One row per release since the first build this name was read out of. Absent means the build was read and the name was not in it, never mined means no bundle for that release was ever archived, and a declared type or a default is only ever what that release's own bundle stated.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the feature flag does. All feature flags.