Search

PythonReactSEOPDF
OpenClaw

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.

brianlu365ai0 source installs☆ 0 Repository stars

Installation

Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.

SkillHub CLI

skillhub install brianlu365ai/x-to-kindle

Inspect the source and compatibility requirements, then follow its installation steps.

Give your agent the source link and ask it to inspect instructions and dependencies before explaining the installation steps.

View source ↗Guides

Skill instructions

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...

Source information

Source
github
Repository
openclaw/skills
Path
skills/brianlu365ai/x-to-kindle
Version
—
Commit
c33f2fbac688865fc65a52febd65a4a55a7d8bc7
Classification source
rules
Status
active
Visibility
public

These signals come from indexed source analysis and may lag behind changes. Check the current source files.

Extracted content

SKILL.md
# 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 skills

OpenClaw

sixtyfour-skill

rxhxm

Agent Skill (SKILL.md) for Sixtyfour AI — People & company intelligence API. Enrich leads, find emails/phones, qualify prospects, search people. For Claude Code, Codex, OpenClaw, Cursor.

OpenClaw

139mail

chang-tong

139邮箱邮件收发 Skill - 支持 IMAP/SMTP 协议,兼容139/QQ/163/Gmail等主流邮箱 功能: 1. 发送邮件(SMTP) 2. 接收邮件(IMAP) 3. 查看收件箱列表 4. 查看未读邮件 当用户提到 "发邮件"、"收邮件"、"查看邮件"、"邮箱"...

OpenClaw

ABM Outbound

dru-ca

Multi-channel ABM automation that turns LinkedIn URLs into coordinated outbound campaigns. Scrapes profiles, enriches with Apollo (email + phone), gets mailing addresses via Skip Trace, then orchestrates email...