360 Secure SkillHub
360 安全技能中心

X To Kindle

根据用户提供的 X/Twitter 链接,调用 fxtwitter API 抓取作者、正文和时间戳,在 /tmp 生成 HTML 文件,再通过 Gmail SMTP 以附件形式发送到 Kindle 邮箱;配套 send_to_kindle.py 可发送本地 PDF/HTML/TXT 文件,凭据通过环境变量或 TOOLS.md 配置。

brianlu365ai
brianlu365ai
热度 83.04
最近更新 2026-05-17 11:32:48
分类:自动化依赖:代码执行 / 第三方 API / 读写文件应用场景:自动化脚本 / 文件转换 / 工作流

安装技能

复制下面的话术发给你的 Agent,它会通过 secure-skills 检索并安装该技能。

执行命令安装此 skill: npx secure-skills-cli add x-to-kindle
Metadata
name
x-to-kindle
description
Send X/Twitter posts to Kindle for distraction-free reading. Use when user shares an X/Twitter link and wants to read it on Kindle, or asks to send a tweet/thread to their Kindle device.

X to Kindle

Convert X/Twitter posts into Kindle-readable documents via email.

Requirements

  • Gmail account with App Password (or other SMTP setup)
  • Kindle email address (found in Amazon account settings)

Workflow

When user shares an X link:

  1. Extract content via fxtwitter API:

    https://api.fxtwitter.com/status/<tweet_id>
    

    Extract from URL: twitter.com/*/status/<id> or x.com/*/status/<id>

  2. Format as HTML file (save to /tmp):

    <!DOCTYPE html>
    <html>
    <head><meta charset="UTF-8"><title>{title}</title></head>
    <body style="font-family: Georgia, serif; max-width: 600px; margin: 0 auto; padding: 20px; line-height: 1.6;">
      <h1>@{author_handle}</h1>
      <p>{tweet_text}</p>
      <p><em>{timestamp}</em></p>
      <p><a href="{original_url}">View on X</a></p>
    </body>
    </html>
    
  3. Send via SMTP with HTML as ATTACHMENT (Kindle requires attachment, not inline HTML):

    from email.mime.multipart import MIMEMultipart
    from email.mime.text import MIMEText
    from email.mime.base import MIMEBase
    from email import encoders
    
    msg = MIMEMultipart()
    msg['Subject'] = "Tweet from @handle"
    msg['From'] = from_email
    msg['To'] = kindle_email
    
    # Plain text body (not the content)
    msg.attach(MIMEText("Article attached.", 'plain'))
    
    # HTML file as attachment - THIS IS REQUIRED
    with open("/tmp/article.html", "rb") as f:
        attachment = MIMEBase('text', 'html')
        attachment.set_payload(f.read())
        encoders.encode_base64(attachment)
        attachment.add_header('Content-Disposition', 'attachment', filename='article.html')
        msg.attach(attachment)
    

Tools

  • send_to_kindle: Send a local file to the configured Kindle email.

Configuration

Set the following environment variables in your Clawdbot configuration (or .env file):

  • SMTP_EMAIL: Your sender email (e.g., gmail)
  • SMTP_PASSWORD: Your app password
  • KINDLE_EMAIL: Your Kindle email address
  • SMTP_SERVER: (Optional) Default: smtp.gmail.com
  • SMTP_PORT: (Optional) Default: 587

Tool Definitions

send_to_kindle

Send a local file (PDF, HTML, TXT) to the Kindle.

  • Run: python3 skills/x-to-kindle/send_to_kindle.py <file_path>

Configuration

Store in TOOLS.md:

## Kindle
- Address: user@kindle.com

## Email (Gmail SMTP)
- From: your@gmail.com
- App Password: xxxx xxxx xxxx xxxx
- Host: smtp.gmail.com
- Port: 587

Example

User sends: https://x.com/elonmusk/status/1234567890

  1. Fetch https://api.fxtwitter.com/status/1234567890
  2. Extract author, text, timestamp
  3. Send HTML email to Kindle address
  4. Confirm: "Sent to Kindle 📚"