[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MXCA8TH3RF0BE44978WD7J":3,"skill-same:01M6MXCA8TH3RF0BE44978WD7J":99},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":48,"linkOnly":49,"markdownContent":50,"markdownBody":51,"frontMatter":52,"refName":53,"commitSha":54,"skillDirectory":55,"forksCount":56,"repositoryHtmlUrl":57,"repositoryHomepageUrl":6,"ownerHtmlUrl":58,"ownerBlogUrl":6,"ownerDescription":59,"updatedAt":60,"install":61,"resources":74},"01M6MXCA8TH3RF0BE44978WD7J","blog-to-kindle",null,"Scrape blogs\u002Fessay sites and compile into Kindle-friendly EPUB with AI-generated cover. Use for requests to download blogs for Kindle, compile essays into ebook, or send blog archives to Kindle. Supports Paul Graham, Kevin Kelly, Derek Sivers, Wait But Why, Astral Codex Ten, and custom sites.","Kernel8901\u002Fai-agent-skills-classification","Kernel8901","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F72647553?v=4","01M6KV388J2H5PNC8D8P940BJD","01M6KV38CS5B3AY63RKZB410YM",7,"MIT","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47],"blog","blog to kindle","wait","Blogs","send","custom","for","cover","requests","essay","essays","with","codex","sites","but","use","generated","why","scrape","compile","2026-11-10 10:12:30",false,"---\nname: blog-to-kindle\ndescription: Scrape blogs\u002Fessay sites and compile into Kindle-friendly EPUB with AI-generated cover. Use for requests to download blogs for Kindle, compile essays into ebook, or send blog archives to Kindle. Supports Paul Graham, Kevin Kelly, Derek Sivers, Wait But Why, Astral Codex Ten, and custom sites.\n---\n\n# Blog to Kindle\n\nScrape blog\u002Fessay sites, compile into EPUB with cover art, and deliver to Kindle.\n\n## Quick Start\n\n```bash\n# 1. Fetch essays from a supported site\nuv run scripts\u002Ffetch_blog.py --site paulgraham --output .\u002Fpg-essays\n\n# 2. Generate cover (uses Nano Banana Pro)\n# See nano-banana-pro skill for cover generation\n\n# 3. Compile to EPUB with cover\nuv run scripts\u002Fcompile_epub.py --input .\u002Fpg-essays --cover .\u002Fcover.png --output essays.epub\n\n# 4. Send to Kindle\nuv run scripts\u002Fsend_to_kindle.py --file essays.epub --kindle-email user@kindle.com\n```\n\n## Workflow (MUST follow this order)\n\n1. **Fetch** - Download all essays\u002Fposts from the blog\n2. **Generate Cover** - Create cover art via Nano Banana Pro skill (DO NOT SKIP)\n3. **Compile** - Combine into EPUB with cover embedded\n4. **Send** - Email to Kindle address\n\n⚠️ **Always generate and include cover before sending.** Never send without cover.\n\n## Supported Sites\n\n| Site | Key | URL Pattern |\n|------|-----|-------------|\n| Paul Graham | `paulgraham` | paulgraham.com\u002Farticles.html |\n| Kevin Kelly | `kevinkelly` | kk.org\u002Fthetechnium |\n| Derek Sivers | `sivers` | sive.rs\u002Fblog |\n| Wait But Why | `waitbutwhy` | waitbutwhy.com\u002Farchive |\n| Astral Codex Ten | `acx` | astralcodexten.com |\n\nFor unlisted sites, use `--site custom --url \u003Carchive-url>`.\n\n## Cover Generation\n\nUse the `nano-banana-pro` skill to generate covers. Prompt template:\n\n```\nBook cover for '[Author Name]: [Subtitle]'. \nMinimalist design with elegant typography. \n[Brand color] accent. Clean white\u002Fcream background. \nSimple geometric or abstract motif related to [topic].\nProfessional literary feel. No photos, no faces.\nPortrait orientation book cover dimensions.\n```\n\nGenerate at 2K resolution for good quality without huge file size.\n\n## Kindle Delivery\n\nDefault Kindle address (Simon): `simonpilkington74_8oVjpj@kindle.com`\n\nUses Mail.app via AppleScript to send. Ensure:\n- Sender email is on Kindle approved list\n- File under 50MB (EPUB compresses well)\n\n## State Tracking\n\nState files stored in `~\u002F.clawdbot\u002Fstate\u002Fblog-kindle\u002F`:\n- `{site}-last-fetch.json` - Last fetch timestamp, article count\n- `{site}-sent.json` - List of sent article IDs\n\nUse for incremental updates (only fetch new posts).\n\n## Manual Workflow (no scripts)\n\nIf scripts unavailable, follow this pattern:\n\n1. **Fetch**: curl archive page → parse article links → fetch each → convert to markdown\n2. **Combine**: Concatenate markdown with YAML frontmatter (title, author)\n3. **Cover**: Generate via Nano Banana Pro\n4. **Convert**: `pandoc combined.md -o output.epub --epub-cover-image=cover.png --toc`\n5. **Send**: AppleScript Mail.app with attachment\n\nSee `references\u002Fmanual-workflow.md` for detailed steps.\n","# Blog to Kindle\n\nScrape blog\u002Fessay sites, compile into EPUB with cover art, and deliver to Kindle.\n\n## Quick Start\n\n```bash\n# 1. Fetch essays from a supported site\nuv run scripts\u002Ffetch_blog.py --site paulgraham --output .\u002Fpg-essays\n\n# 2. Generate cover (uses Nano Banana Pro)\n# See nano-banana-pro skill for cover generation\n\n# 3. Compile to EPUB with cover\nuv run scripts\u002Fcompile_epub.py --input .\u002Fpg-essays --cover .\u002Fcover.png --output essays.epub\n\n# 4. Send to Kindle\nuv run scripts\u002Fsend_to_kindle.py --file essays.epub --kindle-email user@kindle.com\n```\n\n## Workflow (MUST follow this order)\n\n1. **Fetch** - Download all essays\u002Fposts from the blog\n2. **Generate Cover** - Create cover art via Nano Banana Pro skill (DO NOT SKIP)\n3. **Compile** - Combine into EPUB with cover embedded\n4. **Send** - Email to Kindle address\n\n⚠️ **Always generate and include cover before sending.** Never send without cover.\n\n## Supported Sites\n\n| Site | Key | URL Pattern |\n|------|-----|-------------|\n| Paul Graham | `paulgraham` | paulgraham.com\u002Farticles.html |\n| Kevin Kelly | `kevinkelly` | kk.org\u002Fthetechnium |\n| Derek Sivers | `sivers` | sive.rs\u002Fblog |\n| Wait But Why | `waitbutwhy` | waitbutwhy.com\u002Farchive |\n| Astral Codex Ten | `acx` | astralcodexten.com |\n\nFor unlisted sites, use `--site custom --url \u003Carchive-url>`.\n\n## Cover Generation\n\nUse the `nano-banana-pro` skill to generate covers. Prompt template:\n\n```\nBook cover for '[Author Name]: [Subtitle]'. \nMinimalist design with elegant typography. \n[Brand color] accent. Clean white\u002Fcream background. \nSimple geometric or abstract motif related to [topic].\nProfessional literary feel. No photos, no faces.\nPortrait orientation book cover dimensions.\n```\n\nGenerate at 2K resolution for good quality without huge file size.\n\n## Kindle Delivery\n\nDefault Kindle address (Simon): `simonpilkington74_8oVjpj@kindle.com`\n\nUses Mail.app via AppleScript to send. Ensure:\n- Sender email is on Kindle approved list\n- File under 50MB (EPUB compresses well)\n\n## State Tracking\n\nState files stored in `~\u002F.clawdbot\u002Fstate\u002Fblog-kindle\u002F`:\n- `{site}-last-fetch.json` - Last fetch timestamp, article count\n- `{site}-sent.json` - List of sent article IDs\n\nUse for incremental updates (only fetch new posts).\n\n## Manual Workflow (no scripts)\n\nIf scripts unavailable, follow this pattern:\n\n1. **Fetch**: curl archive page → parse article links → fetch each → convert to markdown\n2. **Combine**: Concatenate markdown with YAML frontmatter (title, author)\n3. **Cover**: Generate via Nano Banana Pro\n4. **Convert**: `pandoc combined.md -o output.epub --epub-cover-image=cover.png --toc`\n5. **Send**: AppleScript Mail.app with attachment\n\nSee `references\u002Fmanual-workflow.md` for detailed steps.\n",{"name":5,"description":7},"main","f4cb2d49f7667e79ef7804f50396d5aaffdf1f56","人工智能与大型语言模型\u002Fblog-to-kindle",1,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification","https:\u002F\u002Fgithub.com\u002FKernel8901","a little little little dobe in life but science geek","2026-04-05 16:43:56",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add Kernel8901\u002Fai-agent-skills-classification --skill blog-to-kindle",{"tool":67,"command":68},"bunx","bunx skills add Kernel8901\u002Fai-agent-skills-classification --skill blog-to-kindle",{"tool":70,"command":71},"pnpm","pnpm dlx skills add Kernel8901\u002Fai-agent-skills-classification --skill blog-to-kindle","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002FSKILL.md",true,[75,81,85,91,95],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":80},"_meta.json","REFERENCE","参考文档",284,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002F_meta.json",{"path":82,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fmanual-workflow.md",3541,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002Freferences\u002Fmanual-workflow.md",{"path":86,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Fcompile_epub.py","SCRIPT","脚本",3316,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002Fscripts\u002Fcompile_epub.py",{"path":92,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Ffetch_blog.py",5315,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002Fscripts\u002Ffetch_blog.py",{"path":96,"resourceType":87,"resourceTypeDesc":88,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fsend_to_kindle.py",2509,"https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F人工智能与大型语言模型\u002Fblog-to-kindle\u002Fscripts\u002Fsend_to_kindle.py",[100,123,155,166,176,205],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":48},"01M6Q5R6WZ06RRB9RQTW54B34B","zyfai","Earn yield on any Ethereum wallet on Base, Arbitrum, and Plasma. Use when a user wants passive DeFi yield on their funds. Deploys a non-custodial subaccount (Safe) linked to their EOA, enables automated yield optimization, and lets them deposit\u002Fwithdraw anytime.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzyfai-sdk\u002FSKILL.md",[],[102,107,108,109,110,111,43,112,113,114,115,116,117,118,119,120,121,122],"safe","ethereum","defi","Optimization","user","Wallet","base","deposit","withdraw","yield","arbitrum","non-custodial","passive","defi yield","earn","yield optimization",{"skillNo":124,"name":125,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":137,"publishedAt":48},"01M6Q5R337B5JSNER4P4YS03TN","zerion-api","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api\u002FSKILL.md",[128,131,134],{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":132,"categoryName":133,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":135,"categoryName":136,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000030","开发工程师",[138,139,140,141,142,143,144,109,145,112,146,147,148,149,150,151,152,153,154],"api","zerion api","zerion","MCP","mcp server","server","blockchain","transactions","crypto wallet","crypto","evm","solana","query","across","positions","token","prices",{"skillNo":156,"name":157,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":163,"publishedAt":48},"01M6Q5QZFYTDAZMZ27BN5VZXAR","zerion-api-skill","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-skill\u002FSKILL.md",[160,161,162],{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":132,"categoryName":133,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":135,"categoryName":136,"taxonomyType":25,"taxonomyTypeDesc":26},[138,164,165,139,140,141,142,143,144,109,145,112,147,148,149,150,151,152,153,154],"api skill","zerion api skill",{"skillNo":167,"name":168,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":174,"publishedAt":48},"01M6Q5QW17QW98RA3FE45E4RD8","zerion-api-mcp","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fzerion-api-mcp\u002FSKILL.md",[171,172,173],{"categoryNo":129,"categoryName":130,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":132,"categoryName":133,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":135,"categoryName":136,"taxonomyType":25,"taxonomyTypeDesc":26},[141,138,175,139,140,142,143,109,145,112,146,147,148,149,150,151,152,153,154],"zerion api mcp",{"skillNo":177,"name":178,"nameZh":6,"description":179,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":180,"categories":181,"keywords":185,"publishedAt":48},"01M6Q5QQYZB7A501BDEQWKGSJT","yahoo-finance-forex","Fetches real-time FOREX news and market data from Yahoo Finance for major currency pairs (EUR\u002FUSD, GBP\u002FUSD, USD\u002FJPY, etc.). Analyzes sentiment and provides trading context.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-forex\u002FSKILL.md",[182],{"categoryNo":183,"categoryName":184,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000040","财务",[186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,34],"finance","yahoo finance","forex","yahoo","yahoo finance forex","github","https","sentiment","real-time","python3","install","Market","usd","news","time","currency","gbp","pip","market data",{"skillNo":206,"name":207,"nameZh":6,"description":208,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":209,"categories":210,"keywords":212,"publishedAt":48},"01M6Q5QM6VS84WZVM7BKXXPF32","yahoo-finance","This skill should be used when the user asks to \"get stock prices\", \"check stock quotes\", \"look up earnings\", \"get financial data\", \"find trending stocks\", or needs stock market data from Yahoo Finance.","https:\u002F\u002Fgithub.com\u002FKernel8901\u002Fai-agent-skills-classification\u002Fblob\u002Fmain\u002F金融\u002Fyahoo-finance-cli\u002FSKILL.md",[211],{"categoryNo":183,"categoryName":184,"taxonomyType":25,"taxonomyTypeDesc":26},[186,187,189,213,214,215,216,217,218,197,219,220,221,222,223,224,225,226,154,204],"cli","homebrew","find","check","brew","up","local","get","stock","link","trending","sf","quotes","ln"]