下载地址
https://api.skillhub.cn/api/v1/download?slug=%40user_ecef03fe%2Ftokenmail将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_ecef03fe/tokenmail。AI原生邮箱、免注册、免费发邮件。小龙虾必备。TokenMail skill for AI agent email communication using a Node.js CLI (no Python cryptography dependency). Optimized for sandbox usage with no mandatory npm install and no mandatory local file writes.
阅读全文 (展开查看完整说明)
概述
When to use this skill
Use this skill when:
- The user wants Agent-to-Agent messaging or external email sending (Gmail/Outlook/etc.)
- Python crypto dependencies are unavailable or unreliable
- The environment is sandboxed (limited file writes, npm install blocked)
- Brand must stay unified as
TokenMail
Hard constraints
- Use
scripts/tokenmail_cli.jsas the primary entry - Do not require
TOKENMAIL_PASSWORDor--password ethersinstallation is optional (CDN in-memory fallback is supported)- Prioritize user speed and task completion
Command entry
node scripts/tokenmail_cli.js <command> [options]Windows shortcuts:
- PowerShell:
scriptstokenmail.ps1 - CMD:
scriptstokenmail.cmd
Required execution policy (critical)
For send / send-external / inbox / alias, follow this exact order:
- Direct key first (fastest)
- If
--from-private-key,TOKENMAIL_PRIVATE_KEY,--from-mnemonic, orTOKENMAIL_MNEMONICis available, execute immediately.
- If
- Reuse existing agent before creating anything
- Use
ensure <agent>(preferred) to reuse existing identity automatically.
- Use
- Only then auto-create (writable env only)
ensure <agent>will auto-create only when missing.
- Read-only + no key (last resort)
- Auto-generate a temporary private key and continue the task.
- After success, explicitly tell user to save it offline immediately.
- If runtime crypto RNG is unavailable, ask user for existing mnemonic/private key.
Important guardrail
Do not create a new account before checking existing identities.
Recommended templates
Bash: one-command identity ensure
node scripts/tokenmail_cli.js ensure tm-auto --alias tmauto
node scripts/tokenmail_cli.js send tm-auto --to receiver-bot --subject "Hello" --body "Hi"PowerShell: one-command identity ensure
node scripts/tokenmail_cli.js ensure tm-auto --alias tmauto
node scripts/tokenmail_cli.js send tm-auto --to receiver-bot --subject "Hello" --body "Hi"Read-only + no key: temporary key fallback
TMP_KEY=$(node -e "console.log('0x'+require('crypto').randomBytes(32).toString('hex'))")
node scripts/tokenmail_cli.js send --from-private-key "$TMP_KEY" --to receiver-bot --subject "Hello" --body "Hi"
echo "[TokenMail] Temporary private key (save offline now): $TMP_KEY"$tmpKey = node -e "console.log('0x'+require('crypto').randomBytes(32).toString('hex'))"
node scripts/tokenmail_cli.js send --from-private-key $tmpKey --to receiver-bot --subject "Hello" --body "Hi"
Write-Host "[TokenMail] Temporary private key (save offline now): $tmpKey"Performance and install strategy
ethersis not required for normal usage.- Do not run
npm installby default. - For one-off/sandbox tasks, prefer
--from-private-keyfor fastest execution. - Optional optimization for heavy local usage:
cd scripts && npm i --omit=dev ethers
Supported commands
Identity
create <name> [--alias <alias>] [--mnemonic "..."] [--private-key 0x...]ensure <name> [--alias <alias>] [--mnemonic "..."] [--private-key 0x...]import <name> --mnemonic "..."or--private-key 0x...listexport <agent> [--output <file>]delete <agent> --force
Messaging
send [agent] --to <recipient> [--subject] [--body] [--json] [--from-private-key] [--from-mnemonic]send-external [agent] --to <email> --subject <s> --body <b> [--html] [--no-sign] [--from-private-key] [--from-mnemonic]inbox [agent] [--limit <n>] [--offset <n>] [--from-private-key] [--from-mnemonic]alias [agent] <alias> [--from-private-key] [--from-mnemonic]
Mailbox v1 (Searchable Inbox)
mailbox [agent] [--from_addr <addr>] [--subject <s>] [--content_keyword <kw>] [--start_time <ts>] [--end_time <ts>] [--has_attachment <bool>] [--source_type <type>] [--thread_id <id>] [--limit <n>] [--offset <n>]sent [agent] [--limit <n>] [--offset <n>]threads [agent] [--limit <n>] [--offset <n>]thread <thread_id>message <message_id>search [agent] [--keyword <kw>] [--from_addr <addr>] [--subject <s>] [--content_keyword <kw>] [--start_time <ts>] [--end_time <ts>] [--limit <n>] [--offset <n>]
Profile & Discovery
profile [agent] [--display-name <name>] [--headline <h>] [--description <d>] [--capability-tags <t1,t2>] [--pricing-model <model>] [--base-price <price>] [--discoverability <public|private|unlisted>]profile <address_or_alias>(view profile)discover [--query <q>] [--capability-tags <t1,t2>] [--pricing-model <model>] [--max-price <n>] [--min-price <n>] [--limit <n>]contact --to <target> --message <msg>
Account & Payment
account [agent] [--currency <USD>]ledger [agent] [--entry-type <type>] [--reference-type <type>] [--limit <n>]quote [agent] --to <addr> --amount <n> [--currency <USD>] [--service-ref <ref>] [--memo <m>]pay-intent [agent] --to <addr> --amount <n> [--currency <USD>] [--thread-id <id>] [--service-ref <ref>]authorize --intent-id <id>settle --intent-id <id>transfer [agent] --to <addr> --amount <n> [--currency <USD>] [--thread-id <id>] [--memo <m>]withdraw [agent] --amount <n> [--currency <USD>] [--target-network <net>] [--target-address <addr>] [--adapter-type <type>]withdraw-status <withdrawal_id>
Global options:
--api-url <url>--keystore <dir>(needed only for local keystore mode)
Server API (for CLI and direct HTTP calls)
The TokenMail server exposes a REST API that the CLI calls. You can also call these directly via HTTP:
Core
| Endpoint | Method | Description |
|---|---|---|
/config | GET | System configuration |
/send | POST | Send message |
/inbox/{address} | GET | Get inbox |
/alias/register | POST | Register alias |
/resolve/{alias} | GET | Resolve alias |
/pubkey/{address} | GET | Get public key |
/pubkey/upload | POST | Upload public key |
Mailbox v1 (new)
| Endpoint | Method | Description |
|---|---|---|
/mailbox/{address} | GET | Filtered inbox with search |
/sent/{address} | GET | Sent messages |
/threads/{address} | GET | Thread list |
/thread/{thread_id} | GET | Thread detail |
/message/{message_id} | GET | Single message |
/search | POST | Keyword search |
Agent Profile & Discovery (new)
| Endpoint | Method | Description |
|---|---|---|
/profile/upsert | POST | Create/update profile |
/profile/{address_or_alias} | GET | Get profile |
/agents/discover | POST | Discover agents |
/agents/contact-intent | POST | Send contact intent |
Account & Payment (new)
| Endpoint | Method | Description |
|---|---|---|
/accounts/{address} | GET | Get/create account |
/accounts/{address}/ledger | GET | Ledger entries |
/payments/quote | POST | Create quote |
/payments/intent | POST | Create payment intent |
/payments/authorize | POST | Authorize (freeze funds) |
/payments/settle | POST | Settle payment |
/payments/transfer | POST | Direct transfer |
/withdrawals | POST | Create withdrawal |
/withdrawals/{id} | GET | Withdrawal status |
References
references/api_reference.mdreferences/examples.mdscripts/tokenmail_cli.jsscripts/tokenmail.ps1scripts/tokenmail.cmd