Inkbox

Send and receive emails and phone calls via Inkbox agent identities. Use when the user wants to check inbox messages, list unread email, view a thread, searc...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 23 · 0 current installs · 0 all-time installs
byRuizhi (Ray) Liao@rayruizhiliao
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill's name/description, required env vars (INKBOX_API_KEY, INKBOX_AGENT_HANDLE), required binary (node), and the included scripts all match the claimed functionality (email and telephony via the Inkbox SDK). There are no unrelated credentials or binaries requested.
Instruction Scope
The SKILL.md and scripts only read the declared env vars and invoke the @inkbox/sdk to perform mailbox/call actions, and they instruct the agent to confirm with the user before sending emails or placing calls. One notable detail: place-call accepts a --clientWebsocketUrl which will forward real-time audio to an arbitrary WebSocket URL — this can expose audio to that endpoint if provided. The skill does not read local files or other env vars.
Install Mechanism
There is no explicit install spec in the registry entry (instruction-only). A package.json exists and depends on @inkbox/sdk: "latest"; running the provided commands (npx tsx ...) will fetch tooling and networked packages at runtime. Using an unpinned 'latest' package introduces normal supply-chain risk; no downloads from unknown URLs or archive extraction were found.
Credentials
Only two environment variables are required (INKBOX_API_KEY as primary credential and INKBOX_AGENT_HANDLE). Both are directly relevant to the skill's operation and are proportionate to sending/reading emails and placing calls.
Persistence & Privilege
The skill does not request always:true, does not modify other skills or system-wide settings, and has normal user-invocable/autonomous-invocation defaults. No persistent or elevated privileges are requested.
Assessment
This skill appears to do what it says: manage emails and calls via Inkbox using the provided API key and agent handle. Before installing or using it: (1) Only supply an Inkbox API key that you trust and prefer a least-privilege key if Inkbox supports scopes. (2) Be cautious with the --clientWebsocketUrl option for calls — any URL you provide will receive audio streams, so only use endpoints you control or trust. (3) The package.json depends on @inkbox/sdk: "latest"; consider pinning to a specific version before installing to reduce supply-chain risk. (4) The scripts run via node/npx and will make network calls to Inkbox — run them in an environment you trust. (5) Always confirm with the user before sending emails or placing calls (the SKILL.md already recommends this).

Like a lobster shell, security has layers — review code before you run it.

Current versionv0.1.0
Download zip
latestvk97bp7mwxpzyckxzcdfpybdnr1830m5r

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📬 Clawdis
Binsnode
EnvINKBOX_API_KEY, INKBOX_AGENT_HANDLE
Primary envINKBOX_API_KEY

SKILL.md

Inkbox Skill

Use this skill when the user wants to send an email, read their inbox, view an email thread, search through emails, place a phone call, list call history, or read call transcripts. All operations go through the Inkbox agent identity specified by INKBOX_AGENT_HANDLE.

Requirements

  • INKBOX_API_KEY — your Inkbox API key (from console.inkbox.ai)
  • INKBOX_AGENT_HANDLE — the handle of the agent identity to use (e.g. my-agent)
  • node must be installed (Node.js ≥ 18)

Commands

Send an email

npx tsx scripts/send-email.ts --to <address> --subject <subject> --body <text> [--cc <address>] [--bcc <address>] [--replyTo <messageId>]
  • --to (required) — recipient address(es), comma-separated
  • --subject (required) — email subject line
  • --body (required) — plain text email body
  • --cc (optional) — CC recipient address(es), comma-separated
  • --bcc (optional) — BCC recipient address(es), comma-separated
  • --replyTo (optional) — message ID to reply in-thread

Outputs: JSON with the sent message details.

List inbox emails

npx tsx scripts/list-emails.ts [--limit <n>] [--unread]
  • --limit (optional, default 10) — number of emails to return
  • --unread (optional flag) — only return unread emails

Outputs: JSON array of messages with id, subject, from, date, snippet.

Get a full email thread

npx tsx scripts/get-thread.ts --threadId <id>
  • --threadId (required) — thread ID (found in list-emails output)

Outputs: JSON with all messages in the thread.

Search emails

npx tsx scripts/search-emails.ts --query <text> [--limit <n>]
  • --query (required) — full-text search query
  • --limit (optional, default 10) — max results to return

Outputs: JSON array of matching messages.

Place a phone call

npx tsx scripts/place-call.ts --to <e164-number> [--clientWebsocketUrl <url>]
  • --to (required) — E.164 destination number (e.g. +15551234567)
  • --clientWebsocketUrl (optional) — WebSocket URL for real-time audio bridging

Outputs: JSON with the created call record and current rate limit info.

List call history

npx tsx scripts/list-calls.ts [--limit <n>] [--offset <n>]
  • --limit (optional, default 10) — max results to return
  • --offset (optional, default 0) — pagination offset

Outputs: JSON array of call records with id, direction, status, start/end times.

Get a call transcript

npx tsx scripts/get-transcript.ts --callId <id>
  • --callId (required) — call ID (found in list-calls output)

Outputs: JSON array of transcript segments ordered by sequence number.

Notes

  • Always confirm with the user before sending an email or placing a call.
  • Use list-emails.ts --unread to check for new messages.
  • Thread IDs are available in the threadId field of any message object.
  • Message IDs from list-emails can be passed to --replyTo when replying.
  • Phone numbers must be in E.164 format (e.g. +15551234567).
  • The agent identity must have a phone number assigned to use phone commands.
  • Call IDs from list-calls can be passed to get-transcript.ts.

Files

9 total
Select a file
Select a file to preview.

Comments

Loading comments…