← 返回 Skills 市场
skills-airtap

Airtap: Every claw now has a phone

作者 skills-airtap · GitHub ↗ · v1.0.7 · MIT-0
cross-platform ✓ 安全检测通过
200
总下载
3
收藏
0
当前安装
8
版本数
在 OpenClaw 中安装
/install airtap
功能描述
Use this skill when the user wants to operate Airtap or complete a request through a mobile app on an Airtap device. It lists receivers and models, creates A...
使用说明 (SKILL.md)

Airtap

Use the bundled scripts/airtap.py CLI to interact with Airtap tasks.

Safety

  • Use this skill for Airtap or mobile-app requests that can be delegated to an Airtap device.
  • Prefer --receiver-id cloud. Do not target a physical receiver unless the user explicitly asks for that device.
  • task poll is local-only by default. Use OpenClaw delivery only when the host explicitly wants mirrored updates.
  • Do not ask the user to paste tokens into chat. Use preconfigured environment variables or the local scripts/.env file.
  • Never invent OpenClaw targets, thread IDs, reply IDs, or account scopes.

Setup

Run commands from the skill directory.

First, sign in to https://airtap.ai/app, open Settings, create a personal access token, and copy it.

Create or update scripts/.env with:

python3 scripts/airtap.py --add-token "your-personal-access-token"

Or copy the template and fill in the personal access token:

cp scripts/env.example.txt scripts/.env

The script loads scripts/.env on startup and values from that file override same-named shell environment variables.

Requires requests and python-dotenv. If missing:

pip3 install -r requirements.txt

Command Reference

Run all commands as python3 scripts/airtap.py \x3Cresource> \x3Caction> ....

Command Use when Notes
receiver get-list You need to choose a receiver. Helpful before task creation.
model get-list Model choice matters for the task. Main Airtap choices are airtap-1.0 and airtap-1.0-flash.
task create You want to start a new task. Add --model-id \x3Cid> only to override the default model.
task get-list You need recent tasks. Useful when you need to recover a taskId.
task get-details You need a one-time task snapshot. Useful for debugging or inspecting the final state.
task poll You need to monitor a running task. Polls locally by default and can optionally forward updates into OpenClaw.
task add-user-message The task needs more input. Use for clarification, continuation, or resuming work.
task cancel The task should stop. Use when the user no longer wants the task to continue.
user update-location The task depends on user location. Send the location as raw JSON.

Choosing A Model

  • Only list models when model choice matters. Do not call model get-list for every task.
  • If you do not send modelId during task creation, Airtap defaults to airtap-1.0-flash.
  • Airtap 1.0 Flash (airtap-1.0-flash) is the default. Use it for shorter tasks that benefit from lower latency.
  • Airtap 1.0 (airtap-1.0) is slower. Use it for more complex tasks where better reliability is worth the extra latency.
  • model get-list returns the models available to the current account. Most users see airtap-1.0 and airtap-1.0-flash. Debug users may also see airtap-1.0-lite.

Monitoring Long-Running Tasks

Airtap tasks can take a few seconds to several minutes. Treat them as long-running jobs.

  1. Create the task and capture the returned taskId.
  2. If you only need a local wait loop, call python3 scripts/airtap.py task poll --task-id "\x3Ctask-id>".
  3. If the host explicitly wants OpenClaw channel updates, read references/openclaw.md and call task poll with --openclaw-target and any routing fields required for the destination conversation.
  4. Let task poll keep polling until taskState reaches one of the states in the task-state glossary below.
  5. Read the final JSON response from task poll.

task poll is the main monitoring command:

  • It polls task get-details internally every 10 seconds by default.
  • It stops automatically when the task completes, fails, is cancelled, or needs user input.
  • It returns the same task details payload plus a _poll summary.
  • Bare task poll --task-id ... only polls Airtap locally.
  • OpenClaw delivery requires --openclaw-target.
  • OpenClaw delivery is milestone-based by default: acknowledgement, one plan/start update, and the final or waiting-state update.
  • Add --openclaw-verbose only when the host explicitly wants every Airtap agent update forwarded.
  • Detailed OpenClaw routing flags and examples live in references/openclaw.md.

How to read the task details returned by task poll or task get-details:

  • messages is ordered conversation history. The first message is typically the original user request. Later entries are usually agent updates.
  • Most progress updates come from the latest type: "agent" message.
  • Inside an agent message, inspect text parts first.
  • text is the main progress update.
  • group and subGroup are UI grouping fields that help categorize the update.
  • queuedUserMessages may contain user follow-ups that have been accepted but not processed yet.

Task States

  • COMPLETED: the task finished successfully.
  • FAILED: the task could not be completed.
  • CANCELLED: the task was cancelled.
  • WAITING_FOR_USER_INTERVENTION: the user must perform some action on the device.
  • WAITING_FOR_USER_INPUT: the agent needs clarification before continuing the task.
  • WAITING_FOR_USER_CONTINUE: the task reached the maximum step limit and needs approval to keep going.

Required Agent Behavior

  • If the host expects OpenClaw channel updates while Airtap is running, call task poll with --openclaw-target and the required routing flags. Otherwise use local-only task poll.
  • Use milestone-only OpenClaw delivery by default. Add --openclaw-verbose only when the host explicitly wants every Airtap step forwarded.
  • On WAITING_FOR_USER_INPUT, ask the user the needed clarification, then forward the answer with task add-user-message.
  • On WAITING_FOR_USER_INTERVENTION, tell the user exactly what action they need to perform on the device, wait for confirmation, then resume with task add-user-message.
  • On WAITING_FOR_USER_CONTINUE, summarize the progress so far, ask whether to continue, and if the user approves, resume with task add-user-message.
  • On COMPLETED, summarize the result using the latest agent updates.
  • On FAILED or CANCELLED, report the final state and any useful context from the latest agent message.
  • If any Airtap API call returns 404 or another request failure, tell the user to get an updated version of the Airtap skill before retrying.

Examples

Create a task with the default model:

python3 scripts/airtap.py task create --message "Open Instagram" --receiver-id cloud

List available models when the task is complex:

python3 scripts/airtap.py model get-list

Create a task with the more reliable Airtap model:

python3 scripts/airtap.py task create \
  --message "Compare the price of a product on Amazon and Zepto" \
  --receiver-id cloud \
  --model-id airtap-1.0

Monitor a running task locally only:

python3 scripts/airtap.py task poll --task-id "task_abc123"

Answer a clarification request or continue a paused task:

python3 scripts/airtap.py task add-user-message --task-id "task_abc123" --message "Continue"

Cancel a task:

python3 scripts/airtap.py task cancel --task-id "task_abc123"

Notes

  • Image attachments are supported for task create and task add-user-message via --image-file.
  • For OpenClaw relay details and examples, read references/openclaw.md.
安全使用建议
This skill appears to do what it claims: a local Python CLI that talks to https://airtap.ai using the AIRTAP_PERSONAL_ACCESS_TOKEN you provide. Before installing, consider: (1) supply a token with the minimal scope you can; (2) the script may read any image file path you explicitly pass (it base64-encodes and uploads it) — do not point it at sensitive files; (3) if you use OpenClaw mirroring, the skill will invoke an openclaw executable you point it at or find on PATH, so ensure that binary is trustworthy; (4) the skill writes logs to /tmp/log and a local scripts/.env file when using --add-token; review the included Python files if you require extra assurance.
功能分析
Type: OpenClaw Skill Name: airtap Version: 1.0.7 The 'airtap' skill is a legitimate integration for the Airtap.ai mobile automation service, allowing an AI agent to create, monitor, and manage mobile tasks. The bundle includes a Python CLI (`scripts/airtap.py`) and a utility module (`scripts/airtap_common.py`) that interact with the Airtap API and optionally relay progress updates to OpenClaw via a local binary. The code follows security best practices by using `subprocess.run` with argument lists to prevent shell injection, implementing path validation for the external `openclaw` executable, and providing clear safety instructions in `SKILL.md` regarding token handling and device targeting. No evidence of intentional malicious behavior, unauthorized data exfiltration, or persistence mechanisms was found.
能力标签
requires-oauth-tokenrequires-sensitive-credentials
能力评估
Purpose & Capability
Name/description (operate Airtap, create/monitor tasks) align with the files and runtime requirements. The only required env var is AIRTAP_PERSONAL_ACCESS_TOKEN and the only required binary is python3, both expected for an Airtap CLI client.
Instruction Scope
SKILL.md and the scripts focus on Airtap API calls, task polling, and optional mirroring into OpenClaw. The runtime reads a local .env for the token and can include an image file (base64) when the user supplies one. There are no instructions to read arbitrary system files or to exfiltrate data beyond the Airtap API or explicitly configured OpenClaw targets.
Install Mechanism
No install spec (instruction-only) and dependencies are standard Python packages (requests, python-dotenv). Code is shipped with the skill rather than downloaded at install time, so there are no remote-install URLs or archive extracts to review.
Credentials
Only AIRTAP_PERSONAL_ACCESS_TOKEN (declared as primaryEnv) is required. No unrelated credentials or broad environment access are requested. The scripts respect a local .env and do not require additional secrets.
Persistence & Privilege
always is false and the skill does not attempt to modify other skills or global agent settings. It will write a local scripts/.env and a log file (default /tmp/log), which is reasonable for a CLI tool.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install airtap
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /airtap 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.7
- Updated the model references: the default model is now airtap-1.0-flash instead of airtap-1.0-lite. - Model selection guidance revised: use airtap-1.0-flash for lower latency on shorter tasks; use airtap-1.0 for more complex or reliable tasks. - Model list command description updated to mention new model options and possible debug-only models. - Example commands and related text now refer to airtap-1.0-flash as the default. - No code or infrastructure changes; documentation only.
v1.0.6
- Use correct headers
v1.0.5
- Added agent instruction: If any Airtap API call returns 404 or other request failure, inform the user to get an updated version of the Airtap skill before retrying. - No functional or CLI changes; documentation/guidance only.
v1.0.4
- Updated metadata to formally declare the required environment variable: AIRTAP_PERSONAL_ACCESS_TOKEN. - Added "env" and "primaryEnv" declarations in the skill metadata for improved environment setup clarity. - No functional or CLI changes were made in this version.
v1.0.3
- Split shared logic into a new `airtap_common.py` script for cleaner organization. - Added a `references/openclaw.md` for OpenClaw relay documentation and examples. - Streamlined SKILL.md: removed redundant content, improved safety guidance, clarified OpenClaw usage, and emphasized not requesting tokens from users. - Removed the standalone `README.md` (info is now integrated into SKILL.md and references). - No user-facing command changes; all existing CLI actions remain the same.
v1.0.2
- Declared AIRTAP_PERSONAL_ACCESS_TOKEN as a required environment variable and the primary credential for the skill. - Updated setup instructions to emphasize minimal-scope access tokens and safe handling of AIRTAP_PERSONAL_ACCESS_TOKEN. - Added publishing metadata for the required environment variable with description and guidance. - No changes to code or CLI functionality.
v1.0.1
- Clarified token setup instructions: now directs users to create a personal access token via the Airtap web app and use it in the CLI. - Updated setup section to specify using the new "personal access token" terminology and workflow. - No changes to CLI commands or features.
v1.0.0
Initial release of airtap – Python CLI client for Airtap mobile AI agent platform: - List available receivers and models. - Create, monitor, and manage tasks (include optional model selection). - Send follow-up messages, cancel tasks, and update user location. - Supports local and OpenClaw-integrated monitoring of long-running tasks. - Includes detailed setup instructions, command reference, and usage examples.
元数据
Slug airtap
版本 1.0.7
许可证 MIT-0
累计安装 0
当前安装数 0
历史版本数 8
常见问题

Airtap: Every claw now has a phone 是什么?

Use this skill when the user wants to operate Airtap or complete a request through a mobile app on an Airtap device. It lists receivers and models, creates A... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 200 次。

如何安装 Airtap: Every claw now has a phone?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install airtap」即可一键安装,无需额外配置。

Airtap: Every claw now has a phone 是免费的吗?

是的,Airtap: Every claw now has a phone 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Airtap: Every claw now has a phone 支持哪些平台?

Airtap: Every claw now has a phone 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Airtap: Every claw now has a phone?

由 skills-airtap(@skills-airtap)开发并维护,当前版本 v1.0.7。

💬 留言讨论