skills/agent-chat/SKILL.md
XMTP real-time agent-to-agent and user-to-agent encrypted messaging daemon for EverClaw. Manages always-on messaging via XMTP MLS protocol with multi-identity buddy bot support, filesystem-based IPC bridge, consent policies, and cross-platform daemon lifecycle (launchd/systemd). Use when setting up XMTP messaging, managing agent identities, configuring buddy bots, troubleshooting message delivery, or controlling the agent-chat daemon.
npx skillsauth add profbernardoj/baseclaw.ai agent-chatInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
Security scan pending...
This skill is queued for security scanning. Results will appear when the scan completes.
XMTP real-time agent-to-agent and user-to-agent messaging for EverClaw.
Always-on daemon providing E2E-encrypted messaging via XMTP's MLS protocol. Runs as a separate process managed by launchd (macOS) or systemd (Linux), communicating with OpenClaw through a filesystem bridge.
0.2.0
@xmtp/agent-sdk ^2.3.0xmtp-comms-guard ^6.0.0 (peer)# 1. Generate XMTP identity (one-time)
node skills/agent-chat/setup-identity.mjs
# 2. Install daemon as system service
bash scripts/setup-agent-chat.sh
# 3. Check status
bash scripts/setup-agent-chat.sh --status
The setup-agent-chat.sh script installs the XMTP daemon as a persistent system service.
# Install and start daemon (auto-detects OS)
bash scripts/setup-agent-chat.sh
# Check daemon status
bash scripts/setup-agent-chat.sh --status
# View recent logs
bash scripts/setup-agent-chat.sh --logs
# Restart daemon
bash scripts/setup-agent-chat.sh --restart
# Uninstall daemon
bash scripts/setup-agent-chat.sh --uninstall
# Install without starting
bash scripts/setup-agent-chat.sh --skip-start
| Platform | Service Manager | Location | Logs |
|----------|----------------|----------|------|
| macOS | launchd | ~/Library/LaunchAgents/com.everclaw.agent-chat.plist | ~/.everclaw/logs/agent-chat.* |
| Linux | systemd (user) | ~/.config/systemd/user/everclaw-agent-chat.service | journalctl --user -u everclaw-agent-chat |
Note: Linux uses user-level systemd (no sudo required). All services run as your user account.
macOS (launchd):
# Check if loaded
launchctl list | grep everclaw
# View logs
tail -f ~/.everclaw/logs/agent-chat.log
# Stop/start
launchctl bootout gui/$(id -u)/com.everclaw.agent-chat
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.everclaw.agent-chat.plist
Linux (systemd):
# Check status
systemctl --user status everclaw-agent-chat
# View logs
journalctl --user -u everclaw-agent-chat -f
# Stop/start
systemctl --user stop everclaw-agent-chat
systemctl --user start everclaw-agent-chat
~/.everclaw/xmtp/outbox/ → inbox/)open/handshake/strict)Two-tier:
open consenthandshake consentXMTP wallet is messaging-only — no funds. Separate from MOR staking wallet.
# Identity status
node skills/agent-chat/cli.mjs status
# Daemon health
node skills/agent-chat/cli.mjs health
# List peer groups
node skills/agent-chat/cli.mjs groups
# Trust a peer (allow messages)
node skills/agent-chat/cli.mjs trust-peer 0x... --as colleague --name "Agent Name"
# List trusted peers
node skills/agent-chat/cli.mjs peers list
# Send a message (via outbox)
node skills/agent-chat/cli.mjs send 0x... "Hello, agent!"
| File | Purpose |
|------|---------|
| daemon.mjs | Entry point for launchd/systemd |
| cli.mjs | CLI commands |
| setup-identity.mjs | One-time key generation |
| src/agent.mjs | Agent creation + middleware wiring |
| src/identity.mjs | Secret/identity loading (multi-identity: agentId param) |
| src/paths.mjs | Path resolution + agent ID validation (multi-identity) |
| src/consent.mjs | 3-policy consent gate |
| src/router.mjs | Message routing (COMMAND/DATA dispatch) |
| src/bridge.mjs | Filesystem outbox watcher (multi-identity: agentId param) |
| src/health.mjs | Health file writer (multi-identity: agentId param) |
| src/health.mjs | Health file writer |
| src/groups.mjs | Group conversation mapping |
| src/payer.mjs | Fee stub (network currently free) |
| src/index.mjs | Public API re-exports |
Each buddy bot agent gets its own XMTP identity, daemon process, and data directory. This is called "multi-identity" mode — one daemon per agent, running as independent services.
| Agent | Data Directory | Service (macOS) | Service (Linux) |
|-------|---------------|-----------------|-----------------|
| Host (default) | ~/.everclaw/xmtp/ | com.everclaw.agent-chat | everclaw-agent-chat |
| Alice | ~/.everclaw/xmtp-alice/ | com.everclaw.agent-chat.alice | everclaw-agent-chat-alice |
| Bob | ~/.everclaw/xmtp-bob/ | com.everclaw.agent-chat.bob | everclaw-agent-chat-bob |
Each agent's directory contains its own .secrets.json, identity.json, inbox/, outbox/, and peers.json — fully isolated from other agents.
Agent IDs must be:
.., /, etc.)This prevents directory traversal attacks and service name conflicts.
# Generate identity for a buddy bot
node skills/agent-chat/setup-identity.mjs --agent-id alice
# Install daemon for that buddy bot
bash scripts/setup-agent-chat.sh --agent-id alice
# List all installed daemons
bash scripts/setup-agent-chat.sh --list
# Check status of a specific agent
bash scripts/setup-agent-chat.sh --status --agent-id alice
# Restart a specific agent
bash scripts/setup-agent-chat.sh --restart --agent-id alice
# Uninstall a specific agent
bash scripts/setup-agent-chat.sh --uninstall --agent-id alice
| Variable | Purpose |
|----------|---------|
| AGENT_CHAT_AGENT_ID | Agent ID (alternative to --agent-id flag) |
| AGENT_CHAT_XMTP_DIR | Override XMTP data directory (default agent only) |
| EVERCLAW_HOME | Base directory (default: ~/.everclaw) |
AGENT_CHAT_XMTP_DIR only affects the default (host) agent. Per-agent paths always resolve from EVERCLAW_HOME to maintain isolation.
Each per-agent service file (launchd plist or systemd unit) contains the AGENT_CHAT_AGENT_ID environment variable. When the daemon starts, it reads this env var and resolves all paths accordingly:
AGENT_CHAT_AGENT_ID=alice → data dir is ~/.everclaw/xmtp-alice/~/.everclaw/xmtp/ (default host)The --agent-id CLI flag takes priority over the env var, allowing manual overrides.
chmod 700.secrets.json is chmod 600~/.everclaw/xmtp/.secrets.json (chmod 600)~/.everclaw/xmtp/ (chmod 700)/^[a-z0-9][a-z0-9-]{0,62}$/ prevents directory traversal and service injectionnode --version (need >= 20.0.0)ls ~/.everclaw/xmtp/.secrets.jsonbash scripts/setup-agent-chat.sh --logsbash scripts/setup-agent-chat.sh --uninstall && bash scripts/setup-agent-chat.shnode skills/agent-chat/cli.mjs peers listnode skills/agent-chat/cli.mjs healthls ~/.everclaw/xmtp/outbox/bash scripts/setup-agent-chat.sh --statusXMTP limits the number of installations per identity. If you see warnings about installation limits:
node skills/agent-chat/cli.mjs statusnode skills/agent-chat/setup-identity.mjs (creates new address)development
Security scanner for AgentSkill packages. Scan skills for credential theft, code injection, prompt manipulation, data exfiltration, and evasion techniques before installing them. Use when evaluating skills from ClawHub or any untrusted source.
development
Relationship CRM for tracking people, connections, and context. Categories: family, close_friends, church_friends, colleagues, broader_community, strangers, bad_actors, unknown. Use to add, search, list, or update people in the user's network.
tools
Personally identifiable information (PII) leak prevention for EverClaw. Scans outbound content against configurable PII patterns before git push, email, social media, ClawHub publishing, GitHub interactions, or any external data transmission. Provides git pre-push hooks, CLI scanning tools, and hard-block enforcement with user override capability. Use when checking content for PII before external actions, adding new protected patterns, configuring git pre-push hooks, or auditing data leak prevention.
testing
Automated overnight task planning and execution engine for EverClaw. Generates prioritized action lists at 9:30 PM CST for the 10 PM–6 AM window, requires human approval before execution, enforces safety boundaries on allowed task types, and updates Mission Control dashboard at shift end. Use when planning overnight autonomous work, configuring night shift cron jobs, reviewing morning progress reports, or setting task approval policies.