复制安装命令
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
Local, agent-owned skill stacks for coding agents—from complete catalog access to a reproducible...
用 Codex 或 Claude 安装复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它先审查 Skill 页面再帮你安装。
复制前请先查看来源、License 和安全提示。
来源文件:README.md
Local, agent-owned skill stacks for coding agents—from complete catalog access to a reproducible, reviewable plan.
Current release: V15.6.0. This release includes AAS Core for complete local catalog search, agent-owned selection, manifest validation, planning, and diagnosis. Apply and recovery remain experimental and outside the supported preview path.
Codex or Claude inspects your project and chooses exact skills from the complete local AAS catalog. AAS Core does not rank or recommend them: its read-only compose_stack tool validates the agent-owned selection in memory, and a client or the aas CLI can persist it as aas-stack.json and produce an immutable plan before any target change.
Read the AAS Core preview guide →
Project
-> inspected by Codex or Claude (not by AAS)
-> agent searches and reads the complete local catalog
-> AAS MCP (local stdio, read-only)
-> Codex or Claude chooses exact skill IDs
-> compose_stack validates the selection in memory (read-only)
-> client or AAS CLI persists aas-stack.json and optional evidence
-> AAS CLI validate + immutable plan preview
-> human review (optionally in Workbench)
The reusable SKILL.md playbooks, specialized plugins, bundles, workflows, and direct installers remain important. They are the content, curation, distribution, and compatibility layers around AAS Core—not competing primary products.
This is an independent community project. It is not affiliated with, sponsored by, endorsed by, or authorized by Google. Google, Antigravity, Gemini, and related product names are referenced only to describe compatibility and install targets. The GitHub repository is canonical; the hosted catalog and browser-local Workbench are companion discovery and review surfaces, not a hosted control plane.
The agent composes. You control. AAS keeps the stack reproducible.
AAS Core gives the repository one product model:
search_skills, get_skill, compose_stack, inspect_stack, and diff_stack, and adds read-only export_selection_evidence and inspect_selection_evidence; Core does not rank, recommend, exclude, or hide skills.aas-stack.json and the separate aas-selection-evidence.json sidecar in an artifact-dir; the manifest preserves exact agent-selected IDs, while evidence records factual process trace and the agent-declared capability ledger.aas stack validate checks the proposal, while aas stack plan produces an immutable, per-target plan without applying it.[!IMPORTANT] Structural and identity validity does not certify semantic fit, compatibility, setup correctness, operational safety, or safety to apply.
| Surface | Current status |
|---|---|
| Published package | Current npm release; AAS Core status is agent-first-preview |
| Catalog search and inspection | Supported preview; local and read-only |
| Agent-owned composition | Supported preview; Core validates IDs and structure, not semantic suitability; manifests have a technical maximum of 128 skills |
| Stack validation and plan preview | Supported preview; no target skill changes |
| Workbench | Browser-local review of stack and plan artifacts |
| Selection evidence | Exported and inspected through MCP/CLI contracts; not yet reviewed in Workbench |
| Apply and recovery | Experimental, explicit opt-in, outside the supported safety claim |
| Semantic suitability certification | Not provided |
Read the AAS Core guide for the exact trust boundaries, current preview status, Codex/Claude setup model, and CLI lifecycle.
Direct file search can find candidate prose, but it leaves the result in the conversation. AAS Core adds verified catalog identity, explicit target binding, durable desired state, optional selection evidence, deterministic validation, immutable planning, and dedicated review surfaces. Its value is not choosing better than the coding agent; it is turning the agent's choice into reproducible, inspectable state.
For Codex and Claude, start with the AAS Core guide: configure the local MCP, ask the agent to inspect the project and choose exact IDs from the full catalog, review the proposed aas-stack.json, then run CLI validation and planning. The MCP and validation are read-only. Planning writes only the requested plan artifact; it does not materialize skill payloads or AAS managed state in the target.
Use direct installation when your host does not yet have a native AAS Core adapter, when you already know the exact skill IDs, or when you deliberately prefer manual selection:
# Default: ~/.agents/skills (Antigravity 2.0 global). Use --path for other locations.
npx agentic-awesome-skills
# Antigravity CLI slash commands (agy): ~/.gemini/antigravity-cli/skills/<skill>/SKILL.md
npx agentic-awesome-skills --agy
The npm installer uses a shallow, release-pinned clone by default so first-run installs stay lighter than a full repository history checkout while matching the published npm package version. Use --tag main only when you intentionally want the current repository tip.
GitHub CLI can preview and install one exact skill for Copilot and other supported hosts. Use an exact SKILL.md path in this large, mirrored repository so the selected source is unambiguous and discovery stays fast:
gh skill preview sickn33/agentic-awesome-skills skills/brainstorming/SKILL.md
gh skill install sickn33/agentic-awesome-skills skills/brainstorming/SKILL.md \
--agent github-copilot --scope user --pin v14.2.0
gh skill support is currently a GitHub CLI preview and may change. Install a focused skill or plugin surface for the job; do not use --all unless you intentionally want every discovered canonical and mirrored skill.
test -d ~/.agents/skills && echo "Skills installed in ~/.agents/skills"
Use @brainstorming to plan a SaaS MVP.
Do not install everything first if you already know the work. Start with the focused plugin for your job, then add more only when the task expands.
All specialized plugins are generated as Claude Code and Codex plugin bundles. For Antigravity, use the same SKILL.md content through the installer or supported skills paths.
| Plugin | Skills | Best for |
|---|---|---|
| AAS Web App Builder | 10 | Frontend and full-stack developers shipping modern web apps. |
| AAS Product Design Studio | 10 | Product UI, brand, portfolio, accessibility, and richer visual work. |
| AAS Security Engineer | 10 | Authorized security testing, audit, and hardening. |
| AAS Secure App Builder | 10 | Developers who want security embedded while building features. |
| AAS Documents & Presentations | 9 | Office files, document conversion, decks, and slide workflows. |
| AAS Data Analytics | 10 | Product analytics, SQL, dashboards, and experiments. |
| AAS Agent & MCP Builder | 10 | Agentic apps, MCP tools, RAG systems, and evaluation loops. |
| AAS QA & Test Automation | 10 | Test suites, browser automation, and QA stabilization. |
| AAS DevOps & Cloud | 10 | Infrastructure, deployments, and operational workflows. |
| AAS Accessibility & Inclusive UX | 8 | WCAG audits, automated scans, screen-reader checks, and accessible QA. |
| AAS API Platform Builder | 10 | API design, OpenAPI contracts, auth, security, load tests, and observability. |
| AAS SaaS Launch & Revenue | 10 | SaaS MVPs, pricing, payments, analytics, lifecycle, referrals, and SEO. |
| AAS AI Product & Evaluation Ops | 10 | AI product metrics, evals, tracing, experiments, and model-quality loops. |
Next-wave plugins cover marketing/SEO/growth, automation, observability/incident response, Python APIs, mobile apps, data engineering, privacy/compliance, and localization/international growth.
plugins/.Use the same repository, but install or invoke it in the way your host expects.
| Tool | Install | First Use |
|---|---|---|
| Claude Code | AAS Core local MCP preview, direct install, or Claude plugin marketplace | Ask Claude to choose and compose an AAS stack |
| Cursor | npx agentic-awesome-skills --cursor | @brainstorming help me plan a feature |
| Gemini CLI | npx agentic-awesome-skills --gemini | Use brainstorming to plan a feature |
| Codex CLI | AAS Core local MCP preview or npx agentic-awesome-skills --codex | Ask Codex to choose and compose an AAS stack |
| Autohand Code | npx agentic-awesome-skills --path ~/.autohand/skills or --path .autohand/skills | Use brainstorming to plan a feature |
| Antigravity IDE | npx agentic-awesome-skills --antigravity | Use @brainstorming to plan a feature |
Antigravity CLI (agy) | npx agentic-awesome-skills --agy | /brainstorming help me plan a feature |
| Kiro CLI | npx agentic-awesome-skills --kiro | Use brainstorming to plan a feature |
| Kiro IDE | npx agentic-awesome-skills --path ~/.kiro/skills | Use @brainstorming to plan a feature |
| GitHub Copilot | gh skill install sickn33/agentic-awesome-skills skills/brainstorming/SKILL.md --agent github-copilot --scope user --pin v14.2.0 (preview) | Ask Copilot to use brainstorming to plan a feature |
| OpenCode | npx agentic-awesome-skills --path .agents/skills --category development,backend --risk safe,none | opencode run @brainstorming help me plan a feature |
| AdaL CLI | npx agentic-awesome-skills --path .adal/skills | Use brainstorming to plan a feature |
| Custom path | npx agentic-awesome-skills --path ./my-skills | Depends on your tool |
Use the Codex and Claude guides for the AAS Core MCP preview path. For other hosts—or when you deliberately want manual delivery—use the table's direct install targets, specialized plugins, and host-specific path guidance.
.cursor/skills/ setup, UI-heavy work, and pair-programming flows.Agentic Awesome Skills is the repository behind AAS Core, a local agent-first control plane for recording and validating agent-chosen skill stacks. The read-only AAS MCP gives Codex and Claude complete catalog search and skill inspection; the stack CLI and Workbench make the chosen state reproducible and reviewable. Direct installers, specialized plugins, bundles, and workflows remain supported distribution and discovery surfaces.
The supported path covers complete local catalog search and inspection, agent-owned selection, stack composition and validation, immutable planning, and diagnosis. Transactional apply/recovery safety remains outside the supported claim; apply and recovery are explicitly experimental and disabled without additional opt-in flags.
For AAS Core, follow the preview guide and use only a package release whose notes explicitly state that it includes Core. Release 14.6.0 predates Core; Core-capable releases begin with the 15.x line.
For direct skill distribution, run npx agentic-awesome-skills for the default full-library install. Use a tool-specific flag such as --codex, --cursor, --gemini, --claude, or --antigravity when you want the legacy installer to place skills in the directory your assistant already watches.
For Autohand Code, use the installer with a custom path:
npx agentic-awesome-skills --path ~/.autohand/skills
npx agentic-awesome-skills --path .autohand/skills
AAS specialized plugins are focused, domain-specific distributions of the skill library. They package the most relevant skills for web apps, security, data analytics, documents, DevOps, QA, OSS maintenance, and agent or MCP work so users can start with the right surface instead of activating the entire catalog.
Use the full library if you want the biggest catalog and direct filesystem control. Use a specialized plugin when you want a smaller, marketplace-style distribution for a specific workflow in Claude Code or Codex. For Antigravity, install the matching skills into the supported skills path. The complete explanation lives in Plugins for Claude Code and Codex.
Plugins are installable packaging surfaces, bundles are curated skill recommendations, and workflows are ordered execution playbooks. Start with a plugin when the domain is clear, use bundles to compare adjacent skills, and use workflows when the important part is sequencing planning, coding, testing, auditing, or release work.
Start with Specialized Plugins when you want an installable domain pack. Use Bundles for role-based recommendations, Workflows for ordered execution playbooks, CATALOG.md for the full registry, and the hosted GitHub Pages catalog for searchable browsing.
Core, plugins, bundles, and workflows answer different questions. Codex or Claude selects skills; AAS Core records and validates that selection; plugins package a focused delivery surface; bundles are curated starting points; workflows are ordered playbooks for getting a result.
| Surface | Answers | Use it for |
|---|---|---|
| AAS Core | How do I search the full catalog and preserve the agent's chosen stack? | Agent-owned selection, a pinned aas-stack.json, validation, and immutable plan preview. |
| Specialized plugin | What should I install or activate for this domain? | Focused Claude Code/Codex plugin packaging and Antigravity-compatible skill selection. |
| Bundle | Which skills naturally belong together? | Role-based discovery after a full-library install or when building a custom subset. |
| Workflow | What order should the agent run skills in? | Planning, shipping, auditing, testing, or incident-style execution. |
Use a specialized plugin first when your domain is clear. Use bundles to explore adjacent skills or assemble a custom install. Use workflows when the hard part is sequencing the work.
Bundles are curated groups of recommended skills for a role or goal such as Web Wizard, Security Engineer, or OSS Maintainer.
Essentials + Full-Stack Developer + QA & TestingSecurity Developer + DevOps & Cloud + Observability & MonitoringEssentials + OSS MaintainerIf Antigravity starts hitting context limits with too many active skills, the activation guidance in docs/users/agent-overload-recovery.md can materialize only the bundles or skill ids you want in the live Antigravity directory.
If you use OpenCode or another .agents/skills host, prefer a reduced install up front instead of copying the full library into a context-sensitive runtime. The installer now supports --risk, --category, and --tags so you can keep the installed set narrow.
For a reproducible exact set, pin the package and catalog release and preview the full per-target plan before writing:
npx agentic-awesome-skills@14.3.0 --codex --release 14.3.0 --skills frontend-design,game-development/2d-games --dry-run
Remove --dry-run only after reviewing the install, update, and removal plan. Unknown or ambiguous skill identifiers fail closed, and metadata filters combine with --skills using AND.
The hosted Skill Workbench imports and reviews AAS Core stack manifests and immutable plans in browser memory. It does not access the filesystem, generate an approved plan, or install skills.
Use the root repo as a landing page, then jump into the deeper surface that matches your intent.
skills/tools/lib/aas-v1, exposed through the aas CLI and local aas-mcp serverschemas/aas-v1package.jsonCATALOG.md, skills_index.json, and data/apps/web-app and on GitHub Pagesplugins/docs/assets/, including the hero, social card, logo, and support bannerCATALOG.md.Keep the root README short; use the dedicated docs for recovery and platform-specific guidance.
AAS_ADAPTER_WINDOWS_ACL_FAILED refers to the configuration path checked with PowerShell Get-Acl, not the cache and not icacls; do not approve until preview returns an approval digest..agents/skills installs, prefer a reduced install such as npx agentic-awesome-skills --path .agents/skills --category development,backend --risk safe,none.CODE_OF_CONDUCT.md, and SECURITY.md.This is the stable direct-host discovery manifest for integrations that load individual SKILL.md files. It is not aas-stack.json, the verified AAS Core catalog, or the Core composition contract. Core users should start with the AAS Core guide; custom host integrations can continue using the manifest below.
Host integrations should use:
skills_index.json as the canonical array-format manifest.schemas/skills-index.v1.schema.json for the JSON shape.data/skills_index.json as the compatibility mirror.This keeps discovery stable (id, path, metadata) while ensuring hosts only load SKILL.md for requested @skill-id values.
Support is optional. The project stays free and open-source for everyone.
skills/<skill-name>/SKILL.md.CONTRIBUTING.md.docs/contributors/skill-template.md.npm run validate before opening a PR.CATALOG.md, skills_index.json, or data/*.json.SKILL.md, expect the automated skill-review check on GitHub in addition to the usual validation and security scans.CODE_OF_CONDUCT.md for community expectations and moderation standards.SECURITY.md for security reporting.We stand on the shoulders of giants.
👉 View the Full Attribution Ledger
Source credits stay here for attribution and auditability. Repository contributor credit lives separately in Repo Contributors.
Key source families include:
uizze-ui-research skill and UIZZE MCP-assisted UI research workflows.seo-drift skill - dated SEO baselines and regression detection across rankings, indexation, metadata, directives, schema, and on-page elements (MIT).competitor-analysis skill - Browserbase Search API competitor discovery, research lanes, matrices, screenshots, and HTML reports (MIT).maleksaadi0109/hyprfedora: Source for the fedora-hyprland-installer skill - GPU-aware Fedora Hyprland installation, configuration, verification, repair, and removal workflows (MIT).
merc1305/findMate: Source for the find-complementary-founders skill - private-first own-owner assessment, approved expiring profiles, and evidence-backed human founder matching (MIT).
provencher/codex-skills: Source for the orchestrate skill - focused Codex multi-agent delegation with non-overlapping ownership, coordinator integration, and user-held approval gates (MIT).
0xsarwagya/ontoly: Source for the ontoly-software-graph skill - deterministic TypeScript software graphs, MCP-backed architecture review, request tracing, impact analysis, and dependency analysis (MIT).
amElnagdy/guard-skills — Code Quality & Testing Guard Skills (by amElnagdy)
cloudflare/security-audit-skill — Cloudflare Web Security Audit Skill (by Cloudflare)
gooseworks-ai/goose-skills: Source for the competitor-ad-intelligence and ad-campaign-analyzer skills - evidence-labeled public ad research plus uncertainty-aware campaign diagnostics and bounded budget tests (MIT).
supernovae-st/nika-agents: Official upstream source for the nika skill and its deterministic, budget-aware AI workflow runner (MIT skill content; AGPL-3.0 engine).
atdy/maoxuan-product-agent: Source for the product-decision-agent skill - Chinese-first product judgment across prioritization, growth, operations, data, delivery, and cross-functional collaboration, with 36 tested scenarios (MIT).
hafiz-actyte/idea-autopsy: Source for the idea-autopsy skill - business-idea validation that hunts the one sentence that kills an idea before you build: kill-list check, five hard filters, free-AI one-prompt test, and live ad-market verification (MIT).
cruisekkk/trading-ledger: Source for the trading-ledger skill - decision-quality trade journaling that captures entry thesis, plan, and emotion into the user's own Notion database (MIT).
cruisekkk/time-ledger: Source for the time-ledger skill - natural-language time tracking parsed into the user's own Notion database with ask-instead-of-guessing reconciliation (MIT).
mattpocock/skills: Source for 17 Matt Pocock workflow skills - codebase design, TDD, bug diagnosis, triage, PRDs, issues, prototyping, handoff, teaching, and skill-writing guidance (MIT).
emilkowalski/skills: Source for Emil Kowalski design engineering skills - UI polish, motion review, animation standards, component craft, and high-taste frontend guidance (MIT).
chaunsin/agent-skills: Source for the pre-release-review and drizzle-migration-conflict skills - deploy-readiness audits and Drizzle Kit migration-conflict workflows (Apache-2.0).
addyosmani/agent-skills: Source for the browser-testing-with-devtools skill - Chrome DevTools MCP browser verification, profiling, network inspection, and frontend debugging guidance (MIT).
stareezy-1/frontend-architecture-skill: Source for the frontend-lighthouse skill - portable Lighthouse CI Core Web Vitals gates, performance budgets, and GitHub Actions reporting (MIT).
bin1874/before-you-build-skill: Source for the before-you-build skill - pre-coding product risk review across demand, alternatives, switching costs, channels, and validation steps (MIT).
sparklingneuronics/sparkling-skills: Source for the dispatch skill - multi-CLI delegation from Claude Code to Codex, Antigravity, and Gemini agents (MIT).
takeaseatventure/sql-sentinel: Source for the sql-sentinel skill - SQL warehouse cost and performance anti-pattern audits across BigQuery, Snowflake, Redshift, and Postgres (MIT).
takeaseatventure/devops-skills: Source for the cron-doctor skill - cron expression diagnosis, validation, trap detection, and zero-dependency schedule analysis tooling (MIT).
drogers0/gh-image: Source for the gh-image skill - GitHub CLI image uploads that return canonical user-attachments embed URLs for PRs, issues, comments, and README screenshots (MIT).
Genefold/arrowspace-skills: Source for the arrowspace skill - spectral vector search using graph Laplacian eigenstructure for structurally aware retrieval (Apache-2.0).
yaojingang/yao-meta-skill: Source for the yao-meta-skill skill - governed skill creation, refactoring, evaluation, packaging, review, and distribution workflows (MIT).
connerkward/ckw-design-skill: Source for the ckw-design skill - frontend design direction, design-system guidance, visual philosophy, spatial checks, usability review, and production UI polish workflows (MIT).
connerkward/deterministic-design-skill: Source for the deterministic-design skill - rendered UI layout and usability audits using deterministic measurement plus vision-judged review loops (MIT).
connerkward/lookdev-auto-skill: Source for the lookdev-auto skill - automated visual tuning loops where a vision or video model rates rendered variants and suggests improvements (MIT).
connerkward/lookdev-studio-skill: Source for the lookdev skill - human-in-the-loop visual and prose tuning through rendered variants, sliders, swatches, inline edits, and selection-driven refinement (MIT).
connerkward/macos-screen-recorder-system-audio: Source for the macos-screen-recorder skill - macOS ScreenCaptureKit recording with system audio, CLI workflows, permission handling, and export guidance (MIT).
connerkward/mcp-apple-notes: Source for the apple-notes-search skill - semantic and keyword search, related-note discovery, bridge finding, entity threads, and cited synthesis across local Apple Notes via MCP (MIT).
connerkward/screenstudio-alternative-skill: Source for the screenstudio-alt skill - open-source screen recording polish with auto-zoom, idle speed-up, cursor treatment, captions, and vertical export workflows (MIT).
connerkward/web-media-getter-skill: Source for the web-media-getter skill - unified search across free image, video, and GIF APIs with license-aware media selection guidance (MIT).
xi-kari/crossframe-skill: Source for the CrossFrame Skill Suite - Chinese-canonical structural diagnosis, essay drafting, review, and companion workflows across relationships, organizations, institutions, public issues, and research notes (MIT).
qinghui316/ecl-harness-engineer: Source for the ecl-harness-engineer skill - ECL Agent Harness infrastructure for AI coding workflows, repository guidance, change tracking, lint checks, CI gates, and handoff docs (MIT).
baskduf/FableCodex: Source for the codex-fable5 skill - Codex-native Fable-inspired workflow discipline for evidence-first implementation, goal tracking, review findings, verification gates, and prompt adaptation (AGPL-3.0-or-later).
Suraj1235/open-dynamic-workflows: Source for the open-dynamic-workflows skill - open-source dynamic multi-agent workflow engine that plans, orchestrates, and adversarially verifies parallel AI coding agents across OpenCode, Codex, Antigravity, and VS Code (MIT).
multica-ai/andrej-karpathy-skills: Source for the andrej-karpathy skill - English Karpathy-inspired LLM coding guidelines for simplicity, surgical changes, assumption surfacing, and verifiable success criteria (MIT).
mskadu/opencode-agent-skills: Source for opencode behavior, permission, skill-suggestion, and smart Git automation skills.
adelaidasofia/ai-brain-starter: Source for the ingest-youtube skill - YouTube transcript ingestion into markdown vaults with yt-dlp metadata, VTT cleanup, and capture-seed stubs (MIT).
JDDavenport/context-kit: Source reference for the context-kit skill - local-first Personal Context Artifact setup, installer review, and private context hygiene for Claude Code and adjacent agent workflows.
JunsW/feature-track: Source for the feature-tracking skill - lightweight repository-native feature memory for current status, source-of-truth documents, decisions, risks, and cross-session handoff (MIT).
JularDepick/user-thoughts.SKILL: Source for the user-thoughts skill - persistent project idea repository workflows for capturing decisions, tech stack notes, UI/UX rationale, and MDBASE-backed project memory (MIT).
TheaDust/lore: Source for the lore skill - Markdown-only, zero-dependency long-term project memory for AI coding agents, with monorepo scopes, two-section platform mirrors, and stdlib Python helpers (MIT).
ZeroPointRepo/youtube-skills: Source for the youtube-full skill - TranscriptAPI-backed YouTube transcripts, search, channel browsing, playlists, and cloud-safe video research workflows (MIT).
Antheurus/anywrite: Source for the anywrite skill - low-context CLI access to Anytype's local API for objects, properties, files, search, chat, and other workspace operations (MIT).
Antheurus/sshepherd: Source for the sshepherd skill - credential-isolated SSH operations, service control, logs, configuration changes, Postgres introspection, and declarative deploys through preconfigured aliases (MIT).
ejentum/ejentum-mcp: Source for the ejentum-reasoning-harness skill - MCP cognitive harness modes for reasoning, code review, anti-deception checks, and memory-drift analysis (MIT).
luoyuctl/agenttrace: Source for the agenttrace-session-audit skill - local AI coding-agent session audits for cost spikes, tool failures, latency gaps, anomalies, health gates, and session diffs (MIT).
ohad6k/ditto: Source for the ditto skill - mines local coding-agent sessions into private, evidence-backed work, design, and writing profiles with dated source receipts (MIT).
Necmttn/ax: Source for the ax-extract-workflow skill - reconstruct workflow behind past coding-agent artifacts using local ax sessions, commits, skills, and tool traces (AGPL-3.0-only).
Hanyuyuan6/remote-gpu-trainer: Source for the remote-gpu-trainer skill - rented and remote GPU job orchestration, monitoring, teardown safety, spot resilience, and DL-debug workflows (MIT).
mturac/recsys-pipeline-architect: Source for the recsys-pipeline-architect skill - recommendation, ranking, and feed pipeline architecture using Source, Hydrator, Filter, Scorer, Selector, and SideEffect stages (MIT).
aomi-labs/skills: Source for the aomi-transact skill — natural-language driver for the Aomi CLI with account-abstraction-first execution and simulate-then-sign across 25+ DeFi apps (MIT).
mycelos-ai/bumblebee-skill: Source for the bumblebee skill - multi-agent implementation workflows with repeatable planning, coding, review, and verification loops (MIT).
demo112/yunqu-ai-skills: Source for WeChat official account, Xiaohongshu content strategy, and MCP tool development skills for Chinese-language platform workflows (MIT).
tellmefrankie/news-engine: Source for the news-sentiment-engine skill - news ingestion, sentiment analysis, and market/news intelligence workflows (MIT).
Kench001/antigravity-awesome-skills: Source for the recursive-context-pruning-token-budgeting skill - context pruning, token budgeting, and long-session compression guidance (MIT).
rich-elicitation: Source for the rich-elicitation skill - asks clarifying questions in multiple rounds before starting ambiguous tasks.
CodeShuX/mockhunter: Source for the mock-hunter skill - Playwright-based live-page audits that classify visible values as real, mock, LLM-generated, hardcoded, broken, or unknown (MIT).
commitshow/production-audit: Source for the production-audit skill - shipped-app readiness auditing across deployment health, RLS, webhooks, secrets exposure, grants, Stripe idempotency, and mobile UX.
MohamedAbdallah-14/unslop: Source for the unslop skill - deterministic and LLM-assisted cleanup for AI-generated prose across CLI and agent tool workflows.
monte-carlo-data/mc-agent-toolkit: Monte Carlo data observability skills — table health checks, change impact assessment, monitor creation, push ingestion, and SQL validation notebooks for dbt changes.
openclaw/skills: Source for the daily-gift skill - relationship-aware creative gift generation with editorial judgment, concept selection, and multi-format rendering.
umutbozdag/agent-skills-manager: Source for the manage-skills skill - cross-tool skill discovery, creation, editing, toggling, copying, moving, and deletion workflows across major agent coding tools.
pumanitro/global-chat: Source for the Global Chat Agent Discovery skill - cross-protocol discovery of MCP servers and AI agents across multiple registries.
bitjaru/styleseed: StyleSeed Toss UI and UX skill collection - setup wizard, page and pattern generation, design-token management, accessibility review, UX audits, feedback states, and microcopy guidance for professional mobile-first UI.
yikuansun/PhotopeaAPI: Source for the photopea-embedded-editor skill - Photopea embedding, host-page messaging, file I/O, scripting, and export workflows for web apps (MIT).
milkomida77/guardian-agent-prompts: Source for the Multi-Agent Task Orchestrator skill - production-tested delegation patterns, anti-duplication, and quality gates for coordinated agent work.
Elkidogz/technical-change-skill: Source for the Technical Change Tracker skill - structured JSON change records, session handoff, and accessible HTML dashboards for coding continuity.
vipin-si/article-illustrations: Source for the article-illustrations skill - Grav-style hand-drawn article illustrations with whiteboard sketches, sparse annotations, and visual metaphor QA guidance (MIT).
274326424/video-content-extractor: Source for the video-content-extractor skill - FFmpeg and Tesseract OCR workflows for extracting timestamped screen text and structured Markdown reports from MP4 videos (MIT).
metrox-eth/quit-sponsor: Source for the quit-sponsor skill - evidence-based quit-smoking sponsorship for agents with persistent memory: 44-source cited protocols, sponsor decision tree, three-clause contract, wave protocol, slip attribution coaching, and a timestamped logbook (MIT).
rmyndharis/antigravity-skills: For the massive contribution of 300+ Enterprise skills and the catalog generation logic.
amartelr/antigravity-workspace-manager: Workspace Manager CLI companion to dynamically auto-provision subsets of skills across local development environments.
obra/superpowers: The original "Superpowers" by Jesse Vincent.
guanyang/antigravity-skills: Core Antigravity extensions.
diet103/claude-code-infrastructure-showcase: Infrastructure and Backend/Frontend Guidelines.
ChrisWiles/claude-code-showcase: React UI patterns and Design Systems.
travisvn/awesome-claude-skills: Loki Mode and Playwright integration.
Dimillian/Skills: Curated Codex skills focused on Apple platforms, GitHub workflows, refactoring, and performance (MIT).
zebbern/claude-code-guide: Comprehensive Security suite & Guide (Source for ~60 new skills).
morsechimwai/lemmaly: Source for the lemmaly, mathguard, invariant-guard, and complexity-cuts skills — algorithm-first discipline layer that forces AI coding agents to state Big-O, name the data structure, prove termination, and pick the right algorithm before writing the loop. Ships a deterministic CI scanner with 59 rules across 11 languages (Apache-2.0).
alirezarezvani/claude-skills: Senior Engineering and PM toolkit.
karanb192/awesome-claude-skills: A massive list of verified skills for Claude Code.
VoltAgent/awesome-agent-skills: Curated collection of 1000+ official and community agent skills from leading development teams (MIT).
zircote/.claude: Archived Claude Code dotfiles/config repo with a Shopify development skill reference.
vibeforge1111/vibeship-spawner-skills: AI agents, integrations, maker tools, and other production-grade skill packs.
coreyhaines31/marketingskills: Marketing skills for CRO, copywriting, SEO, paid ads, and growth (23 skills, MIT).
iradoweck/antigravity-awesome-skills: Source for the GeminiIgnore FinOps skill - .geminiignore setup patterns for context-window efficiency and token cost reduction.
heyneuron/flowhunt-skill: Source for the FlowHunt automation discovery audit skill - workflow intake, tool-by-tool audit, and opportunity prioritization for productivity automation.
Intelligent-Internet/II-Commons-Skills: Source for the II-Commons research skill - deterministic retrieval across arXiv, PubMed/PMC, and supported US policy corpora.
AgriciDaniel/claude-seo: SEO workflow collection covering technical SEO, hreflang, sitemap, geo, schema, and programmatic SEO patterns.
Leonxlnx/taste-skill: Frontend design taste skill collection covering premium UI generation, redesign audits, GSAP motion, Stitch design systems, minimalist and brutalist visual modes, and full-output enforcement.
2slides/slides-generation-2slides-skills: Source for the 2slides-ppt-generator skill - AI presentation generation, PDF deck creation, narration, theme search, and slide export workflows using the 2slides API (MIT).
ch040602/mdpr-skill: Source for the mdpr-skill skill - Codex-assisted MDPR presentation review, semantic hints, visual checks, theme candidates, and deterministic renderer boundaries (MIT).
whoisabhishekadhikari/lovable-cleanup: Source for the lovable-cleanup skill — audits and strips Lovable scaffolding from Vite + React projects.
sarveshtalele/linkedin-content-skill: Source for the linkedin-content-generator skill - LinkedIn post, carousel, newsletter, and content-calendar generation workflows with local feedback memory (MIT).
mrprewsh/seo-aeo-engine: SEO/AEO content-growth system covering keyword research, content clustering, landing pages, blog structure, schema, internal linking, and audit workflows.
jonathimer/devmarketing-skills: Developer marketing skills — HN strategy, technical tutorials, docs-as-marketing, Reddit engagement, developer onboarding, and more (33 skills, MIT).
kepano/obsidian-skills: Obsidian-focused skills for markdown, Bases, JSON Canvas, CLI workflows, and content cleanup.
lewiswigmore/agent-skills: Source for the vscode-extension-guide-en skill - VS Code extension development workflows, packaging, Marketplace publishing, TreeView, and webview patterns.
mbenhard/unship: Source for the unship skill - local workflow for comparing AI-generated UI variants in a real app, then keeping one option and cleaning up temporary alternatives (MIT).
Silverov/yandex-direct-skill: Yandex Direct (API v5) advertising audit skill — 55 automated checks, A-F scoring, campaign/ad/keyword analysis for the Russian PPC market (MIT).
vudovn/antigravity-kit: AI Agent templates with Skills, Agents, and Workflows (33 skills, MIT).
affaan-m/everything-claude-code: Large Claude Code configuration and workflow collection from an Anthropic hackathon winner (MIT).
whatiskadudoing/fp-ts-skills: Practical fp-ts skills for TypeScript – fp-ts-pragmatic, fp-ts-react, fp-ts-errors (v4.4.0).
warmskull/idea-darwin: Darwinian idea-evolution workflow for structured ideation rounds, mutation, crossbreeding, critique, and lineage tracking.
Slashworks-biz/idea-os: Source for the idea-os skill - five-phase pipeline (triage -> clarify -> research -> PRD -> plan) that turns raw ideas into a build-ready PRD and execution plan.
webzler/agentMemory: Source for the agent-memory-mcp skill.
rafsilva85/credit-optimizer-v5: Manus AI credit optimizer skill — intelligent model routing, context compression, and smart testing. Saves 30-75% on credits with zero quality loss. Audited across 53 scenarios.
ndesv21/socialclaw: Source for the SocialClaw social media publishing skill - campaign scheduling and publishing across major social platforms with a single workspace API key.
taisly/agent: Source for the Taisly Social Media Posting skill - Codex plugin, CLI, SDK, and official MCP server for publishing approved short-form videos to TikTok, Instagram Reels, YouTube Shorts, X, and Facebook (MIT).
nickdesi/ZipAI: Source for the zipai-optimizer skill — ultra-dense prompt caching, semantic log pruning, AST-based code viewing, minified JSON payloads, and telegraphic output constraints for maximum token savings.
Wittlesus/cursorrules-pro: Professional .cursorrules configurations for 8 frameworks - Next.js, React, Python, Go, Rust, and more. Works with Cursor, Claude Code, and Windsurf.
nedcodes-ok/rule-porter: Bidirectional rule converter between Cursor (.mdc), Claude Code (CLAUDE.md), GitHub Copilot, Windsurf, and legacy .cursorrules formats. Zero dependencies.
SSOJet/skills: Production-ready SSOJet skills and integration guides for popular frameworks and platforms — Node.js, Next.js, React, Java, .NET Core, Go, iOS, Android, and more. Works seamlessly with SSOJet SAML, OIDC, and enterprise SSO flows. Works with Cursor, Antigravity, Claude Code, and Windsurf.
timwukp/agent-skills-best-practice: Source for the fsi-compliance-checker skill - financial-services compliance triage for PCI-DSS v4.0 and MAS TRM control mapping (MIT).
MojoAuth/skills: Production-ready MojoAuth guides and examples for popular frameworks like Node.js, Next.js, React, Java, .NET Core, Go, iOS, and Android.
mishanefedov/skill-issue: Source for the skill-issue activation-audit skill for grading SKILL.md trigger metadata, prompt matching, and collision clusters (MIT).
wede-wx/atlas: Source for the atlas-contract and atlas-ledger goal-integrity skills - contract, phase-check, final-audit, and project-ledger guardrails for long-running agent work (MIT).
yehudalevy-collab/polis-protocol: Source for the polis-protocol multi-agent coordination skill with capability cards, routing history, and protocol amendments (MIT).
connerlambden/helium-mcp: Source for the helium-mcp skill — MCP server for news intelligence, media bias analysis, market data, options pricing, and semantic meme search.
shmlkv/dna-claude-analysis: Personal genome analysis toolkit — Python scripts analyzing raw DNA data across 17 categories (health risks, ancestry, pharmacogenomics, nutrition, psychology, etc.) with terminal-style single-page HTML visualization.
AlmogBaku/debug-skill: Interactive debugger skill for AI agents — breakpoints, stepping, variable inspection, and stack traces via the dap CLI. Supports Python, Go, Node.js/TypeScript, Rust, and C/C++.
sendblue-api/sendblue-cli: Source for the sendblue-cli, sendblue-api, and sendblue-notify skills — iMessage, SMS, and RCS messaging via Sendblue's CLI and HTTP API, plus "text me when X finishes" notification patterns for Claude Code hooks and /loop / /schedule jobs (MIT).
njerschow/textme: Source for the textme skill — local daemon bridging inbound iMessages (via Sendblue) to a Claude Code session on the user's machine, with voice notes, image input, code execution, and a phone-number whitelist (MIT).
aptratcn/skill-audit: Pre-install security audit skill for detecting malicious, overprivileged, or suspicious third-party agent skills before installation (MIT).
uberSKILLS: Design, test, and deploy Claude Code Agent Skills through a visual, AI-assisted workflow.
christopherlhammer11-ai/tool-use-guardian: Source for the Tool Use Guardian skill — tool-call reliability wrapper with retries, recovery, and failure classification.
christopherlhammer11-ai/recallmax: Source for the RecallMax skill — long-context memory, summarization, and conversation compression for agents.
tsilverberg/webapp-uat: Full browser UAT skill — Playwright testing with console/network error capture, WCAG 2.2 AA accessibility checks, i18n validation, responsive testing, and P0-P3 bug triage. Read-only by default, works with React, Vue, Angular, Ionic, Next.js.
Wolfe-Jam/faf-skills: AI-context and project DNA skills — .faf format management, AI-readiness scoring, bi-sync, MCP server building, and championship-grade testing (7 skills, MIT).
fullstackcrew-alpha/privacy-mask: Local image privacy masking for AI coding agents. Detects and redacts PII, API keys, and secrets in screenshots via OCR + 47 regex rules. Claude Code hook integration for automatic masking. Supports Tesseract and RapidOCR. 100% offline (MIT).
AvdLee/SwiftUI-Agent-Skill: SwiftUI best-practices skill for agent workflows (MIT).
CloudAI-X/threejs-skills: Three.js-focused skill collection for agent-assisted 3D web work.
K-Dense-AI/claude-scientific-skills: Scientific, research, engineering, finance, and writing skill suite (MIT).
NotMyself/claude-win11-speckit-update-skill: Archived Speckit update skill for Claude Code (MIT).
SHADOWPR0/beautiful_prose: Writing-quality skill for improving prose and reducing generic output.
SHADOWPR0/security-bluebook-builder: Security documentation/buildbook skill for agent workflows.
SeanZoR/claude-speed-reader: RSVP-style speed-reading helper for Claude responses (MIT).
Shpigford/skills: General-purpose agent skills for common development tasks (MIT).
ZhangHanDong/makepad-skills: Makepad app-development skills and references (MIT).
czlonkowski/n8n-skills: n8n workflow-building skills for Claude Code (MIT).
frmoretto/clarity-gate: Verification protocol for marking uncertainty and reducing hallucinated certainty in LLM-facing docs.
fruitwyatt/puzzle-activity-planner: Puzzle activity-planning skill for classrooms, parties, and events with generator-link workflows.
gokapso/agent-skills: Kapso/WhatsApp-oriented agent skills.
huifer/WellAlly-health: Healthcare assistant project cited in release history as a source for health-focused agent capabilities (MIT).
hyhmrright/brooks-lint: AI code-review skill grounded in classic software engineering books for design-smell, coupling, and architecture review.
hyhmrright/logic-lens: AI code-review skill for formal logic inspection across bugs, race conditions, security risks, and API contract issues.
ibelick/ui-skills: UI-polish skills for improving interfaces built by agents (MIT).
jackjin1997/ClawForge: Resource hub of skills, MCP servers, and agent tooling for OpenClaw.
jthack/ffuf_claude_skill: FFUF skill for web fuzzing workflows in Claude.
kubestellar/console: KubeStellar Console multi-cluster Kubernetes dashboard with kc-agent MCP integration, AI-assisted operations, and built-in agent skills.
MetcalfSolutions/Satori: Clinically informed wisdom companion blending psychology frameworks and wisdom traditions into a structured reflective partner.
muratcankoylan/Agent-Skills-for-Context-Engineering: Context-engineering, multi-agent, and production agent-system skill collection (MIT).
robzolkos/skill-rails-upgrade: Rails upgrade skill for agent-assisted migrations.
sanjay3290/ai-skills: Apache-licensed collection of agent skills for AI coding assistants.
scarletkc/vexor: Semantic search engine for files and code, referenced in release history.
sstklen/infinite-gratitude: Multi-agent research skill from the AI Dojo series (MIT).
TerminallyLazy/Tree-Ring-Memory: Source for the tree-ring-memory skill — local-first memory lifecycle guidance for recall, evidence, audit, forgetting, consolidation, and privacy-safe agent memory operations (Apache-2.0).
wrsmith108/linear-claude-skill: Linear issue/project/team management skill with MCP and GraphQL workflows (MIT).
wrsmith108/varlock-claude-skill: Secure environment-variable management skill for Claude Code (MIT).
xwmxcz/papers-skill: Source for the papers-skill skill — academic research workflows over Semantic Scholar (200M+ papers) and arXiv, with citation lookup, arXiv PDF download, and PyMuPDF text extraction via a bundled Python CLI (MIT).
zenlee123/routerbase-agent-skills: Source for the routerbase-model-gateway skill — OpenAI-compatible RouterBase model gateway setup, model-routing plans, server-side credential handling, and fallback validation patterns (MIT-0).
zarazhangrui/frontend-slides: Frontend slide-creation skills for web-based presentations (MIT).
zxkane/aws-skills: AWS-focused Claude agent skills (MIT).
UrRhb/agentflow: Kanban-driven AI development pipeline for orchestrating multi-worker Claude Code workflows with deterministic quality gates, adversarial review, cost tracking, and crash-proof execution (MIT).
AgentPhone-AI/skills: AgentPhone plugin for Claude Code — API-first telephony workflows for AI agents, including phone calls, SMS, phone-number management, voice-agent setup, streaming webhooks, and tool-calling patterns.
uxuiprinciples/agent-skills: Research-backed UX/UI agent skills for auditing interfaces against 168 principles, detecting antipatterns, and injecting UX context into AI coding sessions.
voidborne-d/humanize-chinese: Chinese AI-text detection and humanization toolkit for scoring, rewriting, academic AIGC reduction, and style conversion workflows.
voidborne-d/lambda-lang: Agent-to-agent coordination language with compact atoms for multi-agent messaging, orchestration, and structured coordination logs.
davidondrej/skills: Source for David Ondrej agent workflow skills across orchestration, research, setup, skill authoring, and documentation workflows (MIT).
LambdaTest/agent-skills: Production-grade agent skills for test automation — 46 skills covering E2E, unit, mobile, BDD, visual, and cloud testing across 15+ languages (MIT).
flyingsquirrel0419/squirrel-skill: Full-cycle software development skill — plans, builds, tests, lints, fixes bugs, and writes production-grade docs. Auto-detects project state and adapts its 8-phase pipeline. Works on 9 AI coding agent platforms (Apache 2.0).
CodeShuX/tokenwise: Source for the tokenwise skill — measurement-driven Haiku/Sonnet/Opus router for Claude Code with per-task NDJSON logging, A/B test mode, and verified $-saved reports (MIT).
anthony-chaudhary/dos-kernel: Source for the dos-verify-done-claims skill — gates an agent's "done / shipped / fixed" claim on git ground truth (ancestry + the commit's own diff) via the deterministic DOS kernel's read-only dos verify / dos commit-audit verbs (MIT).
maxbaluev/accreted-intelligence: Source for the accint-solve skill — routes coding-agent work through AccInt's MCP memory loop with retrieval, continuation frames, commitments, and outcome feedback (Apache 2.0).
sergebulaev/linkedin-skills: Source for the linkedin-post-writer skill - LinkedIn post drafting from 16 tested hook formulas mapped to engagement goals, with 2026 formatting rules and an AI-tell scrub pass, from a 10-skill LinkedIn bundle for Claude Code and Codex (MIT).
Sharrmavishal/operating-kit: Source for the pre-ship-gate skill - a pre-deploy gate that walks the silent failure modes (migrations, feature flags, stale build cache, release pointer, staged rollout, missing env) and verifies the live revision instead of trusting deploy output (MIT).
Ducksss/codex-profiles: Source for the codex-profiles skill - Codex CLI/Desktop profile isolation around separate CODEX_HOME directories, diagnostics, and account-context boundaries without copying auth tokens (MIT).
kimtth/agent-pptify-kit: Source for the pptx-deck-creation skill - editable, production-ready PowerPoint deck creation with narrative planning, explicit layouts, asset guidance, and quality checks (MIT).
Optim-Agent/optim-agent: Source for the optim-agent skill - agent-guided optimization of configurable systems against measurable objectives (MIT).
thecsdoctor/brendangregg-use-tsa-skill: Source for the brendangregg-use-tsa skill - methodical performance troubleshooting and root-cause analysis with Brendan Gregg's USE and TSA methods, plus evidence-backed RCA and postmortem reporting (MIT).
Made with contrib.rocks. (Image may be cached; view live contributors on GitHub.)
We officially thank the following contributors for their help in making this repository awesome!
If Agentic Awesome Skills has been useful, consider ⭐ starring the repo!
Original code and tooling are licensed under the MIT License. See LICENSE.
Original documentation and other non-code written content are licensed under CC BY 4.0, unless a more specific upstream notice says otherwise. See docs/sources/sources.md for attributions and third-party license details.
name: agentphone
version: 0.3.0
description: Build AI phone agents with AgentPhone API. Use when the user wants to make phone calls, send/receive SMS, manage phone numbers, create voice agents, set up webhooks, or check usage — anything related to telephony, phone numbers, or voice AI.
risk: critical
source: community
homepage: https://agentphone.to
docs: https://docs.agentphone.to
metadata: {"api_base": "https://api.agentphone.to/v1"}AgentPhone is an API-first telephony platform for AI agents. Give your agents phone numbers, voice calls, and SMS — all managed through a simple API.
Base URL: https://api.agentphone.to/v1
Docs: docs.agentphone.to
Console: agentphone.to
AgentPhone lets you create AI agents that can make and receive phone calls and SMS messages. Here's the full lifecycle:
Account
└── Agent (AI persona — owns numbers, handles calls/SMS)
├── Phone Number (attached to agent)
│ ├── Call (inbound/outbound voice)
│ │ └── Transcript (call recording text)
│ └── Message (SMS)
│ └── Conversation (threaded SMS exchange)
└── Webhook (per-agent event delivery)
Webhook (project-level event delivery)
Agents operate in one of two modes:
hosted — The built-in LLM handles the conversation autonomously using the agent's system_prompt. No server required. This is the easiest way to get started — just set a prompt and make a call.webhook (default) — Inbound call/SMS events are forwarded to your webhook URL for custom handling. Use this when you need full control over the conversation logic.Sign up at agentphone.to. Your API key will look like sk_live_abc123....
curl -X POST https://api.agentphone.to/v1/agents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Support Bot",
"description": "Handles customer support calls",
"voiceMode": "hosted",
"systemPrompt": "You are a friendly customer support agent. Help the caller with their questions.",
"beginMessage": "Hi there! How can I help you today?"
}'
Response:
{
"id": "agent_abc123",
"name": "Support Bot",
"description": "Handles customer support calls",
"voiceMode": "hosted",
"systemPrompt": "You are a friendly customer support agent...",
"beginMessage": "Hi there! How can I help you today?",
"voice": "11labs-Brian",
"phoneNumbers": [],
"createdAt": "2025-01-15T10:30:00.000Z"
}
curl -X POST https://api.agentphone.to/v1/numbers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"country": "US",
"areaCode": "415",
"agentId": "agent_abc123"
}'
Response:
{
"id": "pn_xyz789",
"phoneNumber": "+14155551234",
"country": "US",
"status": "active",
"agentId": "agent_abc123",
"createdAt": "2025-01-15T10:31:00.000Z"
}
Your agent now has a phone number. It can receive inbound calls immediately.
curl -X POST https://api.agentphone.to/v1/calls \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agentId": "agent_abc123",
"toNumber": "+14155559999",
"systemPrompt": "Schedule a dentist appointment for next Tuesday at 2pm.",
"initialGreeting": "Hi, I am calling to schedule an appointment."
}'
Response:
{
"id": "call_def456",
"agentId": "agent_abc123",
"fromNumber": "+14155551234",
"toNumber": "+14155559999",
"direction": "outbound",
"status": "in-progress",
"startedAt": "2025-01-15T10:32:00.000Z"
}
The AI will hold the entire conversation autonomously based on your prompt. Check the transcript after the call ends.
curl https://api.agentphone.to/v1/calls/call_def456/transcript \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"data": [
{
"id": "tx_001",
"transcript": "Hi, I am calling to schedule an appointment.",
"response": null,
"confidence": 0.95,
"createdAt": "2025-01-15T10:32:01.000Z"
},
{
"id": "tx_002",
"transcript": "Sure, what day works for you?",
"response": "Next Tuesday at 2pm would be great.",
"confidence": 0.92,
"createdAt": "2025-01-15T10:32:05.000Z"
}
]
}
These rules are important. Read them carefully.
api.agentphone.tohttps://api.agentphone.to/v1/*Always use E.164 format for phone numbers: + followed by country code and number (e.g., +14155551234). If a user gives a number without a country code, assume US (+1).
account_overview first when the user wants to see their current statelist_voices to show available voices before creating/updating agents with voice settingsAll API requests require your API key in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Get your API key at agentphone.to.
Get a complete snapshot of your account: agents, phone numbers, webhook status, and usage limits. Call this first to orient yourself.
curl https://api.agentphone.to/v1/usage \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"plan": { "name": "free", "numberLimit": 1 },
"numbers": { "used": 1, "limit": 1 },
"stats": {
"messagesLast30d": 42,
"callsLast30d": 15,
"minutesLast30d": 67
}
}
curl -X POST https://api.agentphone.to/v1/agents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Sales Agent",
"description": "Handles outbound sales calls",
"voiceMode": "hosted",
"systemPrompt": "You are a professional sales agent. Be persuasive but not pushy.",
"beginMessage": "Hi! Thanks for taking my call.",
"voice": "alloy"
}'
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Agent name |
description | string | No | What this agent does |
voiceMode | "webhook" | "hosted" | No | Call handling mode (default: webhook) |
systemPrompt | string | No | LLM system prompt (required for hosted mode) |
beginMessage | string | No | Auto-greeting spoken when a call connects |
voice | string | No | Voice ID (use list_voices to see options) |
Response:
{
"id": "agent_abc123",
"name": "Sales Agent",
"description": "Handles outbound sales calls",
"voiceMode": "hosted",
"systemPrompt": "You are a professional sales agent...",
"beginMessage": "Hi! Thanks for taking my call.",
"voice": "alloy",
"phoneNumbers": [],
"createdAt": "2025-01-15T10:30:00.000Z"
}
curl "https://api.agentphone.to/v1/agents?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | No | 20 | Max results (1-100) |
curl https://api.agentphone.to/v1/agents/AGENT_ID \
-H "Authorization: Bearer YOUR_API_KEY"
Returns the agent with its phone numbers and voice configuration.
Only provided fields are updated — everything else stays the same.
curl -X PATCH https://api.agentphone.to/v1/agents/AGENT_ID \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Updated Bot",
"systemPrompt": "You are a customer support specialist. Be empathetic and helpful.",
"voice": "nova"
}'
| Field | Type | Required | Description |
|---|---|---|---|
name | string | No | New name |
description | string | No | New description |
voiceMode | "webhook" | "hosted" | No | Call handling mode |
systemPrompt | string | No | New system prompt |
beginMessage | string | No | New auto-greeting |
voice | string | No | New voice ID |
Cannot be undone. Phone numbers attached to the agent are kept but unassigned.
curl -X DELETE https://api.agentphone.to/v1/agents/AGENT_ID \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"success": true,
"message": "Agent deleted",
"unassignedNumbers": ["pn_xyz789"]
}
curl -X POST https://api.agentphone.to/v1/agents/AGENT_ID/numbers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"numberId": "pn_xyz789"}'
| Field | Type | Required | Description |
|---|---|---|---|
numberId | string | Yes | Phone number ID from list_numbers |
curl -X DELETE https://api.agentphone.to/v1/agents/AGENT_ID/numbers/NUMBER_ID \
-H "Authorization: Bearer YOUR_API_KEY"
Get SMS conversations for a specific agent.
curl "https://api.agentphone.to/v1/agents/AGENT_ID/conversations?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
Get calls for a specific agent.
curl "https://api.agentphone.to/v1/agents/AGENT_ID/calls?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
See all available voice options for agents. Use the voice_id when creating or updating an agent.
curl https://api.agentphone.to/v1/agents/voices \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"data": [
{ "voiceId": "11labs-Brian", "name": "Brian", "provider": "elevenlabs", "gender": "male" },
{ "voiceId": "alloy", "name": "Alloy", "provider": "openai", "gender": "neutral" },
{ "voiceId": "nova", "name": "Nova", "provider": "openai", "gender": "female" }
]
}
curl -X POST https://api.agentphone.to/v1/numbers \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"country": "US",
"areaCode": "415",
"agentId": "agent_abc123"
}'
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
country | string | No | "US" | 2-letter ISO country code (US or CA) |
areaCode | string | No | — | 3-digit area code (US/CA only) |
agentId | string | No | — | Attach to an agent immediately |
Response:
{
"id": "pn_xyz789",
"phoneNumber": "+14155551234",
"country": "US",
"status": "active",
"agentId": "agent_abc123",
"createdAt": "2025-01-15T10:31:00.000Z"
}
curl "https://api.agentphone.to/v1/numbers?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | No | 20 | Max results (1-100) |
Response:
{
"data": [
{
"id": "pn_xyz789",
"phoneNumber": "+14155551234",
"country": "US",
"status": "active",
"agentId": "agent_abc123"
}
],
"total": 1
}
Irreversible — the number returns to the carrier pool and you cannot get it back. Always confirm with the user before releasing.
curl -X DELETE https://api.agentphone.to/v1/numbers/NUMBER_ID \
-H "Authorization: Bearer YOUR_API_KEY"
Voice calls are real-time conversations through your agent's phone numbers. Calls can be inbound (received) or outbound (initiated via API). Each call includes metadata like duration, status, and transcript.
How calls are handled depends on your agent's voice mode:
voiceMode: "webhook" (default) — Caller speech is transcribed and sent to your webhook as agent.message events. Your server controls every response using any LLM, RAG, or custom logic.voiceMode: "hosted" — Calls are handled end-to-end by a built-in LLM using your systemPrompt. No webhook or server needed.Switch modes at any time via PATCH /v1/agents/:id. The backend automatically re-provisions voice infrastructure and rebinds phone numbers with no downtime.
Note: SMS is always webhook-based regardless of voice mode.
When voiceMode is "webhook":
event: "agent.message" and channel: "voice", including recentHistory for context.When voiceMode is "hosted":
beginMessage (e.g., "Hello! How can I help?").systemPrompt to generate a contextual response.Both modes share the same low-latency engine:
| Capability | Description |
|---|---|
| Streaming STT | Real-time speech-to-text transcription |
| Streaming TTS | Sub-second text-to-speech synthesis |
| Barge-in | Caller can interrupt the agent mid-sentence |
| Backchanneling | Natural conversational cues ("uh-huh", "right") |
| Turn detection | Smart end-of-speech detection |
| Streaming responses | Return NDJSON to start TTS on the first chunk |
| DTMF digit press | Press keypad digits to navigate IVR menus and automated phone systems |
| Call recording | Optional add-on — automatically records calls and provides audio URLs |
For voice webhooks, your server must return a JSON object ({...}) telling the agent what to say. Non-object responses (numbers, strings, arrays) are ignored and the caller hears silence.
Return Content-Type: application/x-ndjson with newline-delimited JSON chunks. TTS starts speaking on the very first chunk while your server continues processing.
{"text": "Let me check that for you.", "interim": true}
{"text": "Your order #4521 shipped yesterday via FedEx."}
Mark interim chunks with "interim": true — the final chunk (without interim) closes the turn. Use this for tool calls, LLM token forwarding, or any time your response takes more than ~1 second.
Return a single JSON object for instant replies where no processing delay is expected.
{ "text": "How can I help you?" }
| Field | Type | Description |
|---|---|---|
text | string | Text to speak to the caller |
hangup | boolean | Set to true to end the call after speaking |
action | string | "transfer" to cold-transfer the call (requires transferNumber on the agent), "hangup" to end it |
digits | string | DTMF digits to press on the keypad (e.g. "1", "123", "1*#"). Used to navigate IVR menus and automated phone systems. Aliases: press_digit, dtmf |
interim | boolean | NDJSON only — marks a chunk as interim (TTS speaks it but the turn stays open) |
Warning: Webhook timeout — Voice webhook requests have a 30-second default timeout (configurable from 5–120 seconds per webhook via the
timeoutfield). If your server doesn't start responding in time, the request is cancelled and the caller hears silence for that turn. This is especially important when your webhook calls external APIs or runs LLM tool calls — always stream an interim chunk immediately so the caller hears something while you process.
from fastapi.responses import StreamingResponse
import json, openai
@app.post('/webhook')
async def handle_voice(payload: dict):
if payload['channel'] != 'voice':
return Response(status_code=200)
history = payload.get('recentHistory', [])
context = "\n".join([
f"{'Customer' if h['direction'] == 'inbound' else 'Agent'}: {h['content']}"
for h in history
])
async def generate():
yield json.dumps({"text": "One moment, let me check.", "interim": True}) + "\n"
stream = openai.chat.completions.create(
model="gpt-4",
stream=True,
messages=[
{"role": "system", "content": "You are a helpful phone agent."},
{"role": "user", "content": f"Conversation:\n{context}\n\nRespond."}
]
)
full = ""
for chunk in stream:
delta = chunk.choices[0].delta.content or ""
full += delta
yield json.dumps({"text": full}) + "\n"
return StreamingResponse(generate(), media_type="application/x-ndjson")
const OpenAI = require('openai');
const openai = new OpenAI();
app.post('/webhook', express.json(), async (req, res) => {
if (req.body.channel !== 'voice') return res.status(200).send('OK');
const history = req.body.recentHistory || [];
const context = history
.map(h => `${h.direction === 'inbound' ? 'Customer' : 'Agent'}: ${h.content}`)
.join('\n');
res.setHeader('Content-Type', 'application/x-ndjson');
res.write(JSON.stringify({ text: 'One moment, let me check.', interim: true }) + '\n');
const stream = await openai.chat.completions.create({
model: 'gpt-4',
stream: true,
messages: [
{ role: 'system', content: 'You are a helpful phone agent.' },
{ role: 'user', content: `Conversation:\n${context}\n\nRespond.` }
]
});
let full = '';
for await (const chunk of stream) {
full += chunk.choices[0]?.delta?.content || '';
}
res.write(JSON.stringify({ text: full }) + '\n');
res.end();
});
When your agent needs to call external APIs (databases, calendars, CRM, etc.) during a voice call, always stream an interim filler response first. This prevents the caller from hearing silence while your tools run.
The pattern is: stream an interim acknowledgement immediately → run your tools → stream the final answer.
from flask import Flask, request, Response
import json, anthropic, os
app = Flask(__name__)
client = anthropic.Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
TOOLS = [
{
"name": "get_todays_calendar",
"description": "Get the user's calendar events for today.",
"input_schema": {"type": "object", "properties": {}, "required": []},
},
{
"name": "search_orders",
"description": "Look up a customer's recent orders.",
"input_schema": {
"type": "object",
"properties": {"query": {"type": "string"}},
"required": ["query"],
},
},
]
TOOL_HANDLERS = {
"get_todays_calendar": lambda args: fetch_calendar_events(),
"search_orders": lambda args: search_order_db(args["query"]),
}
def run_tool_call(user_message: str, history: list) -> str:
"""Run Claude with tools and return the final text response."""
messages = [{"role": "user", "content": user_message}]
for _ in range(5): # max tool-call iterations
response = client.messages.create(
model="claude-haiku-4-5-20251001",
max_tokens=256,
system="You are a helpful phone assistant. Keep responses to 2-3 sentences.",
tools=TOOLS,
messages=messages,
)
if response.stop_reason == "tool_use":
messages.append({"role": "assistant", "content": response.content})
tool_results = []
for block in response.content:
if block.type == "tool_use":
handler = TOOL_HANDLERS.get(block.name)
result = handler(block.input) if handler else "Unknown tool"
tool_results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": result,
})
messages.append({"role": "user", "content": tool_results})
else:
return " ".join(b.text for b in response.content if hasattr(b, "text"))
return "Sorry, I'm having trouble processing that."
@app.post("/webhook")
def webhook():
payload = request.json
if payload.get("channel") != "voice":
return "OK", 200
transcript = payload["data"].get("transcript", "")
history = payload.get("recentHistory", [])
def generate():
# Immediately tell the caller we're working on it
yield json.dumps({"text": "Let me check on that.", "interim": True}) + "\n"
# Now run the slow tool calls (LLM + external APIs)
try:
answer = run_tool_call(transcript, history)
except Exception:
answer = "Sorry, I ran into a problem. Could you try again?"
yield json.dumps({"text": answer}) + "\n"
return Response(generate(), content_type="application/x-ndjson")
const express = require("express");
const Anthropic = require("@anthropic-ai/sdk");
const app = express();
app.use(express.json());
const client = new Anthropic();
const tools = [
{
name: "get_todays_calendar",
description: "Get the user's calendar events for today.",
input_schema: { type: "object", properties: {}, required: [] },
},
{
name: "search_orders",
description: "Look up a customer's recent orders.",
input_schema: {
type: "object",
properties: { query: { type: "string" } },
required: ["query"],
},
},
];
const toolHandlers = {
get_todays_calendar: (args) => fetchCalendarEvents(),
search_orders: (args) => searchOrderDb(args.query),
};
async function runToolCall(userMessage) {
const messages = [{ role: "user", content: userMessage }];
for (let i = 0; i < 5; i++) {
const response = await client.messages.create({
model: "claude-haiku-4-5-20251001",
max_tokens: 256,
system: "You are a helpful phone assistant. Keep responses to 2-3 sentences.",
tools,
messages,
});
if (response.stop_reason === "tool_use") {
messages.push({ role: "assistant", content: response.content });
const toolResults = [];
for (const block of response.content) {
if (block.type === "tool_use") {
const handler = toolHandlers[block.name];
const result = handler ? await handler(block.input) : "Unknown tool";
toolResults.push({ type: "tool_result", tool_use_id: block.id, content: result });
}
}
messages.push({ role: "user", content: toolResults });
} else {
return response.content
.filter((b) => b.type === "text")
.map((b) => b.text)
.join(" ");
}
}
return "Sorry, I'm having trouble processing that.";
}
app.post("/webhook", async (req, res) => {
if (req.body.channel !== "voice") return res.status(200).send("OK");
const transcript = req.body.data?.transcript || "";
res.setHeader("Content-Type", "application/x-ndjson");
// Immediately tell the caller we're working on it
res.write(JSON.stringify({ text: "Let me check on that.", interim: true }) + "\n");
// Now run the slow tool calls (LLM + external APIs)
try {
const answer = await runToolCall(transcript);
res.write(JSON.stringify({ text: answer }) + "\n");
} catch (err) {
res.write(JSON.stringify({ text: "Sorry, I ran into a problem." }) + "\n");
}
res.end();
});
app.listen(3000);
Tip: Why interim chunks matter for tool calls — Without the interim chunk, the caller hears dead silence while your LLM decides which tool to call, the external API responds, and the LLM summarises the result. With streaming, they hear "Let me check on that" within milliseconds — just like a human assistant would.
Your webhook is too slow or not responding. Voice webhooks have a 30-second default timeout (configurable per webhook from 5–120 seconds). If your server doesn't respond in time, the turn is dropped and the caller hears nothing.
Fix: Always stream an interim NDJSON chunk immediately (e.g. {"text": "One moment.", "interim": true}) before doing any slow work. This buys you time while keeping the caller engaged.
Common causes:
Your webhook isn't configured or isn't returning a valid JSON object. Voice responses must be a JSON object ({...}). Non-object responses (strings, arrays, numbers) are ignored.
Fix: Verify your webhook is returning {"text": "..."}. Use POST /v1/webhooks/test to confirm your endpoint is reachable and responding correctly.
You're sending the entire response as a single large chunk. Long responses in a single chunk can cause TTS delays.
Fix: Use NDJSON streaming and break responses into natural sentences. Send each sentence as an interim chunk so TTS can start speaking immediately.
Your LLM is including tool-call markup in its response. Some LLMs emit <function_call> or similar tags.
Fix: Strip non-speech content from your LLM output before returning it. AgentPhone removes common patterns automatically, but your webhook should clean responses to be safe.
You're returning a 200 OK with no body, or a non-JSON response for voice. SMS webhooks only need a 200 status — voice webhooks must return a JSON object with a text field.
Fix: Check the channel field in the webhook payload. For "voice", always return {"text": "..."}. For "sms", a 200 OK is sufficient.
Call recording is an optional add-on that saves audio recordings of your voice calls. When enabled, completed calls include a recordingUrl field with a link to the audio file.
| Field | Type | Description |
|---|---|---|
recordingUrl | string or null | URL to the call recording audio file. Only populated when the recording add-on is enabled. |
recordingAvailable | boolean | Whether a recording exists for this call. Can be true even when recordingUrl is null (recording exists but the add-on is not active). |
Enable recording from the Billing page in the dashboard. See Usage & Billing for pricing.
Note: Recordings are captured automatically for all calls while the add-on is active. If you disable the add-on, existing recordings are preserved but
recordingUrlwill be null until you re-enable it.
List all calls for this project.
GET /v1/calls
Query parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | integer | No | 20 | Number of results to return (max 100) |
offset | integer | No | 0 | Number of results to skip (min 0) |
status | string | No | — | Filter by status: completed, in-progress, failed |
direction | string | No | — | Filter by direction: inbound, outbound, web |
search | string | No | — | Search by phone number (matches fromNumber or toNumber) |
curl -X GET "https://api.agentphone.to/v1/calls?limit=10&offset=0" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"data": [
{
"id": "call_ghi012",
"agentId": "agt_abc123",
"phoneNumberId": "num_xyz789",
"phoneNumber": "+15551234567",
"fromNumber": "+15559876543",
"toNumber": "+15551234567",
"direction": "inbound",
"status": "completed",
"startedAt": "2025-01-15T14:00:00Z",
"endedAt": "2025-01-15T14:05:30Z",
"durationSeconds": 330,
"lastTranscriptSnippet": "Thank you for calling, goodbye!",
"recordingUrl": "https://api.twilio.com/2010-04-01/.../Recordings/RE...",
"recordingAvailable": true
}
],
"hasMore": false,
"total": 1
}
Get details of a specific call, including its full transcript.
GET /v1/calls/{call_id}
curl -X GET "https://api.agentphone.to/v1/calls/call_ghi012" \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"id": "call_ghi012",
"agentId": "agt_abc123",
"phoneNumberId": "num_xyz789",
"phoneNumber": "+15551234567",
"fromNumber": "+15559876543",
"toNumber": "+15551234567",
"direction": "inbound",
"status": "completed",
"startedAt": "2025-01-15T14:00:00Z",
"endedAt": "2025-01-15T14:05:30Z",
"durationSeconds": 330,
"recordingUrl": "https://api.twilio.com/2010-04-01/.../Recordings/RE...",
"recordingAvailable": true,
"transcripts": [
{
"id": "tr_001",
"transcript": "Hello! Thanks for calling Acme Corp. How can I help you today?",
"confidence": 0.95,
"response": "Sure! Could you please provide your order number?",
"createdAt": "2025-01-15T14:00:05Z"
},
{
"id": "tr_002",
"transcript": "Hi, I'd like to check the status of my order.",
"confidence": 0.92,
"response": "Of course! Let me look that up for you.",
"createdAt": "2025-01-15T14:00:15Z"
}
]
}
Initiate an outbound voice call from one of your agent's phone numbers. The agent's first assigned phone number is used as the caller ID.
POST /v1/calls
Request body:
| Field | Type | Required | Description |
|---|---|---|---|
agentId | string | Yes | The agent that will handle the call. Its first assigned phone number is used as caller ID. |
toNumber | string | Yes | The phone number to call (E.164 format, e.g., "+15559876543") |
initialGreeting | string or null | No | Optional greeting to speak when the recipient answers |
voice | string | No | Voice to use for speaking (default: "Polly.Amy") |
systemPrompt | string or null | No | When provided, uses a built-in LLM for the conversation instead of forwarding to your webhook. |
curl -X POST "https://api.agentphone.to/v1/calls" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"agentId": "agt_abc123",
"toNumber": "+15559876543",
"initialGreeting": "Hi, this is Acme Corp calling about your recent order.",
"systemPrompt": "You are a friendly support agent from Acme Corp."
}'
List all calls associated with a specific phone number.
GET /v1/numbers/{number_id}/calls
curl -X GET "https://api.agentphone.to/v1/numbers/num_xyz789/calls?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
curl https://api.agentphone.to/v1/calls/CALL_ID/transcript \
-H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.agentphone.to/v1/numbers/NUMBER_ID/messages?limit=50" \
-H "Authorization: Bearer YOUR_API_KEY"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | No | 50 | Max results (1-200) |
Response:
{
"data": [
{
"id": "msg_abc123",
"from": "+14155559999",
"to": "+14155551234",
"body": "Hey, what time is my appointment?",
"direction": "inbound",
"status": "received",
"receivedAt": "2025-01-15T10:40:00.000Z"
}
],
"total": 1
}
Conversations are threaded SMS exchanges between your number and an external contact. Each unique phone number pair creates one conversation.
curl "https://api.agentphone.to/v1/conversations?limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
limit | number | No | 20 | Max results (1-100) |
Response:
{
"data": [
{
"id": "conv_xyz",
"phoneNumber": "+14155551234",
"participant": "+14155559999",
"messageCount": 5,
"lastMessageAt": "2025-01-15T10:45:00.000Z",
"lastMessagePreview": "Sounds good, see you then!"
}
],
"total": 1
}
Get a specific conversation with its message history.
curl "https://api.agentphone.to/v1/conversations/CONVERSATION_ID?messageLimit=50" \
-H "Authorization: Bearer YOUR_API_KEY"
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
messageLimit | number | No | 50 | Max messages to return (1-100) |
The project-level webhook receives events for all agents unless overridden by an agent-specific webhook.
curl -X POST https://api.agentphone.to/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/webhook",
"contextLimit": 10
}'
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
url | string | Yes | — | Publicly accessible HTTPS URL |
contextLimit | number | No | 10 | Number of recent messages to include in webhook payloads (0-50) |
Response:
{
"id": "wh_abc123",
"url": "https://your-server.com/webhook",
"secret": "whsec_...",
"status": "active",
"contextLimit": 10
}
Save the secret — use it to verify webhook signatures on your server.
curl https://api.agentphone.to/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY"
Agents with their own webhook are not affected.
curl -X DELETE https://api.agentphone.to/v1/webhooks \
-H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.agentphone.to/v1/webhooks/deliveries/stats?hours=24" \
-H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.agentphone.to/v1/webhooks/deliveries?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Send a test event to verify your webhook is working.
curl -X POST https://api.agentphone.to/v1/webhooks/test \
-H "Authorization: Bearer YOUR_API_KEY"
Route a specific agent's events to a different URL. When set, the agent's events go here instead of the project-level webhook.
curl -X POST https://api.agentphone.to/v1/agents/AGENT_ID/webhook \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"url": "https://your-server.com/agent-webhook",
"contextLimit": 5
}'
curl https://api.agentphone.to/v1/agents/AGENT_ID/webhook \
-H "Authorization: Bearer YOUR_API_KEY"
Events fall back to the project-level webhook.
curl -X DELETE https://api.agentphone.to/v1/agents/AGENT_ID/webhook \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X POST https://api.agentphone.to/v1/agents/AGENT_ID/webhook/test \
-H "Authorization: Bearer YOUR_API_KEY"
curl https://api.agentphone.to/v1/usage \
-H "Authorization: Bearer YOUR_API_KEY"
Response:
{
"plan": { "name": "free", "numberLimit": 1 },
"numbers": { "used": 1, "limit": 1 },
"stats": {
"messagesLast30d": 42,
"callsLast30d": 15,
"minutesLast30d": 67
}
}
curl "https://api.agentphone.to/v1/usage/daily?days=7" \
-H "Authorization: Bearer YOUR_API_KEY"
curl "https://api.agentphone.to/v1/usage/monthly?months=3" \
-H "Authorization: Bearer YOUR_API_KEY"
When a call or message comes in, AgentPhone sends an HTTP POST to your webhook URL with the event payload.
| Event | Description |
|---|---|
call.started | An inbound call has started |
call.ended | A call has ended (includes transcript) |
agent.message | Real-time voice transcript or SMS received — check channel field |
message.received | An SMS was received on your number |
message.sent | An outbound SMS was delivered |
The channel field in the webhook payload tells you the event source:
channel: "voice" — Real-time voice call event. Your response must be a JSON object with a text field (e.g. {"text": "Hello!"}). Return Content-Type: application/x-ndjson for streaming responses. Non-object responses are ignored and the caller hears silence.channel: "sms" — SMS message event. A 200 OK status is sufficient — no response body needed.The webhook payload includes:
data fieldrecentHistory (controlled by contextLimit)channel field ("voice" or "sms")event field (e.g. "agent.message")Voice webhooks have a 30-second default timeout (configurable from 5–120 seconds via the timeout field when creating or updating a webhook). If your server doesn't start responding in time, the caller hears silence for that turn. Always stream an interim NDJSON chunk immediately for voice webhooks.
Each webhook request includes a signature header. Use the secret from your webhook setup to verify the payload hasn't been tampered with.
Success:
{
"id": "resource_id",
"..."
}
List:
{
"data": [...],
"total": 42
}
Error:
{
"detail": "Description of what went wrong"
}
Common status codes:
| Code | Meaning |
|---|---|
200 | Success |
201 | Created |
400 | Bad request (validation error, missing params) |
401 | Unauthorized (missing or invalid API key) |
402 | Payment required (insufficient balance) |
404 | Resource not found |
429 | Rate limited |
500 | Server error |
Now that your agent has a phone number, here are things you can do:
These are starting points. Having your own phone number means your agent can do anything a human can do over the phone, autonomously.
评论 (0)
暂无评论,成为第一个评论者吧!