Phone
BlockRunAI/ClawRouter
Verify phone numbers (carrier + SIM-swap fraud signals) and place AI-powered outbound voice calls via BlockRun's gateway (Twilio + Bland.ai).
Ask one question of many places by phone and get back only the answers the call actually established.
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdline --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/holdline .claude/skills/holdline && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .claude/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdlineType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdline --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/holdline .agents/skills/holdline && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .agents/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdline --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/holdline .cursor/skills/holdline && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .cursor/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/CALLE-AI/awesome-phone-call-agents.git --path skills/holdline--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdline --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/holdline .gemini/skills/holdline && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .gemini/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdlineInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/holdline .github/skills/holdline && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .github/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install CALLE-AI/awesome-phone-call-agents holdline --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/holdline .opencode/skills/holdline && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "holdline" agent skill from https://github.com/CALLE-AI/awesome-phone-call-agents/tree/main/skills/holdline into .opencode/skills/holdline/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "holdline", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
holdlineAsk one question of many places by phone and get back only the answers the call actually established.
Holdline is an agent skill from CALLE-AI/awesome-phone-call-agents. Ask one question of many places by phone and get back only the answers the call actually established. Use for batch phone enquiries where a wrong answer is worse than no answer — supplier stock checks, capacity and availability enquiries, claim and case status, directory verification. Includes evidence checking that catches values a call returns for questions it never asked.
Its SKILL.md is about 1.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/examples.md`, `references/probes.md` and `references/safety.md`).
The repository describes itself as: Portable phone-call Agent Skills, apps, examples, adapters, and scheduler recipes for AI agents. The licence is MIT.
Read from SKILL.md and the folder at commit 38d4118. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmgitFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
github.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
CALLE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Holdline loads about 1.6k tokens when it runs, and up to ~5k if it reads all its reference files. Until then it costs about 97 tokens; SKILL.md has 857 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from CALLE-AI/awesome-phone-call-agents at commit 38d4118, republished under its MIT licence (© CALLE-AI). 857 words, ~1,583 tokens.
.claude/skills/holdline/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.Place a batch of phone enquiries through CALL-E, then check every returned field against the transcript turns the agent actually spoke. A field whose question was never asked does not come back, whatever the model reported.
Use it when the same question goes to several places and a confidently wrong answer causes real damage: sourcing a part across suppliers, checking which clinics have capacity, chasing case status across agencies, verifying that a directory listing is still true.
Do not use it for a conversation, for anything requiring negotiation or judgement on the call, or where a person must decide something in the moment. This asks a fixed question and records the answer.
run_hold requires confirm: true in the
same request. There is no setting that removes the confirmation.plan_hold shows the compiled task, every number it would
dial, and what the ledger already knows. It never dials.run_hold returns
outcome: "unresolved", report it and stop; a retry rings a second person.This directory is documentation. It contains no runnable code. The three tools below are served by an MCP server that lives in a separate repository, and the commands here only work from a clone of it:
git clone https://github.com/Elioz404/HOLDLINE
cd HOLDLINE
npm install
export CALLE_API_KEY=... # server-side only, never in client code
npm run mcp # serves plan_hold, run_hold, get_verdict over stdioThen point your MCP client at that command. Nothing in this skill directory is
executable, and running npm inside it will not work.
Without CALLE_API_KEY, plan_hold still works — planning needs no network —
and the dialing tools return an error saying exactly what is missing.
To exercise the tools with no CALL-E account at all, from the same clone:
HOLDLINE_SIMULATE=1 npm run mcpEvery response is then tagged simulated: true with a notice saying no
telephone was involved. Treat simulated output as a rehearsal, never as a
finding, and say so if you report it.
plan_holdCompiles the task within CALL-E's 255-character limit, validates every number, derives the idempotency key from the authorizing record, and reports which targets the freshness ledger already answers. Dials nothing.
Start here every time.
run_holdDispatches the batch as one call task with many recipients, then judges each
answer separately. Requires confirm: true.
Returns per target: a verdict, the gated result, and the reasons. Fields the
transcript does not support are null.
get_verdictFetches a call by id and judges it. Use it to re-examine a call, or to reconcile one whose outcome was unknown.
| Verdict | Meaning |
|---|---|
verified | The agent raised the topic and a usable answer came back. |
asked_but_unclear | The agent asked; the answer was not usable. |
unattributed | Some question was asked and answered, but none of this field's probes match it, so the answer cannot be pinned here. |
attributed | No probe matched, but exactly one question went unclaimed and this was the only unmatched field, so the answer can only have come from it. Weaker evidence than a match, and reported as such. Only appears when elimination is enabled. |
never_asked | Nothing was asked that this value could answer. If a value came back anyway, it is flagged. |
no_transcript | No transcript, so nothing could be checked. |
A batch verdict is verified only when every required field is verified —
or attributed, if the caller enabled elimination — and completion confidence
clears the floor. There is no partial pass.
never_asked with a value present is the case worth surfacing to the user: the
call returned something the conversation does not support.
A probe is the list of phrases that identify the agent raising a topic. Write the words the agent would actually say, not the field name.
{ "name": "accepts_new_patients", "asks": ["new patients", "accepting new", "taking patients"] }Matching is lexical, so a question phrased in words no probe contains reads as
unattributed and is withheld. That is the safe direction, but it costs a real
answer — see references/probes.md before writing them for a new workflow.
Every result carries unclaimedQuestions: the questions the agent asked that no
probe claimed, verbatim. If one of them is the question you meant to ask, add
its wording to that field. That is the fix; elimination is the fallback.
run_hold places outbound calls, billed per call, one per dialable target,
dispatched together. Each target carries its own idempotency key derived from
batchId, workflow, intent and that target's subject id; running the batch
again fetches each existing call rather than dialing anyone a second time.
One call per target rather than one call with many recipients, because a multi-recipient call returns no transcript turns and this skill has nothing to verify without them.
Nothing in this skill schedules recurring work, so there is nothing to cancel. A batch in flight cannot be recalled — the confirmation before dispatch is the only stopping point.
references/safety.md — what a phone answer proves, and what it does not.references/probes.md — writing probes, and the failure they trade against.© CALLE-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (references) in skills/holdline of CALLE-AI/awesome-phone-call-agents.
Open the folder on GitHubat commit 38d4118
Holdline next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Holdline this skillCALLE-AI/awesome-phone-call-agents | 107 | — | ~1.6k | Automated safety check: Pass | MIT | |
| PhoneBlockRunAI/ClawRouter | 6.6k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Five Questionsbrycewang-stanford/Auto-Empirical-Research-Skills | 4.6k | — | ~1.7k | Automated safety check: Notes | Custom licence | |
| Discovery Question Formnexu-io/open-design | 100k | — | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Many Chat AutomationComposioHQ/awesome-claude-skills | 77k | 3 repos | ~736 | Automated safety check: Pass | None | |
| Ask User QuestionMemTensor/MemOS | 12k | — | ~1k | Automated safety check: Pass | Apache-2.0 |
BlockRunAI/ClawRouter
Verify phone numbers (carrier + SIM-swap fraud signals) and place AI-powered outbound voice calls via BlockRun's gateway (Twilio + Bland.ai).
brycewang-stanford/Auto-Empirical-Research-Skills
Deeply analyze any empirical economics PDF using the five-question framework (五问框架): research question, identification strategy, core estimand, robustness logic, and scholarly contribution.
nexu-io/open-design
Structured clarification form for unresolved material requirements.
ComposioHQ/awesome-claude-skills
Automate ManyChat tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.
MemTensor/MemOS
Shows a question as a modal in the interface to clarify a task, collect a preference or get approval, since the user cannot see terminal output.
milind-soni/OpenMausBot
Control, inspect, test, or automate a physical Android phone connected to OpenMausBot over authorized USB debugging.
CALLE-AI/awesome-phone-call-agents
Demonstrates advisory accessibility-planning checks with offline fixtures and a proposed bounded CALL-E workflow; use for exploring unknown or qualified venue claims without making calls.
CALLE-AI/awesome-phone-call-agents
A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…
CALLE-AI/awesome-phone-call-agents
Call a venue and ask the accessibility questions that matter to one specific person — step-free entry, hearing loop, guide dogs, quiet hours, changing places — then return a per-need verdict backed…
CALLE-AI/awesome-phone-call-agents
Turns a pre-written, building-level location config into a CALL-E outbound phone-call task that guides a delivery driver through the last few hundred metres to a specific building using landmarks…
CALLE-AI/awesome-phone-call-agents
Turn cited business research into a bounded, approval-gated phone-call plan that asks only unresolved factual questions, then reconcile CALL-E-compatible results without treating voicemail, refusal…
CALLE-AI/awesome-phone-call-agents
Place a goal-driven CALL-E call that collects specific structured answers, score those answers against a deterministic rubric you supply, and conditionally trigger a follow-up action — all runnable…
Ask one question of many places by phone and get back only the answers the call actually established. Holdline is an agent skill from CALLE-AI/awesome-phone-call-agents. Ask one question of many places by phone and get back only the answers the call actually established.
Holdline fits situations like: batch phone enquiries where a wrong answer is worse than no answer — supplier stock checks; capacity and availability enquiries; claim and case status; directory verification.
Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a claude-code`. Or copy the skill folder (skills/holdline in CALLE-AI/awesome-phone-call-agents) into .claude/skills/holdline in your project. Claude Code loads it when a task matches its description.
Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a codex`. Or copy the skill folder (skills/holdline in CALLE-AI/awesome-phone-call-agents) into .agents/skills/holdline in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CALLE-AI/awesome-phone-call-agents --skill holdline -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/holdline, .gemini/skills/holdline, .github/skills/holdline and .opencode/skills/holdline in your project.
Going by SKILL.md and its folder, Holdline needs the command-line tools its instructions call (npm and git) and credentials named CALLE_API_KEY. Our summary lists: Node.js; A credential in CALLE_API_KEY.
SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Holdline is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.6k tokens (SKILL.md is roughly 6.3k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Holdline: Phone (BlockRunAI/ClawRouter, 6.6k stars), Five Questions (brycewang-stanford/Auto-Empirical-Research-Skills, 4.6k stars), Discovery Question Form (nexu-io/open-design, 100k stars) and Many Chat Automation (ComposioHQ/awesome-claude-skills, 77k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
CALLE-AI (a GitHub organization) maintains it in CALLE-AI/awesome-phone-call-agents, which has 107 GitHub stars. The repository holds 101 skills in this directory. The repository was last updated on October 10, 2026.
Source: CALLE-AI/awesome-phone-call-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.