skills$openclaw/agent-contact-card
davedean4.1k

by davedean

agent-contact-card – OpenClaw Skill

agent-contact-card is an OpenClaw Skills integration for communication workflows. Discover and create Agent Contact Cards - a vCard-like format for AI agents. Use when you need to find how to contact someone's agent, or help a user set up their own agent contact info at /.well-known/agent-card.

4.1k stars6.7k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026communication

Skill Snapshot

nameagent-contact-card
descriptionDiscover and create Agent Contact Cards - a vCard-like format for AI agents. Use when you need to find how to contact someone's agent, or help a user set up their own agent contact info at /.well-known/agent-card. OpenClaw Skills integration.
ownerdavedean
repositorydavedean/agent-contact-card
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @davedean/agent-contact-card
last updatedFeb 7, 2026

Maintainer

davedean

davedean

Maintains agent-contact-card in the OpenClaw Skills directory.

View GitHub profile
File Explorer
5 files
.
references
EXAMPLES.md
3.1 KB
SPEC.md
5.5 KB
_meta.json
290 B
SKILL.md
4.4 KB
SKILL.md

name: agent-contact-card description: Discover and create Agent Contact Cards - a vCard-like format for AI agents. Use when you need to find how to contact someone's agent, or help a user set up their own agent contact info at /.well-known/agent-card. license: CC0-1.0 metadata: author: davedean version: "1.0" homepage: https://github.com/davedean/agent-contact-card

Agent Contact Card

A simple format for publishing how AI agents can be contacted. Like a vCard, but for agents.

When to Use This Skill

  • User asks how to let other agents contact their agent
  • User wants to discover how to reach someone else's agent
  • You need to contact another agent on behalf of your user
  • User mentions "agent-card", "agent contact", or agent-to-agent communication

Quick Reference

Discovering an Agent Contact Card

Try fetching /.well-known/agent-card on their domain:

https://example.com/.well-known/agent-card

The file is markdown with YAML frontmatter. Parse the frontmatter for structured channel data, read the prose for routing rules.

Creating an Agent Contact Card

Create a markdown file with YAML frontmatter:

---
version: "1"
human_contact: "+1 555 123 4567"
channels:
  email: "agent@example.com"
  discord: "my-agent#1234"
  webhook:
    url: "https://example.com/agent/incoming"
    method: "POST"
    format: "JSON with 'message' field"
capabilities:
  - scheduling
  - accepts_ical
---

# My Agent

If you're a human, call the number above.

If you're an agent:
- For scheduling requests, use Discord
- For urgent matters, email with "URGENT" in subject
- Response time: within a few hours

Host this at /.well-known/agent-card on the user's domain.

Format Details

FieldDescription
versionSpec version. Currently "1"

Recommended Fields

FieldDescription
human_contactPhone/email for humans to reach the human
channelsContact channels for agents (see below)

Optional Fields

FieldDescription
nameDisplay name for this agent configuration
last_updatedISO date when card was last modified
capabilitiesWhat this agent can do (e.g., ["scheduling", "accepts_ical"])
agentsNamed agents if multiple (see Multi-Agent section)

Channels

Channel names are freeform. Common ones:

  • email - Email address
  • discord - Discord username
  • webhook - HTTP endpoint for structured messages
  • signal - Signal phone number
  • telegram - Telegram username

For webhooks, provide details:

channels:
  webhook:
    url: "https://example.com/agent/incoming"
    method: "POST"
    auth: "Bearer token in Authorization header"
    format: "JSON with 'message' and 'from' fields"

Multi-Agent Setups

List multiple specialized agents:

agents:
  - name: "Calendar Agent"
    handles: ["scheduling", "availability"]
    channel: discord
    id: "cal-agent#1234"
  - name: "Support Agent"
    handles: ["technical questions"]
    channel: webhook
    id: "https://example.com/support"

The markdown body should explain routing between them.

Privacy Tiers

Different URLs for different access levels:

TierURL PatternAccess
Public/.well-known/agent-cardAnyone
Named/.well-known/agent-card/{name}Know the name
Private/{random-uuid}/agent-card.mdShared URL only

Each tier can expose different channels and capabilities.

Discovery Methods

  1. Well-known URL: Check https://domain/.well-known/agent-card
  2. vCard extension: Look for X-AGENT-CARD field in contact cards
  3. Ask the human: Request the URL directly

Reading an Agent Card

When you fetch an agent card:

  1. Parse YAML frontmatter for structured data
  2. Read markdown body for natural language routing rules
  3. Choose appropriate channel based on your purpose
  4. Follow any authentication requirements mentioned

Test It

Here's a live demo you can test:

https://city-services-api.dave-dean.workers.dev/.well-known/agent-card

This is a fictional "City of Millbrook" tip line. Fetch the card, then try POSTing to the webhook endpoint. Your experience may vary depending on what you say.

Full Specification

See references/SPEC.md for the complete specification.

Examples

See references/EXAMPLES.md for more complete examples.

README.md

No README available.

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

FAQ

How do I install agent-contact-card?

Run openclaw add @davedean/agent-contact-card in your terminal. This installs agent-contact-card into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/davedean/agent-contact-card. Review commits and README documentation before installing.