Skip to content

lupala-coder/session-messenger

v0.2.2MIT

Discover local GitHub Copilot CLI sessions and exchange authenticated text messages between them.

Copilot Session Messenger

Cross-session messaging for GitHub Copilot CLI. The plugin discovers other active Copilot sessions owned by the same operating-system user and exchanges plain-text coordination messages without copying conversation history or files.

The design mirrors the useful part of Claude Code cross-session messaging:

  • discover reachable sessions;
  • address a session by name or ID;
  • send a text-only message;
  • either notify the user or queue the message for the receiving agent.

Status

This repository contains a local-machine MVP. It supports Linux, macOS, Windows and WSL through Unix domain sockets or Windows named pipes. Cross-device and cloud delivery are intentionally out of scope for version 0.2.2.

Requirements

  • GitHub Copilot CLI with extension support.
  • Node.js 20 or later only for running this repository's tests. The extension SDK itself is provided by Copilot CLI at runtime.

Installation

Install globally from a local checkout

Linux, macOS or WSL:

sh scripts/install-local.sh

Windows PowerShell:

.\scripts\install-local.ps1

Both scripts copy the runtime files to ~/.copilot/extensions/session-messenger. Restart Copilot CLI after installation. When developing inside Copilot CLI, use the extension reload facility after changing the files.

Do not also create a project-scoped extension with the same name. Copilot CLI loads user and project extensions independently, and duplicate global tool names cause one copy to fail.

Install after publishing this repository

Install directly from GitHub:

copilot plugin install LuPaLa-Coder/copilot-session-messenger

Or register it as a marketplace and install by plugin name:

copilot plugin marketplace add LuPaLa-Coder/copilot-session-messenger
copilot plugin install session-messenger@copilot-session-messenger

The marketplace definition is included at .github/plugin/marketplace.json.

Quick start

Open two Copilot CLI sessions after installing the plugin.

In the first session:

Imposta l'alias di questa sessione a backend.

In the second:

Elenca le altre sessioni Copilot attive.
Invia alla sessione backend: "Controlla il nuovo contratto dell'endpoint /orders".

The receiving session gets a timeline notification. By default the message is also queued as a prompt so the receiving agent can act on it. Its final response is automatically returned to the sender as a correlated reply.

Tools

ToolPurpose
session_messenger_listLists active local sessions and their aliases
session_messenger_sendSends text using an alias, full session ID, or unique prefix
session_messenger_identityShows the current identity or changes its persistent alias (default: the Copilot session name, else the working folder name plus the first 2 characters of the session ID, e.g. copilot-session-messenger-ec)
session_messenger_inboxReads recent messages persisted for the current session

Delivery modes

prompt is the default and queues the message in the receiving agent session. The content is clearly marked as untrusted peer input and cannot grant permissions or override safety rules. The receiving agent's final response is automatically returned to the sender unless expectReply is set to false.

notify only writes the message to the receiving timeline and inbox. Use it for status updates that do not require an agent response. Notification-only messages cannot request an automatic reply.

Data and state

Runtime state is stored below:

~/.copilot/session-messenger/v1/
  aliases/
  inbox/
  sessions/

Socket endpoints are stored in the operating system's temporary directory. Session registry files are refreshed every 10 seconds and considered stale after 45 seconds.

The plugin does not transfer:

  • conversation history;
  • files or attachments;
  • credentials;
  • permission grants;
  • memory or instructions.

Development

No npm dependencies are required.

npm run validate

The validation command runs syntax checks followed by the Node test suite. CI exercises Node.js 20 and 22 on Linux, macOS and Windows.

Documentation

Upstream references

License

MIT