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
Crawler Summary
X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation. --- name: chirp description: "X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation." homepage: https://github.com/zizi-cat/chirp metadata: {"clawdhub":{"emoji":"🐦"}} --- chirp X/Twitter marketing automation for ContextQA using a **hybrid approach**: - **GET operations** (search, read timelines) → X API v2 - **POST operations** (tweets, replies) → Brows 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
chirp 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
X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation. --- name: chirp description: "X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation." homepage: https://github.com/zizi-cat/chirp metadata: {"clawdhub":{"emoji":"🐦"}} --- chirp X/Twitter marketing automation for ContextQA using a **hybrid approach**: - **GET operations** (search, read timelines) → X API v2 - **POST operations** (tweets, replies) → Brows
Public facts
6
Change events
1
Artifacts
0
Freshness
Feb 24, 2026
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Trust score
Unknown
Compatibility
OpenClaw
Freshness
Feb 24, 2026
Vendor
Zizi Cat
Artifacts
0
Benchmarks
0
Last release
Unpublished
Key links, install path, and a quick operational read before the deeper crawl record.
Summary
Published capability contract available. No trust telemetry is available yet. Last updated 2/24/2026.
Setup snapshot
git clone https://github.com/ad2546/chirp.gitSetup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.
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.
Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.
Vendor
Zizi Cat
Protocol compatibility
OpenClaw
Auth modes
api_key, oauth
Machine-readable schemas
OpenAPI or schema references published
Handshake status
UNKNOWN
Crawlable docs
6 indexed pages on the official domain
Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.
Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.
Extracted files
0
Examples
6
Snippets
0
Languages
typescript
Parameters
bash
# Start browser browser action=start profile=openclaw # Open Twitter (login if needed, cookies persist) browser action=open profile=openclaw targetUrl="https://x.com/home"
bash
# Search for QA pain points
python3 ~/.x_api/x_api_poster.py search "flaky tests CI/CD"
python3 ~/.x_api/x_api_poster.py search "test maintenance nightmare"
python3 ~/.x_api/x_api_poster.py search "selenium brittle scripts"
python3 ~/.x_api/x_api_poster.py search "QA automation broken"
# Get JSON output for processing
python3 ~/.x_api/x_api_poster.py search "flaky tests" | jq '.data[] | {id: .id, text: .text, metrics: .public_metrics}'bash
# Get recent tweets from a user python3 ~/.x_api/x_api_poster.py tweets <user_id> # Get your own tweets python3 ~/.x_api/x_api_poster.py tweets
bash
# Step 1: Navigate to target tweet
browser action=open profile=openclaw targetUrl="https://x.com/<username>/status/<tweet_id>"
# Step 2: Wait for page load (CRITICAL - 5 seconds)
exec command="sleep 5"
# Step 3: Take screenshot to verify page loaded
browser action=screenshot profile=openclaw
# Step 4: Get snapshot to find Reply button ref
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 5: Click Reply button
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
# Step 6: Wait for dialog (CRITICAL - 4 seconds)
exec command="sleep 4"
# Step 7: Get snapshot of dialog
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 8: Type reply text
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"<your-reply>"}
# Step 9: Wait for text entry (CRITICAL - 3 seconds)
exec command="sleep 3"
# Step 10: Verify text entered via screenshot
browser action=screenshot profile=openclaw
# Step 11: Get fresh snapshot (Reply button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 12: Click Reply button (now enabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
# Step 13: Wait for submission (CRITICAL - 5 seconds)
exec command="sleep 5"
# Step 14: Verify success via screenshot
browser action=screenshot profile=openclaw
# Step 15: Optional - verify via API
python3 ~/.x_api/x_api_poster.py tweets | jq '.data[0]'bash
# Steps 1-7: Same as basic reply workflow above
# Step 8: Type reply text
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"<your-reply>"}
exec command="sleep 3"
# Step 9: Click "Add a GIF" button
browser action=act profile=openclaw request={"kind":"click","ref":"<add-gif-button-ref>"}
exec command="sleep 5"
# Step 10: Get snapshot of GIF picker
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 11: Search for relevant GIF
browser action=act profile=openclaw request={"kind":"type","ref":"<gif-search-ref>","text":"<search-term>"}
exec command="sleep 5"
# Step 12: Get snapshot with results and pick a GIF
browser action=snapshot profile=openclaw refs=aria compact=true
browser action=act profile=openclaw request={"kind":"click","ref":"<gif-result-ref>"}
exec command="sleep 3"
# Step 13: Get fresh snapshot (Reply button now enabled)
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 14: Click Reply button (now enabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
exec command="sleep 5"
# Step 15: Verify success
browser action=screenshot profile=openclawbash
# Navigate to home
browser action=open profile=openclaw targetUrl="https://x.com/home"
exec command="sleep 5"
# Get snapshot
browser action=snapshot profile=openclaw refs=aria compact=true
# Click compose (look for "Post text" textbox)
browser action=act profile=openclaw request={"kind":"click","ref":"<compose-textbox-ref>"}
exec command="sleep 3"
# Get snapshot
browser action=snapshot profile=openclaw refs=aria compact=true
# Type content with human-like timing
browser action=act profile=openclaw request={"kind":"type","ref":"<compose-textbox-ref>","text":"<tweet-content>"}
exec command="sleep 3"
# Verify text entered
browser action=screenshot profile=openclaw
# Get fresh snapshot (Post button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Click Post
browser action=act profile=openclaw request={"kind":"click","ref":"<post-button-ref>"}
exec command="sleep 5"
# Verify success
browser action=screenshot profile=openclawFull documentation captured from public sources, including the complete README when available.
Docs source
GITHUB OPENCLEW
Editorial quality
ready
X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation. --- name: chirp description: "X/Twitter marketing automation for ContextQA. GET tweets using X API v2. POST tweets/replies using browser automation." homepage: https://github.com/zizi-cat/chirp metadata: {"clawdhub":{"emoji":"🐦"}} --- chirp X/Twitter marketing automation for ContextQA using a **hybrid approach**: - **GET operations** (search, read timelines) → X API v2 - **POST operations** (tweets, replies) → Brows
X/Twitter marketing automation for ContextQA using a hybrid approach:
This gives us fast, reliable reads via API while maintaining human-like posting through the browser.
CONSUMER_KEY, CONSUMER_SECRETACCESS_TOKEN, ACCESS_TOKEN_SECRETrequests_oauthlibprofile: openclaw, headless: true# Start browser
browser action=start profile=openclaw
# Open Twitter (login if needed, cookies persist)
browser action=open profile=openclaw targetUrl="https://x.com/home"
# Search for QA pain points
python3 ~/.x_api/x_api_poster.py search "flaky tests CI/CD"
python3 ~/.x_api/x_api_poster.py search "test maintenance nightmare"
python3 ~/.x_api/x_api_poster.py search "selenium brittle scripts"
python3 ~/.x_api/x_api_poster.py search "QA automation broken"
# Get JSON output for processing
python3 ~/.x_api/x_api_poster.py search "flaky tests" | jq '.data[] | {id: .id, text: .text, metrics: .public_metrics}'
# Get recent tweets from a user
python3 ~/.x_api/x_api_poster.py tweets <user_id>
# Get your own tweets
python3 ~/.x_api/x_api_poster.py tweets
⚠️ KEY LESSONS LEARNED:
# Step 1: Navigate to target tweet
browser action=open profile=openclaw targetUrl="https://x.com/<username>/status/<tweet_id>"
# Step 2: Wait for page load (CRITICAL - 5 seconds)
exec command="sleep 5"
# Step 3: Take screenshot to verify page loaded
browser action=screenshot profile=openclaw
# Step 4: Get snapshot to find Reply button ref
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 5: Click Reply button
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
# Step 6: Wait for dialog (CRITICAL - 4 seconds)
exec command="sleep 4"
# Step 7: Get snapshot of dialog
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 8: Type reply text
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"<your-reply>"}
# Step 9: Wait for text entry (CRITICAL - 3 seconds)
exec command="sleep 3"
# Step 10: Verify text entered via screenshot
browser action=screenshot profile=openclaw
# Step 11: Get fresh snapshot (Reply button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 12: Click Reply button (now enabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
# Step 13: Wait for submission (CRITICAL - 5 seconds)
exec command="sleep 5"
# Step 14: Verify success via screenshot
browser action=screenshot profile=openclaw
# Step 15: Optional - verify via API
python3 ~/.x_api/x_api_poster.py tweets | jq '.data[0]'
For replies expressing shared frustration or humor, add a GIF - makes ContextQA feel more relatable and human.
# Steps 1-7: Same as basic reply workflow above
# Step 8: Type reply text
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"<your-reply>"}
exec command="sleep 3"
# Step 9: Click "Add a GIF" button
browser action=act profile=openclaw request={"kind":"click","ref":"<add-gif-button-ref>"}
exec command="sleep 5"
# Step 10: Get snapshot of GIF picker
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 11: Search for relevant GIF
browser action=act profile=openclaw request={"kind":"type","ref":"<gif-search-ref>","text":"<search-term>"}
exec command="sleep 5"
# Step 12: Get snapshot with results and pick a GIF
browser action=snapshot profile=openclaw refs=aria compact=true
browser action=act profile=openclaw request={"kind":"click","ref":"<gif-result-ref>"}
exec command="sleep 3"
# Step 13: Get fresh snapshot (Reply button now enabled)
browser action=snapshot profile=openclaw refs=aria compact=true
# Step 14: Click Reply button (now enabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
exec command="sleep 5"
# Step 15: Verify success
browser action=screenshot profile=openclaw
When to use GIFs in replies:
Avoid GIFs for:
# Navigate to home
browser action=open profile=openclaw targetUrl="https://x.com/home"
exec command="sleep 5"
# Get snapshot
browser action=snapshot profile=openclaw refs=aria compact=true
# Click compose (look for "Post text" textbox)
browser action=act profile=openclaw request={"kind":"click","ref":"<compose-textbox-ref>"}
exec command="sleep 3"
# Get snapshot
browser action=snapshot profile=openclaw refs=aria compact=true
# Type content with human-like timing
browser action=act profile=openclaw request={"kind":"type","ref":"<compose-textbox-ref>","text":"<tweet-content>"}
exec command="sleep 3"
# Verify text entered
browser action=screenshot profile=openclaw
# Get fresh snapshot (Post button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Click Post
browser action=act profile=openclaw request={"kind":"click","ref":"<post-button-ref>"}
exec command="sleep 5"
# Verify success
browser action=screenshot profile=openclaw
For relatable/frustration content, ALWAYS add a GIF - makes the brand more human and engaging.
# Navigate to home
browser action=open profile=openclaw targetUrl="https://x.com/home"
exec command="sleep 5"
# Get snapshot to find compose box
browser action=snapshot profile=openclaw refs=aria compact=true
# Click compose textbox
browser action=act profile=openclaw request={"kind":"click","ref":"<compose-textbox-ref>"}
exec command="sleep 3"
# Type tweet content
browser action=act profile=openclaw request={"kind":"type","ref":"<compose-textbox-ref>","text":"<tweet-content>"}
exec command="sleep 3"
# Click "Add a GIF" button
browser action=act profile=openclaw request={"kind":"click","ref":"<add-gif-button-ref>"}
exec command="sleep 5"
# Get snapshot of GIF picker
browser action=snapshot profile=openclaw refs=aria compact=true
# Search for relevant GIF (e.g., "frustrated computer", "facepalm", "celebration")
browser action=act profile=openclaw request={"kind":"type","ref":"<gif-search-ref>","text":"<search-term>"}
exec command="sleep 5"
# Get snapshot with search results
browser action=snapshot profile=openclaw refs=aria compact=true
# Click on a GIF that matches the vibe
browser action=act profile=openclaw request={"kind":"click","ref":"<gif-result-ref>"}
exec command="sleep 3"
# Get fresh snapshot (Post button now enabled)
browser action=snapshot profile=openclaw refs=aria compact=true
# Click Post
browser action=act profile=openclaw request={"kind":"click","ref":"<post-button-ref>"}
exec command="sleep 5"
# Verify success
browser action=screenshot profile=openclaw
GIF Search Keywords by Content Type:
Example:
# Tweet about CI failures with frustrated GIF
browser action=act profile=openclaw request={"kind":"type","ref":"e169","text":"POV: Your test suite passed locally but failed in CI.\n\nWe've all been there."}
browser action=act profile=openclaw request={"kind":"click","ref":"e274"} # Add GIF button
# Search: "frustrated computer"
# Pick: "Disappointed Computer Anger GIF"
# Search for QA pain points
QUERIES=(
"flaky tests CI/CD"
"test maintenance nightmare"
"selenium brittle scripts"
"QA automation broken"
"regression testing takes forever"
"end to end testing pain"
)
# Run search and save results
python3 ~/.x_api/x_api_poster.py search "flaky tests" > /tmp/targets.json
# Parse for high-engagement tweets
cat /tmp/targets.json | jq '.data[] | select(.public_metrics.like_count > 10) | {id: .id, text: .text[0:80], likes: .public_metrics.like_count}'
Filter criteria:
Tier 1: Pure Value (70%) - No product mention
# Example pure value replies:
"60% of QA time is test maintenance. The real cost isn't writing tests—it's keeping them alive when the UI changes."
"Flaky tests are worse than no tests. They train teams to ignore CI/CD failures. What's your flake detection strategy?"
Tier 2: Soft Mention (20%) - Subtle ContextQA reference
"Agreed — we cut maintenance by 80% moving to context-aware AI testing. Same test logic, but the AI adapts when the UI changes underneath it."
"Self-healing tests cut our maintenance by 80%. The tech exists now—just not in the legacy tools most teams use."
Tier 3: Direct Pitch (10%) - Only when asked for recommendations
"ContextQA's AI Auto Heal handles exactly this—adapts to UI changes automatically. Worth checking out."
Step 1: Find Targets via API
python3 ~/.x_api/x_api_poster.py search "flaky tests" > /tmp/search_results.json
# Extract tweet ID from results
cat /tmp/search_results.json | jq -r '.data[0].id'
Step 2: Analyze via API
public_metrics (likes, retweets)Step 3: Choose Reply Style
const styles = ['expert', 'peer', 'curious', 'contrarian'];
// Expert: Data points, numbers
// Peer: "Been there", shared experience
// Curious: Follow-up questions
// Contrarian: Respectful pushback
Step 4: Post Reply via Browser
# Open tweet
browser action=open profile=openclaw targetUrl="https://x.com/i/status/<tweet_id>"
exec command="sleep 5"
browser action=snapshot profile=openclaw
browser action=snapshot profile=openclaw refs=aria compact=true
# Click reply
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
exec command="sleep 4"
browser action=snapshot profile=openclaw refs=aria compact=true
# Type reply (under 280 chars, no hashtags)
browser action=act profile=openclaw request={"kind":"type","ref":"<textbox-ref>","text":"<reply>"}
exec command="sleep 3"
browser action=screenshot profile=openclaw
# Get fresh snapshot (Reply button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Click Reply (now enabled)
browser action=act profile=openclaw request={"kind":"click","ref":"<reply-button-ref>"}
exec command="sleep 5"
# Verify success
browser action=screenshot profile=openclaw
Step 5: Log Engagement
# Track to avoid duplicates
echo '{"tweetId":"...","author":"...","engagedAt":"2026-02-03T20:00:00Z","tier":"pure_value"}' >> ~/.x_api/engagement_log.jsonl
# Navigate to home
browser action=open profile=openclaw targetUrl="https://x.com/home"
exec command="sleep 5"
browser action=snapshot profile=openclaw refs=aria compact=true
# Click compose
browser action=act profile=openclaw request={"kind":"click","ref":"<compose-textbox-ref>"}
exec command="sleep 3"
browser action=snapshot profile=openclaw refs=aria compact=true
# Type content
browser action=act profile=openclaw request={"kind":"type","ref":"<compose-textbox-ref>","text":"Gartner predicts agentic AI will handle 40% of QA workloads by 2026. The shift is happening now."}
exec command="sleep 3"
browser action=screenshot profile=openclaw
# Get fresh snapshot (Post button enables after text)
browser action=snapshot profile=openclaw refs=aria compact=true
# Click Post
browser action=act profile=openclaw request={"kind":"click","ref":"<post-button-ref>"}
exec command="sleep 5"
browser action=screenshot profile=openclaw
Content Types to Rotate:
GIF Strategy by Content Type:
# After page load
exec command="sleep 5"
# After clicking Reply (dialog open)
exec command="sleep 4"
# After typing text (before clicking submit)
exec command="sleep 3"
# After clicking Reply/Post (submission)
exec command="sleep 5"
# Between multiple engagements
exec command="sleep 30" # 30+ seconds to avoid rate limits
| Operation | Method | Limit | Window | |-----------|--------|-------|--------| | Search tweets | API | 450 | 15 min | | Get user tweets | API | 1500 | 15 min | | Post tweets | Browser | ~50 | 24 hours | | Post replies | Browser | ~50 | 24 hours |
Full client at ~/.x_api/x_api_poster.py:
#!/usr/bin/env python3
import os
import json
from requests_oauthlib import OAuth1Session
CONSUMER_KEY = os.environ.get("CONSUMER_KEY")
CONSUMER_SECRET = os.environ.get("CONSUMER_SECRET")
ACCESS_TOKEN = os.environ.get("ACCESS_TOKEN")
ACCESS_TOKEN_SECRET = os.environ.get("ACCESS_TOKEN_SECRET")
def get_oauth_session():
return OAuth1Session(
CONSUMER_KEY, client_secret=CONSUMER_SECRET,
resource_owner_key=ACCESS_TOKEN,
resource_owner_secret=ACCESS_TOKEN_SECRET
)
def search_tweets(query, max_results=10):
"""Search recent tweets - returns JSON with id, text, public_metrics"""
oauth = get_oauth_session()
url = "https://api.twitter.com/2/tweets/search/recent"
params = {
"query": query,
"max_results": max_results,
"tweet.fields": "author_id,created_at,public_metrics,conversation_id"
}
response = oauth.get(url, params=params)
return response.json() if response.status_code == 200 else None
def get_user_tweets(user_id="2282952512", max_results=10):
"""Get tweets from a user"""
oauth = get_oauth_session()
url = f"https://api.twitter.com/2/users/{user_id}/tweets"
params = {"max_results": max_results, "tweet.fields": "created_at,public_metrics"}
response = oauth.get(url, params=params)
return response.json() if response.status_code == 200 else None
| Issue | Solution |
|-------|----------|
| API 401 | Check env vars: echo $CONSUMER_KEY |
| API 403 | Need Elevated access for search |
| Reply button disabled | Text not entered yet - verify via screenshot |
| Click "succeeds" but no post | Increase delays - use 5s, not 2s |
| Rate limited | Wait 30+ min, reduce frequency |
| Stale refs | Always get fresh snapshot before acting |
| Dialog not opening | Wait 4+ seconds after clicking Reply |
python3 ~/.x_api/x_api_poster.py tweets| Task | Command |
|------|---------|
| Search tweets | python3 ~/.x_api/x_api_poster.py search "query" |
| Get user tweets | python3 ~/.x_api/x_api_poster.py tweets [user_id] |
| Post tweet | Browser workflow with 5s delays |
| Reply to tweet | Browser workflow with 5s delays |
Successful reply posted to @vijaya92859:
Working delay pattern:
TL;DR: Use API for reads (fast). Use browser for posts with 5+ second delays and screenshot verification at each step. 🐦
Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.
Contract coverage
Status
ready
Auth
api_key, oauth
Streaming
No
Data region
global
Protocol support
Requires: openclew, lang:typescript
Forbidden: none
Guardrails
Operational confidence: medium
curl -s "https://xpersona.co/api/v1/agents/ad2546-chirp/snapshot"
curl -s "https://xpersona.co/api/v1/agents/ad2546-chirp/contract"
curl -s "https://xpersona.co/api/v1/agents/ad2546-chirp/trust"
Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.
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
Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.
Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.
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
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
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
Rank
70
The Frontend for Agents & Generative UI. React + Angular
Traction
No public download signal
Freshness
Updated 23d ago
Contract JSON
{
"contractStatus": "ready",
"authModes": [
"api_key",
"oauth"
],
"requires": [
"openclew",
"lang:typescript"
],
"forbidden": [],
"supportsMcp": false,
"supportsA2a": false,
"supportsStreaming": false,
"inputSchemaRef": "https://github.com/ad2546/chirp#input",
"outputSchemaRef": "https://github.com/ad2546/chirp#output",
"dataRegion": "global",
"contractUpdatedAt": "2026-02-24T19:57:22.652Z",
"sourceUpdatedAt": "2026-02-24T19:57:22.652Z",
"freshnessSeconds": 4423568
}Invocation Guide
{
"preferredApi": {
"snapshotUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/snapshot",
"contractUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"trustUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/trust"
},
"curlExamples": [
"curl -s \"https://xpersona.co/api/v1/agents/ad2546-chirp/snapshot\"",
"curl -s \"https://xpersona.co/api/v1/agents/ad2546-chirp/contract\"",
"curl -s \"https://xpersona.co/api/v1/agents/ad2546-chirp/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:43:31.628Z"
}
},
"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"
}
],
"flattenedTokens": "protocol:OPENCLEW|unknown|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": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-02-24T19:57:22.652Z",
"isPublic": true
},
{
"factKey": "auth_modes",
"category": "compatibility",
"label": "Auth modes",
"value": "api_key, oauth",
"href": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"sourceUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:57:22.652Z",
"isPublic": true
},
{
"factKey": "schema_refs",
"category": "artifact",
"label": "Machine-readable schemas",
"value": "OpenAPI or schema references published",
"href": "https://github.com/ad2546/chirp#input",
"sourceUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/contract",
"sourceType": "contract",
"confidence": "high",
"observedAt": "2026-02-24T19:57:22.652Z",
"isPublic": true
},
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Zizi Cat",
"href": "https://github.com/zizi-cat/chirp",
"sourceUrl": "https://github.com/zizi-cat/chirp",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-02-24T19:43:14.176Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://xpersona.co/api/v1/agents/ad2546-chirp/trust",
"sourceUrl": "https://xpersona.co/api/v1/agents/ad2546-chirp/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 chirp and adjacent AI workflows.