AI 驱动的自动化周刊生成工具 🤖📰
AutoPaper 是一个命令行工具,可以从文章链接自动生成精选的周报。它使用 Claude AI 来提取元数据、撰写编辑内容,并导出为多种格式。
- 🤖 AI 驱动的内容策划 - 使用 Claude 智能提取元数据和撰写期刊内容
- 📰 自动生成周刊 - 包含编辑洞察的科技/新闻周刊
- 🏷️ 智能标签 - 自动标签分类和规范化
- 📄 多种导出格式 - Markdown、PDF、Obsidian 笔记库同步、邮件发送
- 📧 邮件分发 - 通过邮件发送期刊,包含 AI 卡片、PDF 附件和 HTML 渲染
- 🎨 AI 卡片生成 - 生成精美的 AI 风格信息图卡片,便于社交分享
- 🔗 文章链接汇总 - 底部汇总所有原始文章链接,方便快速访问
- ⚡ 高性能 - 通过 AI 缓存和并发下载实现 100 倍速度提升
- 🛡️ 生产就绪 - 强大的错误处理、重试逻辑和全面的日志记录
如果你使用 Claude Code,可以将 AutoPaper 安装为技能:
/plugin marketplace add OldCoderIsMe/AutoPaper
然后使用以下技能:
/autopaper-add https://blog.example.com/article
/autopaper-generate tech
/autopaper-export-pdf 2026-W05-tech
完整配置支持:Skill 模式现在通过 config.yaml 和 .env 文件支持完整配置,与 CLI 模式完全一致。配置会自动从项目根目录发现。
📖 详情请参阅 claude-skills/README.md
- Python 3.10+
- Anthropic API key
# 克隆仓库
git clone https://github.com/OldCoderIsMe/AutoPaper.git
cd AutoPaper
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# 以可编辑模式安装
pip install -e .
# 配置环境
cp .env.example .env
# 编辑 .env 文件并添加你的 ANTHROPIC_API_KEY安装完成后,你有两个选择:
在 ~/.zshrc(或 ~/.bashrc)中添加:
# AutoPaper 虚拟环境
export PATH="$PATH:/path/to/AutoPaper/venv/bin"然后重新加载:source ~/.zshrc
cd /path/to/AutoPaper
source venv/bin/activate
autopaper --help# 1. 一周内持续添加文章
autopaper add https://blog.example.com/ai-tool-review
autopaper add https://news.example.com/tech-trend-2026
# 2. 查看所有文章
autopaper list-articles
# 3. 根据 ID 删除文章
autopaper delete 5
# 4. 生成周报
autopaper generate tech
# 4. 导出为 PDF(包含 AI 卡片)
autopaper export-pdf 2026-W05-tech
# 5. 通过邮件发送给团队
autopaper send-email 2026-W05-tech \
--to [email protected] \
--to [email protected] \
--to [email protected]
# 6. 可选:同步到 Obsidian
autopaper sync obsidian 2026-W05-tech每个生成的期刊包含:
- 📄 PDF 文档 - 专业排版,包含 AI 卡片和文章链接
- 📧 邮件 HTML - 富文本格式邮件,内嵌 AI 卡片和可点击链接
- 📝 Markdown 源文件 - 纯文本,便于版本控制,包含文章链接
- 🎨 AI 卡片 - 可分享的信息图(2400x1350px)
- 🔗 文章链接 - 底部汇总所有原始文章链接,方便快速访问
- 🔗 Obsidian 笔记 - 集成到你的知识库
# 发送给单个收件人
autopaper send-email 2026-W05-tech --to [email protected]
# 发送给多个收件人
autopaper send-email 2026-W05-tech \
--to [email protected] \
--to [email protected] \
--to [email protected]
# 自定义邮件主题
autopaper send-email 2026-W05-tech \
--to [email protected] \
--subject "本周技术精选第5期"
# 发送时不附带 PDF
autopaper send-email 2026-W05-tech \
--to [email protected] \
--no-pdf| 命令 | 描述 |
|---|---|
autopaper add <url> |
从 URL 添加文章 |
autopaper list-articles |
列出所有文章 |
autopaper delete <id> |
根据 ID 删除文章 |
autopaper generate <type> |
生成周刊(tech/news) |
autopaper export-pdf <slug> |
导出期刊为 PDF(同时保存 HTML) |
autopaper export-pdf <slug> --html |
仅生成 HTML,跳过 PDF(调试用) |
autopaper send-email <slug> |
通过邮件发送期刊 |
autopaper generate-card <slug> |
生成 AI 摘要卡片 |
autopaper sync obsidian <slug> |
同步到 Obsidian 笔记库 |
运行 autopaper --help 查看所有命令和选项。
AutoPaper/
├── autopaper/ # 主包
│ ├── ai/ # AI 集成模块
│ │ ├── compose_issue.py # 期刊撰写
│ │ ├── extract_article_metadata.py # 元数据提取
│ │ ├── generate_infocard.py # AI 卡片生成
│ │ └── normalize_tags.py # 标签规范化
│ ├── commands/ # CLI 命令
│ │ ├── add.py # 添加文章
│ │ ├── generate.py # 生成期刊
│ │ ├── export.py # PDF 导出
│ │ ├── email.py # 邮件发送
│ │ └── sync.py # Obsidian 同步
│ ├── publishers/ # 导出发布器
│ │ ├── pdf.py # PDF 生成
│ │ ├── obsidian.py # Obsidian 同步
│ │ └── email.py # 邮件发布器
│ ├── scrapers/ # 网页抓取
│ ├── templates/ # Jinja2 模板
│ │ ├── issue.html.j2 # PDF 模板
│ │ └── email.html.j2 # 邮件模板
│ └── utils/ # 工具函数
├── tests/ # 测试套件
├── docs/ # 文档
│ ├── QUICKSTART.md
│ ├── EMAIL_FEATURE.md
│ └── AutoPaper-Design.md
└── issues/ # 生成的期刊
AutoPaper 支持两种模式,配置功能完全一致:
- CLI 模式:直接使用
autopaper命令 - Skill 模式:通过 Claude Code 使用(
/autopaper-*命令)
两种模式都支持通过 config.yaml 和 .env 文件进行完整配置。
CLI 模式:从当前工作目录加载配置。
Skill 模式:自动发现项目配置:
- 从当前目录向上搜索
config.yaml - 使用
AUTOPAPER_CONFIG_PATH环境变量(如果设置) - 回退到合理的默认值
这意味着 skill 可以在任何目录下工作,同时尊重你的项目配置。
在项目根目录创建 .env 文件:
# ============================================
# API 配置
# ============================================
# API Key - 支持 ANTHROPIC_API_KEY 和 ANTHROPIC_AUTH_TOKEN
ANTHROPIC_API_KEY=your_api_key_here
# API Base URL(可选 - 用于自定义端点或代理)
# 默认:https://api.anthropic.com
# 智谱AI (GLM-4) 示例:
ANTHROPIC_BASE_URL=https://open.bigmodel.cn/api/anthropic
# 模型配置(可选)
# ANTHROPIC_MODEL - 所有请求的默认模型
# ANTHROPIC_DEFAULT_SONNET_MODEL - Sonnet 专用请求
# ANTHROPIC_DEFAULT_OPUS_MODEL - Opus 专用请求
# ANTHROPIC_DEFAULT_HAIKU_MODEL - Haiku 专用请求
#
# GLM-4(智谱AI)示例:
ANTHROPIC_MODEL=glm-4.7
ANTHROPIC_DEFAULT_SONNET_MODEL=glm-4.7
#
# Claude(Anthropic)示例:
# ANTHROPIC_MODEL=claude-sonnet-4-5-20250929
# ANTHROPIC_DEFAULT_SONNET_MODEL=claude-sonnet-4-5-20250929
# ============================================
# 邮件配置 (SMTP)
# ============================================
# SMTP 服务器配置
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
EMAIL_PASSWORD=your_app_password
EMAIL_FROM=AutoPaper <[email protected]>
# 常用 SMTP 服务器:
# - Gmail: smtp.gmail.com:587
# - Outlook: smtp-mail.outlook.com:587
# - QQ 邮箱: smtp.qq.com:587
# - 163 邮箱: smtp.163.com:465
# 注意:Gmail 需要使用应用专用密码,不是普通密码
# 获取方式:Google 账户 > 安全性 > 两步验证 > 应用专用密码编辑 config.yaml 进行自定义:
# 数据库
database_path: data/db.sqlite
# Obsidian 同步
obsidian:
vault_path: ~/Documents/ObsidianVault
auto_paper_folder: AutoPaper
# 标签规范化
tag_normalization:
llm: [llm, large language model, gpt]
kubernetes: [k8s]AutoPaper 使用 Claude AI 实现:
- 元数据提取 - 标题、作者、摘要、关键点
- 标签分类 - 自动分类
- 期刊撰写 - 编辑评论、趋势分析
- 内容理解 - 智能文章策划
- AI 卡片生成 - 精美的信息图卡片,包含关键要点
AutoPaper 会自动为每个期刊生成 AI 风格的信息图卡片:
- 1200x675 横版格式(16:9)
- 现代深色主题,渐变强调色
- 智能总结 4 个关键点
- 专业设计,适合社交媒体分享
- 内嵌于 PDF 和邮件中
# 生成独立卡片
autopaper generate-card 2026-W05-tech
# 卡片自动包含在:
# - PDF 导出
# - 邮件 HTML 正文(作为 base64 图片)- 100 倍更快 - AI 缓存重复文章
- 10 倍更快 - 并发图片下载
- 自动重试 - 网络弹性
- 智能日志 - 性能监控
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
pytest
# 代码格式化
black autopaper/
isort autopaper/# 运行所有测试
pytest tests/
# 带覆盖率
pytest --cov=autopaper tests/MIT License - 详见 LICENSE 文件
构建于以下工具:
- Claude - AI 能力
- Typer - CLI 框架
- Rich - 终端格式化
- LibreOffice - PDF 生成(替代 WeasyPrint,更好地支持中文)
- Jinja2 - 模板引擎
- aiosmtplib - 异步 SMTP 客户端
AutoPaper 支持通过邮件发送生成的期刊:
- 富文本邮件 - 渲染 markdown,内嵌 AI 卡片
- PDF 附件 - 高质量 PDF,包含 AI 卡片
- Markdown 附件 - 源文件归档
- 文章链接汇总 - 快速访问所有原始文章链接
- 多收件人 - 一次发送给无限数量的收件人
- 主流服务商 - Gmail、Outlook、QQ 邮箱、163 邮箱等
# 1. 在 .env 中配置 SMTP
SMTP_HOST=smtp.gmail.com
SMTP_PORT=587
[email protected]
EMAIL_PASSWORD=your_app_password
EMAIL_FROM=AutoPaper <[email protected]>
# 2. 发送邮件
autopaper send-email 2026-W05-tech --to [email protected]📖 详细的邮件设置指南请参阅 docs/EMAIL_FEATURE.md
准备好自动化你的简报工作流了吗? 🚀
- 文档:docs/
- 邮件指南:docs/EMAIL_FEATURE.md
- 贡献指南:CONTRIBUTING.md
- 问题反馈:GitHub Issues