一键导入
inkbox-outbound-calling
Use when the user asks the agent to place an outbound Inkbox phone call, call a phone number, or call a contact by voice.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when the user asks the agent to place an outbound Inkbox phone call, call a phone number, or call a contact by voice.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user asks who can reach the agent's Inkbox mailbox, phone number, or shared iMessage line — viewing email/SMS/call/iMessage allow and block rules, checking why a sender was filtered, or handling a request to block or allow someone.
Use when the user asks "who is X", "what's the email for Y", "find a contact named Z", "save this contact", or any request that needs contact context. The agent can read and write Inkbox contacts visible to the configured identity; contact access grants, contact rules, and vCard flows are separate surfaces.
Use when the user asks the agent to "log into X", "get the API key for Y", "fetch the SSH key for Z", or "give me the TOTP code for service A". Covers the credential vault path through the Inkbox plugin. Always list-then-get; never enumerate plaintext.
Use when the user asks the agent to triage its Inkbox inbox or unread queue, or to reply to, forward, or send mail on its Inkbox identity. Does not cover the human owner's personal email.
Use when the user asks which Inkbox agent identities can see a contact or note, or asks to grant/revoke cross-identity access to contacts or notes.
Use when the user asks to send an iMessage, reply to or triage the agent's iMessage conversations, or explain how to reach the agent over iMessage. Covers the connect/router model, the recipient-first rule, and tapback reactions.
| name | inkbox-outbound-calling |
| description | Use when the user asks the agent to place an outbound Inkbox phone call, call a phone number, or call a contact by voice. |
Use this skill when the user asks you to call someone.
inkbox_place_call — place an outbound voice call.It is disabled by default. The user must enable it in your .opencode/plugins/inkbox.ts wrapper (by exact name, or via the "calls" group) and restart opencode:
// in your .opencode/plugins/inkbox.ts wrapper:
InkboxPlugin(input, { "tools": { "enable": ["inkbox_place_call"] } })
inkbox_doctor reports whether it is currently enabled.
A call can go out over one of two lines:
origination: "dedicated_number") — the identity's own phone number, the same line SMS and voice conversations use. Use this to call anyone reachable by phone; it is the default choice.origination: "shared_imessage_number") — call someone over the shared iMessage line they already message you on. This only works if that person is connected to your identity over iMessage; if they aren't, the call is rejected and you should fall back to your dedicated number or ask them to message you on iMessage first. You never see or choose the underlying shared number — Inkbox resolves it from the connection.Every call needs a WebSocket audio bridge (wss://...) that Inkbox connects to for the call's audio stream. It comes from either:
clientWebsocketUrl argument on the call, orcallWebsocketUrl plugin option / INKBOX_CALL_WEBSOCKET_URL env var.If neither is set, the tool errors. Ask the user for a bridge URL — never invent one.
inkbox_lookup_contact first.inkbox_place_call with toNumber, origination, and clientWebsocketUrl (omit the URL if the bridge is configured in the plugin options). Placing a call prompts for approval through opencode's permission system by default.id, status, origination, and remaining outbound-call rate limit — surface these to the user before queueing more calls.If the user wants a post-call email/SMS/note, wait for the call to finish, review it with inkbox_list_calls and inkbox_list_call_transcripts (both enabled by default), then send the follow-up with the matching Inkbox send tool.