Repository navigation
Releases
agent-msg 0.2.0 — OpenCode integration
agent-msg 0.2.0 — OpenCode integration (alpha)
OpenCode joins Claude Code and Codex as a native messaging peer. Use the same agents, send, reply, journal and reply-wait commands across all three harnesses.
What changed
- A small OpenCode plugin bridges a private Unix socket to the native session SDK. It works with the TUI's in-process API; no TCP listener, server password, daemon or npm dependency is required.
- Live-session discovery excludes historical sessions and verifies registry ownership, permissions, process start time and socket ownership. Duplicate session IDs hosted by multiple processes fail closed.
- Native asynchronous prompts preserve the session's agent, model, variant and tool permissions. Busy sessions consume messages through their existing loop without an abort.
- Sender attribution combines per-command session metadata with process ancestry. Correlated replies and native notifications work through the existing journal protocol.
- Replies now work across working directories, using the original journaled sender and live destination validation. Initial cross-directory sends still use
--cwd TARGET_DIR. - Added
agent-msg opencode install --symlink, OpenCode target/skill-install options, and an OpenCode identity style in the journal UI. - Added offline socket/SDK integration tests and an opt-in native OpenCode API smoke test that disables inference.
Install
Install the 0.2.0 wheel or current marketplace plugin, then run:
agent-msg opencode install --symlink
agent-msg agents --harness opencode --jsonFor a plugin-only installation, use its bundled Python launcher instead of agent-msg. --dest DIR selects an OpenCode configuration directory. Start a new OpenCode process and create or use a session to register it. Existing customized installation files are preserved.
Existing Claude/Codex installations also need 0.2.0 to address OpenCode. Use a shared local journal and matching XDG state settings. Custom Claude configuration homes must be supplied through the existing CLAUDE_CONFIG_DIR setting when those peers are not discoverable from the default home.
Validation and limits
Validated on macOS with OpenCode 1.18.34, Claude Code 2.1.291 and Codex 0.160.1:
- Automated suite: 60 passed; four opt-in live tests skipped in the normal run.
- All six directed cross-harness pairs completed real correlated request/reply round trips. Claude and OpenCode used the existing local Qwen model; Claude subscription models were not used.
- OpenCode received prompts while busy and sent native reply notifications to Claude and Codex in different working directories. OpenCode-origin requests also exercised correlated journal replies with
--wait. - A separate real OpenCode SDK smoke test verified session persistence, sender attribution, replies and preserved agent/model settings without inference. Offline tests cover idle/busy delivery, permissions preservation, stale registrations, duplicate IDs, uncertain dispatch and all six cross-workdir routing combinations.
- Clean wheel installation, generated-bundle parity, skill/manifests, and disposable Claude/Codex marketplace installation checks passed.
Linux live delivery and restricted sandbox configurations remain unvalidated. Receipt acceptance does not prove a peer read a message. Same-user identity metadata is audit evidence, not cryptographic authentication. OpenCode 1.18.34's V2 bash tool lacks the shell.env hook, so the plugin uses tool.execute.before to export two per-command identity variables. This changes neither shell startup files nor the session's permission policy.
Packaging correction: the checksums manifest was corrected during release verification to exclude a build-directory .gitignore. The wheel, source archive, plugin ZIP and Git tag are unchanged.
agent-msg 0.1.1 (alpha)
agent-msg 0.1.1
Initial alpha release for local communication between Claude Code and Codex.
- Discover running sessions and address a peer by exact name or thread ID.
- Deliver through native harness transports, including steering a busy Codex session.
- Record message envelopes, delivery events, replies, and observed process metadata
in SQLite. Reply routes useagent-msgmessage IDs. - Inspect conversations in a read-only loopback web UI;
agent-msg uiopens the browser. - Install a self-contained plugin in either harness, or use the Python CLI.
Requires Python 3.10+; no Python runtime dependencies. MIT license.
Install
claude plugin marketplace add nsssayom/agent-msg
claude plugin install agent-msg@agent-msg
codex plugin marketplace add nsssayom/agent-msg
codex plugin add agent-msg@agent-msgFor the terminal command:
uv tool install https://github.com/nsssayom/agent-msg/releases/download/v0.1.1/agent_msg-0.1.1-py3-none-any.whl
agent-msg uiIn running Claude Code sessions, type /reload-plugins after installation.
For Codex, inspect /plugins; restart and resume if the skill is unavailable.
See the README for details.
Validation and limits
49 offline tests passed; four live tests were skipped by default. Fresh wheel
installation, plugin export, and isolated local marketplace installs were checked
for both harnesses. Prior live tests on macOS covered both directions, correlated
replies, and a busy Codex peer. Harness versions: Claude Code 2.1.286, Codex CLI
0.159.0, daemon 0.159.2.
Linux live delivery and restricted sandbox configurations are not validated.
Internal harness protocols can change. sent is transport acceptance, not proof
of reading. Identity observations are audit data, not cryptographic authentication.
Messages are stored locally and may also enter the receiving harness's model
provider and transcript. See data handling.
The GitHub marketplace is independently hosted. This release is not a claim of
approval or listing in either vendor's official directory. No PyPI publication.
Assets
agent_msg-0.1.1-py3-none-any.whl: installable Python package.agent_msg-0.1.1.tar.gz: Python source distribution.agent-msg-plugin-0.1.1.zip: plugin with bundled runtime and both manifests.SHA256SUMS: SHA-256 checksums of the three archives.