Crawler Summary

clawd-irc-skill answer-first brief

IRC Client Skill IRC Client Skill Overview This skill enables Claude to connect to IRC servers, join channels, send/receive messages, and coordinate with other AI agents over IRC protocol. When to Use - Connecting to IRC servers for multi-agent communication - Monitoring IRC channels for messages - Sending messages to IRC channels or users - Coordinating tasks between multiple AI agents - Real-time chat-based collaboration Prerequisi Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Freshness

Last checked 2/24/2026

Best For

Contract is available with explicit auth and schema references.

Not Ideal For

clawd-irc-skill is not ideal for teams that need stronger public trust telemetry, lower setup complexity, or more explicit contract coverage before production rollout.

Evidence Sources Checked

editorial-content, capability-contract, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 100/100

clawd-irc-skill

IRC Client Skill IRC Client Skill Overview This skill enables Claude to connect to IRC servers, join channels, send/receive messages, and coordinate with other AI agents over IRC protocol. When to Use - Connecting to IRC servers for multi-agent communication - Monitoring IRC channels for messages - Sending messages to IRC channels or users - Coordinating tasks between multiple AI agents - Real-time chat-based collaboration Prerequisi

OpenClawself-declared

Public facts

6

Change events

1

Artifacts

0

Freshness

Feb 24, 2026

Verifiededitorial-contentNo verified compatibility signals

Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Schema refs publishedTrust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 24, 2026

Vendor

Ryssroad

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.

Setup snapshot

git clone https://github.com/ryssroad/clawd-irc-skill.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Ryssroad

profilemedium
Observed Feb 24, 2026Source linkProvenance
Compatibility (2)

Protocol compatibility

OpenClaw

contractmedium
Observed Feb 24, 2026Source linkProvenance

Auth modes

api_key

contracthigh
Observed Feb 24, 2026Source linkProvenance
Artifact (1)

Machine-readable schemas

OpenAPI or schema references published

contracthigh
Observed Feb 24, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB OPENCLEW

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

bash

pip install irc --break-system-packages

python

#!/usr/bin/env python3
import socket
import time

def send_irc_message(server, port, channel, nickname, message):
    """Send a single message to IRC channel and disconnect"""
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((server, port))
    
    # IRC handshake
    sock.send(f"NICK {nickname}\r\n".encode())
    sock.send(f"USER {nickname} 0 * :{nickname}\r\n".encode())
    time.sleep(2)  # Wait for connection
    
    # Join channel and send message
    sock.send(f"JOIN {channel}\r\n".encode())
    time.sleep(1)
    sock.send(f"PRIVMSG {channel} :{message}\r\n".encode())
    time.sleep(1)
    
    sock.send(b"QUIT :Goodbye\r\n")
    sock.close()

# Example usage
send_irc_message(
    server="localhost",
    port=6667,
    channel="#agents",
    nickname="claude_bot",
    message="Hello from Claude!"
)

python

#!/usr/bin/env python3
import socket
import time
import sys
import select

class IRCBot:
    def __init__(self, server, port, nickname, channel):
        self.server = server
        self.port = port
        self.nickname = nickname
        self.channel = channel
        self.sock = None
        
    def connect(self):
        """Connect to IRC server"""
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((self.server, self.port))
        
        # IRC handshake
        self.send_raw(f"NICK {self.nickname}")
        self.send_raw(f"USER {self.nickname} 0 * :{self.nickname}")
        time.sleep(2)
        
        # Join channel
        self.send_raw(f"JOIN {self.channel}")
        print(f"[IRC] Connected to {self.server}:{self.port} as {self.nickname}")
        print(f"[IRC] Joined {self.channel}")
        
    def send_raw(self, message):
        """Send raw IRC command"""
        self.sock.send(f"{message}\r\n".encode())
        
    def send_message(self, target, message):
        """Send message to channel or user"""
        self.send_raw(f"PRIVMSG {target} :{message}")
        print(f"[IRC] -> {target}: {message}")
        
    def listen(self, callback=None):
        """Listen for IRC messages"""
        buffer = ""
        
        while True:
            # Check if socket has data (non-blocking)
            ready = select.select([self.sock], [], [], 1.0)
            if ready[0]:
                data = self.sock.recv(4096).decode('utf-8', errors='ignore')
                buffer += data
                
                while '\r\n' in buffer:
                    line, buffer = buffer.split('\r\n', 1)
                    self.handle_line(line, callback)
                    
    def handle_line(self, line, callback):
        """Handle incoming IRC line"""
        print(f"[IRC] <- {line}")
        
        # Respond to PING
        if line.startswith('PING'):
            pong = line.replace('PING', 'PONG')
            

python

#!/usr/bin/env python3
import socket
import time
import json
import os
from pathlib import Path

CONTROL_DIR = Path("/tmp/irc_control")
CONTROL_DIR.mkdir(exist_ok=True)

class IRCDaemon:
    def __init__(self, server, port, nickname, channel):
        self.server = server
        self.port = port
        self.nickname = nickname
        self.channel = channel
        self.sock = None
        self.running = True
        
        # Create control files
        self.inbox = CONTROL_DIR / "inbox.txt"
        self.outbox = CONTROL_DIR / "outbox.txt"
        self.commands = CONTROL_DIR / "commands.txt"
        
        self.inbox.touch()
        self.commands.touch()
        
    def connect(self):
        """Connect to IRC server"""
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.settimeout(1.0)
        self.sock.connect((self.server, self.port))
        
        self.send_raw(f"NICK {self.nickname}")
        self.send_raw(f"USER {self.nickname} 0 * :{self.nickname}")
        time.sleep(2)
        self.send_raw(f"JOIN {self.channel}")
        
    def send_raw(self, message):
        """Send raw IRC command"""
        self.sock.send(f"{message}\r\n".encode())
        
    def check_commands(self):
        """Check for commands in control file"""
        if self.commands.stat().st_size > 0:
            with open(self.commands, 'r') as f:
                for line in f:
                    line = line.strip()
                    if line.startswith("SEND "):
                        # Format: SEND #channel message text
                        parts = line.split(' ', 2)
                        if len(parts) >= 3:
                            target, message = parts[1], parts[2]
                            self.send_raw(f"PRIVMSG {target} :{message}")
                    elif line == "QUIT":
                        self.running = False
            
            # Clear commands file
            self.commands.write_text("")
            
    

python

# Join channel
bot.send_raw("JOIN #channel")

# Part channel
bot.send_raw("PART #channel")

# Send message
bot.send_raw("PRIVMSG #channel :message")

# Private message
bot.send_raw("PRIVMSG nickname :message")

# Set topic
bot.send_raw("TOPIC #channel :New topic")

# List users
bot.send_raw("NAMES #channel")

# Disconnect
bot.send_raw("QUIT :Goodbye")

bash

python3 -c "
import socket, time
s = socket.socket()
s.connect(('localhost', 6667))
s.send(b'NICK testbot\r\nUSER testbot 0 * :testbot\r\n')
time.sleep(2)
s.send(b'JOIN #agents\r\n')
time.sleep(1)
s.send(b'PRIVMSG #agents :Hello from Python!\r\n')
time.sleep(1)
s.send(b'QUIT\r\n')
s.close()
"

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB OPENCLEW

Docs source

GITHUB OPENCLEW

Editorial quality

ready

IRC Client Skill IRC Client Skill Overview This skill enables Claude to connect to IRC servers, join channels, send/receive messages, and coordinate with other AI agents over IRC protocol. When to Use - Connecting to IRC servers for multi-agent communication - Monitoring IRC channels for messages - Sending messages to IRC channels or users - Coordinating tasks between multiple AI agents - Real-time chat-based collaboration Prerequisi

Full README

IRC Client Skill

Overview

This skill enables Claude to connect to IRC servers, join channels, send/receive messages, and coordinate with other AI agents over IRC protocol.

When to Use

  • Connecting to IRC servers for multi-agent communication
  • Monitoring IRC channels for messages
  • Sending messages to IRC channels or users
  • Coordinating tasks between multiple AI agents
  • Real-time chat-based collaboration

Prerequisites

pip install irc --break-system-packages

Core Concepts

IRC Basics

  • Server: IRC daemon (e.g., irc.libera.chat, or custom server)
  • Channel: Chat rooms prefixed with # (e.g., #agents)
  • Nickname: Your identity on the server (must be unique)
  • Messages: Public (channel) or private (user-to-user)

Implementation Patterns

Pattern 1: Simple Message Send (One-shot)

Use when you just need to send a message and disconnect:

#!/usr/bin/env python3
import socket
import time

def send_irc_message(server, port, channel, nickname, message):
    """Send a single message to IRC channel and disconnect"""
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((server, port))
    
    # IRC handshake
    sock.send(f"NICK {nickname}\r\n".encode())
    sock.send(f"USER {nickname} 0 * :{nickname}\r\n".encode())
    time.sleep(2)  # Wait for connection
    
    # Join channel and send message
    sock.send(f"JOIN {channel}\r\n".encode())
    time.sleep(1)
    sock.send(f"PRIVMSG {channel} :{message}\r\n".encode())
    time.sleep(1)
    
    sock.send(b"QUIT :Goodbye\r\n")
    sock.close()

# Example usage
send_irc_message(
    server="localhost",
    port=6667,
    channel="#agents",
    nickname="claude_bot",
    message="Hello from Claude!"
)

Pattern 2: Persistent Connection (Background Process)

Use when you need to monitor channels and respond to messages:

#!/usr/bin/env python3
import socket
import time
import sys
import select

class IRCBot:
    def __init__(self, server, port, nickname, channel):
        self.server = server
        self.port = port
        self.nickname = nickname
        self.channel = channel
        self.sock = None
        
    def connect(self):
        """Connect to IRC server"""
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.connect((self.server, self.port))
        
        # IRC handshake
        self.send_raw(f"NICK {self.nickname}")
        self.send_raw(f"USER {self.nickname} 0 * :{self.nickname}")
        time.sleep(2)
        
        # Join channel
        self.send_raw(f"JOIN {self.channel}")
        print(f"[IRC] Connected to {self.server}:{self.port} as {self.nickname}")
        print(f"[IRC] Joined {self.channel}")
        
    def send_raw(self, message):
        """Send raw IRC command"""
        self.sock.send(f"{message}\r\n".encode())
        
    def send_message(self, target, message):
        """Send message to channel or user"""
        self.send_raw(f"PRIVMSG {target} :{message}")
        print(f"[IRC] -> {target}: {message}")
        
    def listen(self, callback=None):
        """Listen for IRC messages"""
        buffer = ""
        
        while True:
            # Check if socket has data (non-blocking)
            ready = select.select([self.sock], [], [], 1.0)
            if ready[0]:
                data = self.sock.recv(4096).decode('utf-8', errors='ignore')
                buffer += data
                
                while '\r\n' in buffer:
                    line, buffer = buffer.split('\r\n', 1)
                    self.handle_line(line, callback)
                    
    def handle_line(self, line, callback):
        """Handle incoming IRC line"""
        print(f"[IRC] <- {line}")
        
        # Respond to PING
        if line.startswith('PING'):
            pong = line.replace('PING', 'PONG')
            self.send_raw(pong)
            return
            
        # Parse messages
        if 'PRIVMSG' in line:
            # Format: :nick!user@host PRIVMSG #channel :message
            parts = line.split(' ', 3)
            if len(parts) >= 4:
                sender = parts[0][1:].split('!')[0]
                target = parts[2]
                message = parts[3][1:] if parts[3].startswith(':') else parts[3]
                
                print(f"[MSG] {sender} -> {target}: {message}")
                
                if callback:
                    callback(sender, target, message)
                    
    def quit(self):
        """Disconnect from IRC"""
        self.send_raw("QUIT :Goodbye")
        self.sock.close()

# Example usage
if __name__ == "__main__":
    bot = IRCBot(
        server="localhost",
        port=6667,
        nickname="claude_bot",
        channel="#agents"
    )
    
    bot.connect()
    
    # Send initial message
    bot.send_message("#agents", "Claude is now online!")
    
    # Optional: Define message handler
    def on_message(sender, target, message):
        # Respond to mentions
        if "claude" in message.lower():
            bot.send_message(target, f"Hello {sender}! You mentioned me.")
    
    # Listen for messages
    try:
        bot.listen(callback=on_message)
    except KeyboardInterrupt:
        bot.quit()

Pattern 3: Background Daemon with File-based Control

Use when you need persistent connection that other processes can control:

#!/usr/bin/env python3
import socket
import time
import json
import os
from pathlib import Path

CONTROL_DIR = Path("/tmp/irc_control")
CONTROL_DIR.mkdir(exist_ok=True)

class IRCDaemon:
    def __init__(self, server, port, nickname, channel):
        self.server = server
        self.port = port
        self.nickname = nickname
        self.channel = channel
        self.sock = None
        self.running = True
        
        # Create control files
        self.inbox = CONTROL_DIR / "inbox.txt"
        self.outbox = CONTROL_DIR / "outbox.txt"
        self.commands = CONTROL_DIR / "commands.txt"
        
        self.inbox.touch()
        self.commands.touch()
        
    def connect(self):
        """Connect to IRC server"""
        self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        self.sock.settimeout(1.0)
        self.sock.connect((self.server, self.port))
        
        self.send_raw(f"NICK {self.nickname}")
        self.send_raw(f"USER {self.nickname} 0 * :{self.nickname}")
        time.sleep(2)
        self.send_raw(f"JOIN {self.channel}")
        
    def send_raw(self, message):
        """Send raw IRC command"""
        self.sock.send(f"{message}\r\n".encode())
        
    def check_commands(self):
        """Check for commands in control file"""
        if self.commands.stat().st_size > 0:
            with open(self.commands, 'r') as f:
                for line in f:
                    line = line.strip()
                    if line.startswith("SEND "):
                        # Format: SEND #channel message text
                        parts = line.split(' ', 2)
                        if len(parts) >= 3:
                            target, message = parts[1], parts[2]
                            self.send_raw(f"PRIVMSG {target} :{message}")
                    elif line == "QUIT":
                        self.running = False
            
            # Clear commands file
            self.commands.write_text("")
            
    def run(self):
        """Main daemon loop"""
        buffer = ""
        
        while self.running:
            # Check for outgoing commands
            self.check_commands()
            
            # Check for incoming messages
            try:
                data = self.sock.recv(4096).decode('utf-8', errors='ignore')
                buffer += data
                
                while '\r\n' in buffer:
                    line, buffer = buffer.split('\r\n', 1)
                    
                    # Handle PING
                    if line.startswith('PING'):
                        self.send_raw(line.replace('PING', 'PONG'))
                        continue
                    
                    # Handle messages
                    if 'PRIVMSG' in line:
                        with open(self.inbox, 'a') as f:
                            f.write(f"{time.time()} {line}\n")
                            
            except socket.timeout:
                pass  # No data, continue
            except Exception as e:
                print(f"Error: {e}")
                time.sleep(5)
                self.connect()  # Reconnect
                
        self.sock.send(b"QUIT :Daemon stopped\r\n")
        self.sock.close()

# Example usage
if __name__ == "__main__":
    import sys
    
    daemon = IRCDaemon(
        server=sys.argv[1] if len(sys.argv) > 1 else "localhost",
        port=int(sys.argv[2]) if len(sys.argv) > 2 else 6667,
        nickname=sys.argv[3] if len(sys.argv) > 3 else "claude_daemon",
        channel=sys.argv[4] if len(sys.argv) > 4 else "#agents"
    )
    
    daemon.connect()
    print(f"IRC Daemon running. Control files in {CONTROL_DIR}")
    print(f"  Send messages: echo 'SEND #agents Hello!' > {daemon.commands}")
    print(f"  View inbox: cat {daemon.inbox}")
    print(f"  Stop daemon: echo 'QUIT' > {daemon.commands}")
    
    daemon.run()

Usage Instructions for Claude

Quick Test (One Message)

  1. Create a simple Python script using Pattern 1
  2. Run it to send a test message
  3. Check if message appears in IRC channel

Monitoring Channel (Interactive)

  1. Use Pattern 2 to create interactive bot
  2. Run in foreground to see messages in real-time
  3. Implement custom message handlers as needed

Background Service (Production)

  1. Use Pattern 3 to create daemon
  2. Run in background: python3 irc_daemon.py server port nick channel &
  3. Control via files:
    • Send: echo "SEND #agents Hi!" >> /tmp/irc_control/commands.txt
    • Read: tail -f /tmp/irc_control/inbox.txt
    • Stop: echo "QUIT" >> /tmp/irc_control/commands.txt

Common IRC Commands

# Join channel
bot.send_raw("JOIN #channel")

# Part channel
bot.send_raw("PART #channel")

# Send message
bot.send_raw("PRIVMSG #channel :message")

# Private message
bot.send_raw("PRIVMSG nickname :message")

# Set topic
bot.send_raw("TOPIC #channel :New topic")

# List users
bot.send_raw("NAMES #channel")

# Disconnect
bot.send_raw("QUIT :Goodbye")

Troubleshooting

Connection Issues

  • Check firewall rules: telnet server 6667
  • Verify server is running: netstat -tuln | grep 6667
  • Check nickname conflicts (must be unique)

Message Not Sending

  • Wait for full connection (2-3 seconds after handshake)
  • Ensure channel join completed before sending
  • Check for PING/PONG responses

Daemon Not Responding

  • Check if process is running: ps aux | grep irc_daemon
  • Verify control files: ls -la /tmp/irc_control/
  • Check permissions on control directory

Security Notes

  • IRC traffic is unencrypted by default (use SSL/TLS if available)
  • Do not send sensitive data over IRC
  • Implement authentication if exposing publicly
  • Rate limit messages to avoid flooding/bans

Examples for Testing

Test 1: Simple Hello

python3 -c "
import socket, time
s = socket.socket()
s.connect(('localhost', 6667))
s.send(b'NICK testbot\r\nUSER testbot 0 * :testbot\r\n')
time.sleep(2)
s.send(b'JOIN #agents\r\n')
time.sleep(1)
s.send(b'PRIVMSG #agents :Hello from Python!\r\n')
time.sleep(1)
s.send(b'QUIT\r\n')
s.close()
"

Test 2: Read Last 10 Messages

# If using daemon
tail -10 /tmp/irc_control/inbox.txt

Test 3: Send Message via Daemon

echo "SEND #agents Claude says hi!" >> /tmp/irc_control/commands.txt

Integration with Other Agents

When coordinating with OpenClaw agents:

  1. Establish naming convention (e.g., claude_, claw_)
  2. Use channel topics for status/coordination
  3. Implement command prefix system (e.g., !task, !status)
  4. Store conversation history in files for context

Next Steps

After testing basic connectivity:

  • Implement command parsing for agent coordination
  • Add message persistence/logging
  • Create higher-level API for common operations
  • Integrate with other skills (e.g., task management)

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

Verifiedcapability-contract

Contract coverage

Status

ready

Auth

api_key

Streaming

Yes

Data region

global

Protocol support

OpenClaw: self-declared

Requires: openclew, lang:typescript, streaming

Forbidden: none

Guardrails

Operational confidence: medium

Contract is available with explicit auth and schema references.
Trust confidence is not low and verification freshness is acceptable.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITHUB_REPOSactivepieces

Rank

70

AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents

Traction

No public download signal

Freshness

Updated 2d ago

OPENCLAW
GITHUB_REPOScherry-studio

Rank

70

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

Traction

No public download signal

Freshness

Updated 5d ago

MCPOPENCLAW
GITHUB_REPOSAionUi

Rank

70

Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!

Traction

No public download signal

Freshness

Updated 6d ago

MCPOPENCLAW
GITHUB_REPOSCopilotKit

Rank

70

The Frontend for Agents & Generative UI. React + Angular

Traction

No public download signal

Freshness

Updated 23d ago

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "ready",
  "authModes": [
    "api_key"
  ],
  "requires": [
    "openclew",
    "lang:typescript",
    "streaming"
  ],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": true,
  "inputSchemaRef": "https://github.com/ryssroad/clawd-irc-skill#input",
  "outputSchemaRef": "https://github.com/ryssroad/clawd-irc-skill#output",
  "dataRegion": "global",
  "contractUpdatedAt": "2026-02-24T19:43:13.111Z",
  "sourceUpdatedAt": "2026-02-24T19:43:13.111Z",
  "freshnessSeconds": 4424333
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/trust\""
  ],
  "jsonRequestTemplate": {
    "query": "summarize this repo",
    "constraints": {
      "maxLatencyMs": 2000,
      "protocolPreference": [
        "OPENCLEW"
      ]
    }
  },
  "jsonResponseTemplate": {
    "ok": true,
    "result": {
      "summary": "...",
      "confidence": 0.9
    },
    "meta": {
      "source": "GITHUB_OPENCLEW",
      "generatedAt": "2026-04-17T00:42:06.353Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "control",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:control|supported|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Ryssroad",
    "href": "https://github.com/ryssroad/clawd-irc-skill",
    "sourceUrl": "https://github.com/ryssroad/clawd-irc-skill",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:13.111Z",
    "isPublic": true
  },
  {
    "factKey": "auth_modes",
    "category": "compatibility",
    "label": "Auth modes",
    "value": "api_key",
    "href": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:43:13.111Z",
    "isPublic": true
  },
  {
    "factKey": "schema_refs",
    "category": "artifact",
    "label": "Machine-readable schemas",
    "value": "OpenAPI or schema references published",
    "href": "https://github.com/ryssroad/clawd-irc-skill#input",
    "sourceUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/contract",
    "sourceType": "contract",
    "confidence": "high",
    "observedAt": "2026-02-24T19:43:13.111Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/ryssroad-clawd-irc-skill/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to clawd-irc-skill and adjacent AI workflows.