amber-voice-assistant
The most complete voice and phone calling skill for OpenClaw. Handles inbound and outbound phone calls over Twilio with OpenAI Realtime speech. Inbound outbound calling, calendar management, CRM, multilingual phone assistant with transcripts. Includes setup wizard, live dashboard, and brain-in-the-loop escalation. Now also ships as a Claude Desktop plugin (MCP) — make calls, check CRM, and query your calendar directly from Claude Desktop.
安装 / 下载方式
TotalClaw CLI推荐
totalclaw install clawskills:clawskills~batthis-amber-voice-assistantcURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/clawskills%3Aclawskills~batthis-amber-voice-assistant/file -o batthis-amber-voice-assistant.md# Amber — Phone-Capable Voice Agent ## Overview Amber gives any OpenClaw deployment a phone-capable AI voice assistant. It ships with a **production-ready Twilio + OpenAI Realtime bridge** (`runtime/`) that handles inbound call screening, outbound calls, appointment booking, and live OpenClaw knowledge lookups — all via natural voice conversation. **✨ New in v5.4.0:** Amber now ships as a **Claude Desktop MCP plugin** with 9 tools — make outbound calls by name, check call history, query CRM contacts, manage calendar, and control call screening, all from Claude Desktop or Claude Cowork. Includes Apple Contacts integration and a call confirmation safeguard to prevent wrong-number dials. **✨ Also:** Interactive setup wizard (`npm run setup`) validates credentials in real-time and generates a working `.env` file — no manual configuration needed! ## See it in action  **[▶️ Watch the interactive demo on asciinema.org](https://asciinema.org/a/l1nOHktunybwAheQ)** (copyable text, adjustable speed) *The interactive wizard validates credentials, detects ngrok, and generates a complete `.env` file in minutes.* ### What's included - **Runtime bridge** (`runtime/`) — a complete Node.js server that connects Twilio phone calls to OpenAI Realtime with OpenClaw brain-in-the-loop - **Amber Skills** (`amber-skills/`) — modular mid-call capabilities (CRM, calendar, log & forward message) with a spec for building your own - **Built-in CRM** — local SQLite contact database; Amber greets callers by name and references personal context naturally on every call - **Call log dashboard** (`dashboard/`) — browse call history, transcripts, and captured messages; includes **manual Sync button** to pull new calls on demand - **Setup & validation scripts** — preflight checks, env templates, quickstart runner - **Architecture docs & troubleshooting** — call flow diagrams, common failure runbooks - **Safety guardrails** — approval patterns for outbound calls, payment escalation, consent boundaries ## 🔌 Amber Skills — Extensible by Design Amber ships with a growing library of **Amber Skills** — modular capabilities that plug directly into live voice conversations. Each skill exposes a structured function that Amber can call mid-call, letting you compose powerful voice workflows without touching the bridge code. ### 👤 CRM — Contact Memory *(v5.3.0)* Amber remembers every caller across calls and uses that memory to personalize every conversation. - **Runtime-managed** — lookup and logging happen automatically; Amber never has to "remember" to call CRM - **Personalized greeting** — known callers are greeted by name; personal context (pets, recent events, preferences) is referenced warmly on the first sentence - **Two-pass enrichment** — auto-log captures the call immediately; a post-call LLM extraction pass reads the full transcript to extract name, email, and `context_notes` - **Symmetric** — works identically for inbound and outbound calls - **Local SQLite** — stored at `~/.config/amber/crm.sqlite`; no cloud, no data leaves your machine - **Native dependency** — requires `better-sqlite3` (native build). macOS: `sudo xcodebuild -license accept` before `npm install`. Linux: `build-essential` + `python3`. ### 📅 Calendar Query the operator's calendar for availability or schedule a new event — all during a live call. - **Availability lookups** — free/busy slots for today, tomorrow, this week, or any specific date - **Event creation** — book appointments directly into the operator's calendar from a phone conversation - **Privacy by default** — callers are only told whether the operator is free or busy; event titles, names, and locations are never disclosed - Powered by `ical-query` — local-only, zero network latency ### 📬 Log & Forward Message Let callers leave a message that is automatically saved and forwarded to the operator. - Captures the caller's message, name, and optional callback number - **Always saves to the call log first** (audit trail), then delivers via the operator's configured messaging channel - Confirmation-gated — Amber confirms with the caller before sending - Delivery destination is operator-configured — callers cannot redirect messages ### Build Your Own Skills Amber's skill system is designed to grow. Each skill is a self-contained directory with a `SKILL.md` (metadata + function schema) and a `handler.js`. You can: - **Customize the included skills** to fit your own setup - **Build new skills** for your use case — CRM lookups, inventory checks, custom notifications, anything callable mid-call - **Share skills** with the OpenClaw community via [ClawHub](https://clawhub.com) See [`amber-skills/`](amber-skills/) for examples and the full specification to get started. > **Note:** Each skill's `handler.js` is reviewed against its declared permissions. When building or installing third-party skills, review the handler source as you would any Node.js module. ### Call log dashboard ```bash cd dashboard && node scripts/serve.js # → http://localhost:8787 ``` - **⬇ Sync button** (green) — immediately pulls new calls from `runtime/logs/` and refreshes the dashboard. Use this right after a call ends rather than waiting for the background watcher. - **↻ Refresh button** (blue) — reloads existing data from disk without re-processing logs. - Background watcher (`node scripts/watch.js`) auto-syncs every 30 seconds when running. ## Why Amber - **Ship a voice assistant in minutes** — `npm install`, configure `.env`, `npm start` - Full inbound screening: greeting, message-taking, appointment booking with calendar integration - Outbound calls with structured call plans (reservations, inquiries, follow-ups) - **`ask_openclaw` tool (least-privilege)** — voice agent consults your OpenClaw gateway only for call-critical needs (calendar checks, booking, required factual lookups), not for unrelated tasks - VAD tuning + verbal fillers to keep conversations natural (no dead air during lookups) - Fully configurable: assistant name, operator info, org name, calendar, screening style — all via env vars - Operator safety guardrails for approvals/escalation/payment handling ## Personalization requirements Before deploying, users must personalize: - assistant name/voice and greeting text, - own Twilio number and account credentials, - own OpenAI project + webhook secret, - own OpenClaw gateway/session endpoint, - own call safety policy (approval, escalation, payment handling). Do not reuse example values from another operator. ## 5-minute quickstart ### Option A: Interactive Setup Wizard (recommended) ✨ The easiest way to get started: 1. `cd runtime` 2. `npm run setup` 3. Follow the interactive prompts — the wizard will: - Validate your Twilio and OpenAI credentials in real-time - Auto-detect and configure ngrok if available - Generate a working `.env` file - Optionally install dependencies and build the project 4. Configure your Twilio webhook (wizard shows you the exact URL) 5. Start the server: `npm start` 6. Call your Twilio number — your voice assistant answers! **Benefits:** - Real-time credential validation (catch errors before you start) - No manual `.env` editing - Automatic ngrok detection and setup - Step-by-step guidance with helpful links ### Option B: Manual setup 1. `cd runtime && npm install` 2. Copy `../references/env.example` to `runtime/.env` and fill in your values. 3. `npm run build && npm start` 4. Point your Twilio voice webhook to `https://<your-domain>/twilio/inbound` 5. Call your Twilio number — your voice assistant answers! ### Option C: Validation-only (existing setup) 1. Copy `references/env.example` to your own `.env` and replace placeholders. 2. Export required variables (`TWILIO_ACCOUNT_SID`, `TWILIO_AUTH_TOKEN`, `TWILIO_CALLER_ID`, `OPENAI_API_KEY`, `OPENAI_PROJECT_ID`, `OPENAI_WEBHOOK_SECRET`, `PUBLIC_BASE_URL`). 3. Run quick setup: `scripts/setup_quickstart.sh` 4. If pr