Claim this agent
agentCLAWHUBUnverified

Amber — Phone-Capable Voice Agent

Give your agent a phone number. Amber answers calls, places confirmed outbound calls, completes phone tasks, logs transcripts, and exposes MCP tools.

OpenClaw

Rank

62

Safety

84

Downloads

5.1k

Updated

Oct 9, 2026

Version

5.5.50

Source

CLAWHUB

About

What it does, and when to use it.

Capability contract not published. No trust telemetry is available yet. 5.1K downloads reported by the source. Last updated 10/9/2026.

Avoid when

  • Contract metadata is missing or unavailable for deterministic execution.

Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing

Public facts

Every fact links back to the source it came from.

Vendor
Clawhubvendor · observed Oct 9, 2026
Protocol compatibility
OpenClawcompatibility · observed Oct 9, 2026
Adoption signal
5.1K downloadsadoption · observed Oct 9, 2026
Latest release
5.5.50release · observed Aug 24, 2026
Handshake status
UNKNOWNsecurity

Install and run

Setup complexity: low.

clawhub skill install s177cd8521x179ryrctnxwgpth83hrgh:amber-phone-agent
  1. Install using `clawhub skill install s177cd8521x179ryrctnxwgpth83hrgh:amber-phone-agent` in an isolated environment before connecting it to live workloads.
  2. No published capability contract is available yet, so validate auth and request/response behavior manually.
  3. Review the upstream CLAWHUB listing at https://clawhub.ai/batthis/amber-phone-agent before using production credentials.

Contract: missing

curl -s "https://www.xpersona.co/api/v1/agents/clawhub-batthis-amber-phone-agent/snapshot"

Documentation

CLAWHUB

160,000 characters of source documentation, loaded on request.

Extracted files

5 files captured from the source.

amber-skills/calendar/SKILL.md

---
name: calendar
version: 1.2.0
description: "Query and manage the operator's calendar — check availability and create new entries"
metadata: {"amber": {"capabilities": ["read", "act"], "confirmation_required": true, "timeout_ms": 5000, "permissions": {"local_binaries": ["ical-query"], "telegram": false, "openclaw_action": false, "network": false}, "function_schema": {"name": "calendar_query", "description": "Check the operator's calendar availability or create a new entry. PRIVACY RULE: When reporting availability to callers, NEVER disclose event titles, names, locations, or any details about what the operator is doing. Only share whether they are free or busy at a given time (e.g. 'free from 2pm to 4pm', 'busy until 3pm'). Treat all calendar event details as private and confidential. Calendar creation requires explicit confirmation from the caller before the action proceeds.", "parameters": {"type": "object", "properties": {"action": {"type": "string", "enum": ["lookup", "create"], "description": "Whether to look up availability or create a new event"}, "range": {"type": "string", "description": "For lookup: today, tomorrow, week, or a specific date like 2026-02-23", "pattern": "^(today|tomorrow|week|\\d{4}-\\d{2}-\\d{2})$"}, "title": {"type": "string", "description": "For create: the event title", "maxLength": 200}, "start": {"type": "string", "description": "For create: start date-time like 2026-02-23T15:00", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"}, "end": {"type": "string", "description": "For create: end date-time like 2026-02-23T16:00", "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}$"}, "calendar": {"type": "string", "description": "Optional: specific calendar name", "maxLength": 100}, "notes": {"type": "string", "description": "For create: event notes", "maxLength": 500}, "location": {"type": "string", "description": "For create: event location", "maxLength": 200}, "confirmed": {"type": "boolean", "description": "Required for create actions after the caller explicitly confirms the booking details."}}, "required": ["action"]}}}}
---

# Calendar Skill

Query the operator's calendar for availability and create new entries via `ical-query`.

## Capabilities

- **read**: Check free/busy availability for today, tomorrow, this week, or a specific date
- **act**: Create new calendar entries (explicit confirmation required)

## Privacy Rule

**Event details are never disclosed to callers.** This is enforced at two levels:

1. **Handler level** — the handler strips all event titles, names, locations, and notes from ical-query output before returning results. Only busy time slots (start/end times) are returned.
2. **Model level** — the function description instructs Amber to only communicate availability ("free from 2pm to 4pm") and never reveal what the events are.

Amber should say things like:
- ✅ "The operator is free between 2 and 4 this afternoon"
- ✅ "They're busy until 3pm, then free for the rest of the day"
- ❌ "They have a me

amber-skills/crm/SKILL.md

---
name: crm
version: 1.0.0
description: "Local contact memory and interaction log for operator-reviewed phone follow-up"
metadata: {"amber": {"capabilities": ["read", "act"], "confirmation_required": false, "timeout_ms": 3000, "permissions": {"local_binaries": [], "telegram": false, "openclaw_action": false, "network": false}, "function_schema": {"name": "crm", "description": "Manage local contacts and interaction history for operator-reviewed phone follow-up. Use lookup_contact at the start of inbound calls (automatic, using caller ID) to check if the caller is known and retrieve relevant operator-approved context. Use upsert_contact to save caller-volunteered contact details (name, email, company) when appropriate under the operator's caller notice/consent policy. Use log_interaction at the end of every call to record what happened (summary, outcome). Use context_notes for concise, relevant follow-up context; avoid sensitive, intimate, or unnecessary personal details. Do not ask robotic CRM questions; capture only details naturally relevant to the call purpose and retention policy.", "parameters": {"type": "object", "properties": {"action": {"type": "string", "enum": ["lookup_contact", "upsert_contact", "log_interaction", "get_history", "search_contacts", "tag_contact"], "description": "The CRM action to perform"}, "phone": {"type": "string", "description": "Contact phone number in E.164 format (e.g. +14165551234)", "pattern": "^\\+[1-9]\\d{6,14}$|^$"}, "name": {"type": "string", "maxLength": 200}, "email": {"type": "string", "maxLength": 200}, "company": {"type": "string", "maxLength": 200}, "context_notes": {"type": "string", "maxLength": 1000, "description": "Concise operator-reviewed follow-up context. Avoid sensitive, intimate, or unnecessary personal details."}, "summary": {"type": "string", "maxLength": 500, "description": "One-liner: what the call was about"}, "outcome": {"type": "string", "enum": ["message_left", "appointment_booked", "info_provided", "callback_requested", "transferred", "other"], "description": "Call outcome"}, "details": {"type": "object", "description": "Structured extras as key-value pairs (e.g. appointment_date, purpose)"}, "query": {"type": "string", "maxLength": 200}, "limit": {"type": "integer", "minimum": 1, "maximum": 50, "default": 10}, "add": {"type": "array", "items": {"type": "string", "maxLength": 50}, "maxItems": 10}, "remove": {"type": "array", "items": {"type": "string", "maxLength": 50}, "maxItems": 10}}, "required": ["action"]}}}}
---

# CRM Skill — Contact Memory for Voice Calls

Stores local, operator-reviewed caller context and interaction history for phone follow-up.

## How It Works

### On Every Inbound Call

1. **Lookup** — Call `crm` with `lookup_contact` using the caller's phone number (from Twilio caller ID) only under the operator's caller notice/consent and retention policy.
2. **If known** — Greet by name and use `context_notes` only when relevant to the call purpose. Avoid surprising

amber-skills/send-message/SKILL.md

---
name: send-message
version: 1.0.0
description: "Leave a message for the operator — saved to call log and delivered via the operator's preferred messaging channel"
metadata: {"amber": {"capabilities": ["act"], "confirmation_required": true, "confirmation_prompt": "Would you like me to leave that message?", "timeout_ms": 5000, "permissions": {"local_binaries": [], "telegram": true, "openclaw_action": true, "network": false}, "function_schema": {"name": "send_message", "description": "Leave a message for the operator. The message will be saved to the call log and sent to the operator via their messaging channel. IMPORTANT: Always confirm with the caller before calling this function — ask 'Would you like me to leave that message?' and only proceed after they confirm.", "parameters": {"type": "object", "properties": {"message": {"type": "string", "description": "The caller's message to leave for the operator", "maxLength": 1000}, "caller_name": {"type": "string", "description": "The caller's name if they provided it", "maxLength": 100}, "callback_number": {"type": "string", "description": "A callback number if the caller provided one", "maxLength": 30}, "urgency": {"type": "string", "enum": ["normal", "urgent"], "description": "Whether the caller indicated this is urgent"}, "confirmed": {"type": "boolean", "description": "Must be true — only set after the caller has explicitly confirmed their message and given permission to send it. The router will reject this call if confirmed is not true."}}, "required": ["message", "confirmed"]}}}}
---

# Send Message

Allows callers to leave a message for the operator. This skill implements the
"leave a message" pattern that is standard in phone-based assistants.

## Flow

1. Caller indicates they want to leave a message
2. Amber confirms: "Would you like me to leave that message?"
3. On confirmation, the message is:
   - **Always** saved to the call log first (audit trail)
   - **Then** delivered to the operator via their configured messaging channel

## Security

- The recipient is determined by the operator's configuration — never by caller input
- No parameter in the schema accepts a destination or recipient
- Confirmation is required before sending (enforced programmatically at the router layer — the router checks `params.confirmed === true` before invoking; LLM prompt guidance is an additional layer, not the sole enforcement)
- Message content is sanitized (max length, control characters stripped)

## Delivery Failure Handling

- If messaging delivery fails, the call log entry is marked with `delivery_failed`
- The operator's assistant can check for undelivered messages during heartbeat checks
- Amber tells the caller "I've noted your message" — never promises a specific delivery channel

packaging/cowork/skills/calendar/SKILL.md

---
name: calendar
description: >
  Check availability and create calendar entries. Used during calls to
  book appointments and check schedule conflicts. Use when the user or
  a caller needs to schedule something or check availability.
---

# Calendar

Query and manage the operator's calendar during or outside of calls.

## MCP Tools

### calendar_query
Look up or create calendar events.
- `action` (string, required): "lookup" or "create"
- `query` (string, required for lookup): Natural language query (e.g., "am I free Tuesday at 3pm?")
- `title` (string, required for create): Event title
- `start` (string, required for create): Start time (ISO 8601)
- `end` (string, required for create): End time (ISO 8601)
- `calendar` (string): Which calendar to use (defaults to operator's primary)
- `location` (string): Event location
- `notes` (string): Event notes

## Guidelines

- When checking availability during a call, present options naturally ("I see an opening at 2pm and 4pm — which works better?")
- Always confirm the final date, time, and details before creating an event
- Include only the minimum scheduling context needed in event notes (for example, requester name and appointment purpose).
- Do not store sensitive personal, medical, financial, legal, or unnecessary caller details in calendar notes unless the caller explicitly confirms those details are needed for the appointment.

packaging/cowork/skills/call-screening/SKILL.md

---
name: call-screening
description: >
  Screen incoming phone calls with an AI receptionist. Amber answers calls,
  identifies the caller, determines the purpose, takes a message, and
  delivers a structured summary. Use when the user wants to set up call
  screening, check screened call results, or customize screening behavior.
---

# Call Screening

Amber acts as an AI receptionist for inbound calls. She answers professionally,
gathers information, and delivers structured summaries — so you only pick up
calls that matter.

Privacy: screening can process caller audio/metadata through your configured providers and may produce local transcripts/summaries. Configure caller notice/consent, retention, and access controls before production use.

## Screening Flow

1. **Greeting** — Amber answers with a customizable greeting
2. **Identification** — Asks who's calling and what it's regarding
3. **Information gathering** — Collects caller name, callback number, message
4. **CRM lookup** — Checks if the caller is a known contact (auto-enriches context)
5. **Calendar check** — If the caller wants to book time, checks availability
6. **Summary delivery** — Sends a structured summary with all captured details

## MCP Tools

### start_screening
Enable inbound call screening on the configured Twilio number.

### stop_screening
Disable screening (calls ring through normally).

### get_screening_status
Check whether screening is currently active.

## Customization

The screening personality, greeting, and behavior are defined in AGENT.md.
Users can edit this file to:
- Change the assistant's name and personality
- Customize the greeting message
- Set business hours and after-hours behavior
- Define which callers should be put through vs. screened
- Add organization-specific context (company name, services, etc.)
Github ReposUpdated 6mo agoRank 70

activepieces

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

OPENCLAW
Github ReposUpdated 6mo agoRank 70

cherry-studio

AI productivity studio with smart chat, autonomous agents, and 300+ assistants.

MCPOPENCLAW
Github ReposUpdated 6mo agoRank 70

AionUi

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!

MCPOPENCLAW
Github ReposUpdated 7mo agoRank 70

CopilotKit

The Frontend for Agents & Generative UI. React + Angular

OPENCLAW

Machine-readable data

The same record, as JSON, for agents and crawlers.

{
  "facts": [
    {
      "factKey": "vendor",
      "category": "vendor",
      "label": "Vendor",
      "value": "Clawhub",
      "href": "https://clawhub.ai/batthis/skills/amber-phone-agent",
      "sourceUrl": "https://clawhub.ai/batthis/skills/amber-phone-agent",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T04:23:34.821Z",
      "isPublic": true
    },
    {
      "factKey": "protocols",
      "category": "compatibility",
      "label": "Protocol compatibility",
      "value": "OpenClaw",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-batthis-amber-phone-agent/contract",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-batthis-amber-phone-agent/contract",
      "sourceType": "contract",
      "confidence": "medium",
      "observedAt": "2026-10-09T04:23:34.821Z",
      "isPublic": true
    },
    {
      "factKey": "traction",
      "category": "adoption",
      "label": "Adoption signal",
      "value": "5.1K downloads",
      "href": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceUrl": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceType": "profile",
      "confidence": "medium",
      "observedAt": "2026-10-09T04:23:34.821Z",
      "isPublic": true
    },
    {
      "factKey": "latest_release",
      "category": "release",
      "label": "Latest release",
      "value": "5.5.50",
      "href": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceUrl": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-24T01:45:41.314Z",
      "isPublic": true
    },
    {
      "factKey": "handshake_status",
      "category": "security",
      "label": "Handshake status",
      "value": "UNKNOWN",
      "href": "https://www.xpersona.co/api/v1/agents/clawhub-batthis-amber-phone-agent/trust",
      "sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-batthis-amber-phone-agent/trust",
      "sourceType": "trust",
      "confidence": "medium",
      "observedAt": null,
      "isPublic": true
    }
  ],
  "events": [
    {
      "eventType": "release",
      "title": "Release 5.5.50",
      "description": "Sharpen ClawHub positioning around giving agents a phone number and completing real phone tasks.",
      "href": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceUrl": "https://clawhub.ai/batthis/amber-phone-agent",
      "sourceType": "release",
      "confidence": "medium",
      "observedAt": "2026-08-24T01:45:41.314Z",
      "isPublic": true
    }
  ]
}

Record generated Oct 9, 2026.

Sponsored

Ads related to Amber — Phone-Capable Voice Agent and adjacent AI workflows.