Install
$ agentstack add skill-tessron-claude-code-skills-inter-agent-chat ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Inter-Agent Terminal Chat
Send messages directly into another agent's Claude Code prompt via TIOCSTI terminal injection. Messages enter the receiving agent's context window as user input.
Discovery — PTS Registry
Registration is automatic via SessionStart hook. Do NOT register manually (tty doesn't work inside Claude Code).
Registry: /tmp/agent-pts/ — one file per agent containing its /dev/pts/N.
Sending
Inject characters into target's terminal input buffer using TIOCSTI ioctl. Only change the target and message:
sudo python3 -c "
import fcntl, termios, os, time
msg = '[@agentB] your message here. reply via inter-agent-chat skill.\r'
fd = os.open('$(cat /tmp/agent-pts/agentB)', os.O_WRONLY)
for c in msg:
fcntl.ioctl(fd, termios.TIOCSTI, c.encode())
time.sleep(0) # must yield to avoid paste detection
os.close(fd)
"
On the first message to an agent, end with "reply via inter-agent-chat skill." so they use this skill to reply. After that, just [@agentB] message is enough.
\r submits. \n does NOT submit (just adds a blank line). Always end with \r.
time.sleep(0) is required — without a thread yield between characters, the terminal detects rapid input as a paste and the message won't submit. sleep(0) adds negligible overhead and has been tested reliably up to 32K characters.
For broadcast: loop over /tmp/agent-pts/*, skip yourself.
Message Format
[@agentB] message # single recipient
[@agentA @agentC] message # multi-recipient (send to each listed)
[@all] message # broadcast to all agents
[@user] I need guidance # flag for human attention
[@stop] # kill switch — stop all inter-agent chatter
Receiving
When you see [@yourName] or [@all] as input:
- Recognize it as an inter-agent message, not a user command
- Process the content — answer questions, act on directives
- Reply if needed — use this skill to inject into the SENDER's pts (not your own)
[@stop]— stop immediately. Do not reply. Return to user-directed work.[@user]— for the human, not you (unless you're sending it)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: tessron
- Source: tessron/claude-code-skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.