TopRank Skills

Official OpenClaw rules 36%

x-to-kindle

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.

Stars

0

Installs

0

Status

ACTIVE

Visibility

PUBLIC

安装方式

直接复制以下提示词,发送给你的 AI 助手即可完成安装。

请先检查是否已安装 SkillHub 商店,若未安装,请根据 https://skillhub-1388575217.cos.ap-guangzhou.myqcloud.com/install/skillhub.md 安装 SkillHub 商店,然后安装 x-to-kindle 技能。 若已安装,则直接安装 x-to-kindle 技能。

Overview

Skill Key
brianlu365ai/x-to-kindle
Author
brianlu365ai
Source Repo
openclaw/skills
Version
-
Source Path
skills/brianlu365ai/x-to-kindle
Latest Commit SHA
c33f2fbac688865fc65a52febd65a4a55a7d8bc7

Extracted Content

SKILL.md excerpt

# 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):
   ```html
   <!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):
   ```python
   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...

Related Claw Skills