SnapCode-AI 是一款专为开发者打造的 AI 驱动代码截图美化工具,让你轻松将枯燥的代码片段转化为令人惊艳的精美图片,一键分享到各大社交平台。
| 痛点 | SnapCode-AI 的解决方案 |
|---|---|
| 😩 代码截图丑陋、不专业 | 🎨 21 款精心设计的主题,覆盖主流编辑器风格 |
| 😫 每个平台尺寸要求不同 | 📱 19 个社交平台预设,一键适配最佳尺寸 |
| 😰 语法高亮不完整 | 💻 支持 20+ 编程语言,精准着色 |
| 😭 安装依赖太多太麻烦 | ⚡ 零核心依赖,纯 Python 标准库实现 |
| 😵 工具太复杂不会用 | 🖱️ 交互式 Web UI + 简洁 CLI,上手即用 |
把代码变成艺术品,让分享成为一种享受。
从经典到潮流,总有一款适合你:
| 分类 | 主题 |
|---|---|
| 🌙 深色系 | Catppuccin Mocha、Dracula、Tokyo Night、Nord、Monokai、GitHub Dark、One Dark Pro、Gruvbox Dark、Solarized Dark、VS Code Dark、Atom One Dark、Palenight |
| ☀️ 浅色系 | GitHub Light、Solarized Light、One Light、VS Code Light、Atom One Light |
| 🌈 特色系 | Catppuccin Latte、Gruvbox Light、Snazzy、Ayu Dark |
完整支持以下语言的语法高亮:
Python · JavaScript · TypeScript · Go · Rust · Java · C · C++ · Ruby · PHP
Swift · Kotlin · HTML · CSS · JSON · SQL · Bash · Markdown · YAML · Dockerfile
一键生成适配各平台最佳尺寸的代码截图:
| 平台 | 分类 | 说明 |
|---|---|---|
| 🇨🇳 微信朋友圈 | 国内社交 | 1080×1080px,朋友圈最佳展示 |
| 📕 小红书 | 国内社交 | 1080×1440px,3:4 竖版卡片 |
| 📺 B 站 | 国内社交 | 1920×1080px,16:9 横版封面 |
| 🎵 抖音 | 国内社交 | 1080×1920px,9:16 竖版 |
| ❓ 知乎 | 国内社交 | 1200×675px,16:9 图文卡片 |
| 📢 微博 | 国内社交 | 1080×1080px,正方形配图 |
| 🐦 X / Twitter | 国际社交 | 1600×900px,Twitter 最佳比例 |
| 国际社交 | 1200×627px,LinkedIn 文章配图 | |
| 国际社交 | 1080×1080px,正方形帖子 | |
| 国际社交 | 1200×630px,Facebook 分享图 | |
| 🐙 GitHub README | 开发者 | 1280×640px,README Banner |
| 📝 DEV.to | 开发者 | 1000×420px,文章封面 |
| 🎥 YouTube | 视频平台 | 1280×720px,视频缩略图 |
| 📰 Medium | 博客平台 | 1200×630px,文章头图 |
| 📋 Discord | 社区平台 | 1200×675px,Discord 嵌入 |
| 💬 Telegram | 社区平台 | 1200×675px,消息预览 |
| 社区平台 | 1200×628px,帖子配图 | |
| 通讯工具 | 800×400px,邮件签名 | |
| 🌐 通用 | 通用场景 | 1200×800px,万能尺寸 |
内置 HTTP 服务器,提供实时预览的 Web 界面:
# 启动 Web UI,默认端口 8964
snapcode web
# 指定自定义端口
snapcode web --port 8080一行命令,搞定一切:
# 基础用法:美化代码截图
snapcode screenshot -f code.py
# 指定主题和平台预设
snapcode screenshot -f code.py --theme dracula --preset twitter-x
# 自定义窗口标题
snapcode screenshot -f code.py --title "My Awesome Code"
# 显示行号
snapcode screenshot -f code.py --line-numbers
# 高亮指定行
snapcode screenshot -f code.py --highlight 5,10,15-20
# 选择窗口样式
snapcode screenshot -f code.py --window-style macos纯 Python 标准库实现,无需安装任何第三方依赖:
pip install snapcode-ai # 仅此一步,开箱即用支持 macOS、Windows、Linux 三大操作系统的窗口外观:
snapcode screenshot -f code.py --window-style macos # macOS 风格
snapcode screenshot -f code.py --window-style windows # Windows 风格
snapcode screenshot -f code.py --window-style linux # Linux 风格- ✅ 行号显示 / 隐藏
- ✅ 指定行高亮(支持范围,如
5,10,15-20) - ✅ 自定义窗口标题
- ✅ HTML 输出格式
- ✅ 自定义输出路径
- Python 3.8 或更高版本
- pip 包管理器
方式一:通过 PyPI 安装(推荐)
pip install snapcode-ai方式二:从源码安装
git clone https://github.com/gitstq/snapcode-ai.git
cd snapcode-ai
pip install -e .# 1. 安装
pip install snapcode-ai
# 2. 创建一个示例代码文件
echo 'print("Hello, SnapCode-AI! 🚀")' > hello.py
# 3. 生成精美截图
snapcode screenshot -f hello.py --theme dracula --preset wechat
# 4. 查看生成的截图
# 输出文件默认保存在当前目录# 启动交互式 Web 界面
snapcode web --port 8964
# 打开浏览器访问
# http://localhost:8964核心命令,用于生成代码截图:
snapcode screenshot -f <文件路径> [选项]完整参数列表:
| 参数 | 缩写 | 说明 | 默认值 |
|---|---|---|---|
--file |
-f |
代码文件路径(必填) | - |
--theme |
-t |
主题名称 | dracula |
--preset |
-p |
社交平台预设 | wechat |
--output |
-o |
输出文件路径 | 自动生成 |
--title |
-T |
窗口标题 | 文件名 |
--line-numbers |
-n |
显示行号 | True |
--highlight |
-H |
高亮行(如 5,10,15-20) |
- |
--window-style |
-w |
窗口样式(macos/windows/linux) | macos |
--format |
-F |
输出格式(png/html) | png |
--padding |
-P |
内边距大小 | 40 |
使用示例:
# 生成适配 X/Twitter 的 Dracula 主题截图
snapcode screenshot -f main.py --theme dracula --preset twitter-x
# 生成小红书风格的代码卡片
snapcode screenshot -f app.ts --theme tokyo-night --preset xiaohongshu
# 生成 GitHub README Banner
snapcode screenshot -f config.json --theme github-dark --preset github-readme
# 高亮关键代码行
snapcode screenshot -f server.go --theme nord --highlight 10-25,30
# 导出为 HTML 格式
snapcode screenshot -f style.css --theme catppuccin-mocha --format html启动交互式 Web UI 服务器:
snapcode web [选项]| 参数 | 说明 | 默认值 |
|---|---|---|
--port |
服务端口 | 8964 |
--host |
绑定地址 | 127.0.0.1 |
查看所有可用主题:
snapcode themes输出示例:
🎨 Available Themes:
🌙 Dark: catppuccin-mocha, dracula, tokyo-night, nord, monokai, ...
☀️ Light: github-light, solarized-light, one-light, ...
🌈 Special: catppuccin-latte, gruvbox-light, snazzy, ...
查看所有可用平台预设:
snapcode presets输出示例:
📱 Available Presets:
🇨🇳 Domestic: wechat, xiaohongshu, bilibili, douyin, zhihu, weibo
🌍 Global: twitter-x, linkedin, instagram, facebook
👨💻 Developer: github-readme, dev-to
🎥 Video: youtube
📰 Blog: medium
💬 Community: discord, telegram, reddit
📧 Other: email, generic
查看所有支持的编程语言:
snapcode languages查看版本信息:
snapcode versionSnapCode-AI 的设计遵循以下核心原则:
-
零依赖哲学 📦
- 核心功能完全基于 Python 标准库实现
- 无需安装任何第三方包,降低环境配置成本
- 提升启动速度,减少潜在的安全风险
-
主题引擎解耦 🎨
- 主题与渲染引擎完全分离
- 采用 JSON 配置定义主题,便于社区贡献
- 支持用户自定义主题扩展
-
预设系统灵活 📱
- 社交平台预设独立于主题系统
- 预设定义了尺寸、圆角、阴影等布局参数
- 新增平台只需添加一个配置文件
-
双模式交互 🖱️
- CLI 模式:适合自动化脚本和 CI/CD 集成
- Web UI 模式:适合交互式探索和实时预览
- 两种模式共享同一套核心渲染引擎
- 21 款精美主题
- 20+ 编程语言语法高亮
- 19 个社交平台预设
- 交互式 Web UI
- CLI 命令行工具
- 零核心依赖
- 多种窗口样式
- 行号显示/隐藏、行高亮
- HTML 输出格式
- 自定义主题编辑器(Web UI 内置)
- 批量截图生成模式
- 更多编程语言支持(Scala、Elixir、Haskell 等)
- 渐变背景与自定义水印
- AI 智能主题推荐(根据代码内容自动匹配最佳主题)
- VS Code / JetBrains 插件集成
- API 服务模式(支持远程调用)
- 团队主题共享与协作
- 在线 SaaS 服务
- 代码动画 GIF 导出
- 深度编辑器集成(Cursor、Windsurf 等)
- 社区主题市场
# 1. 安装构建工具
pip install build twine
# 2. 构建分发包
python -m build
# 3. 检查包内容
twine check dist/*
# 4. 上传到 PyPI
twine upload dist/*FROM python:3.11-slim
WORKDIR /app
COPY . .
RUN pip install snapcode-ai
EXPOSE 8964
CMD ["snapcode", "web", "--port", "8964", "--host", "0.0.0.0"]构建与运行:
# 构建镜像
docker build -t snapcode-ai .
# 运行容器
docker run -p 8964:8964 snapcode-ai#!/bin/bash
# deploy.sh - SnapCode-AI 快速部署脚本
echo "🚀 正在部署 SnapCode-AI..."
# 安装
pip install snapcode-ai
# 验证安装
snapcode version
echo "✅ 部署完成!"
echo "💡 运行 'snapcode web' 启动 Web UI"
echo "💡 运行 'snapcode screenshot -f your_code.py' 生成截图"snapcode-ai/
├── snapcode_ai/ # 核心包
│ ├── __init__.py
│ ├── cli.py # CLI 入口
│ ├── web.py # Web UI 服务器
│ ├── renderer/ # 渲染引擎
│ │ ├── screenshot.py # 截图渲染
│ │ └── html.py # HTML 渲染
│ ├── themes/ # 主题定义
│ │ ├── dark/ # 深色主题
│ │ └── light/ # 浅色主题
│ ├── presets/ # 平台预设
│ ├── languages/ # 语法高亮定义
│ └── utils/ # 工具函数
├── tests/ # 测试
├── setup.py # 安装配置
├── pyproject.toml # 项目配置
├── Dockerfile # Docker 配置
└── README.md # 本文件
我们欢迎并感谢每一位贡献者!无论你是修复了一个 Bug、添加了一个新主题,还是改进了文档,每一份贡献都让 SnapCode-AI 变得更好。
1. Fork 并克隆项目
git clone https://github.com/gitstq/snapcode-ai.git
cd snapcode-ai2. 创建功能分支
git checkout -b feature/your-feature-name3. 开发与测试
# 安装开发依赖
pip install -e ".[dev]"
# 运行测试
python -m pytest tests/
# 代码格式化
python -m black snapcode_ai/4. 提交代码
git add .
git commit -m "feat: 添加新功能描述"
git push origin feature/your-feature-name5. 发起 Pull Request
在 GitHub 上创建 Pull Request,描述你的改动内容。
- 在
snapcode_ai/themes/目录下创建主题配置文件 - 定义背景色、前景色、语法高亮色等参数
- 提交 PR 并附带主题预览截图
- 在
snapcode_ai/presets/目录下创建预设配置文件 - 定义目标尺寸、圆角、阴影等参数
- 提交 PR 并说明平台适配细节
- 遵循 Conventional Commits 提交规范
- 代码风格遵循 PEP 8
- 添加充分的注释和文档
- 确保所有测试通过
本项目基于 MIT License 开源。
MIT License
Copyright (c) 2024 gitstq
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Made with ❤️ by gitstq
如果你觉得 SnapCode-AI 对你有帮助,请给项目一个 ⭐ Star!
⭐ Star this repo if you find it helpful!
SnapCode-AI 是一款專為開發者打造的 AI 驅動程式碼截圖美化工具,讓你輕鬆將枯燥的程式碼片段轉化為令人驚豔的精美圖片,一鍵分享到各大社群平台。
| 痛點 | SnapCode-AI 的解決方案 |
|---|---|
| 😩 程式碼截圖醜陋、不專業 | 🎨 21 款精心設計的主題,覆蓋主流編輯器風格 |
| 😫 每個平台尺寸要求不同 | 📱 19 個社群平台預設,一鍵適配最佳尺寸 |
| 😰 語法高亮不完整 | 💻 支援 20+ 程式語言,精準著色 |
| 😭 安裝依賴太多太麻煩 | ⚡ 零核心依賴,純 Python 標準函式庫實作 |
| 😵 工具太複雜不會用 | 🖱️ 互動式 Web UI + 簡潔 CLI,上手即用 |
把程式碼變成藝術品,讓分享成為一種享受。
從經典到潮流,總有一款適合你:
| 分類 | 主題 |
|---|---|
| 🌙 深色系 | Catppuccin Mocha、Dracula、Tokyo Night、Nord、Monokai、GitHub Dark、One Dark Pro、Gruvbox Dark、Solarized Dark、VS Code Dark、Atom One Dark、Palenight |
| ☀️ 淺色系 | GitHub Light、Solarized Light、One Light、VS Code Light、Atom One Light |
| 🌈 特色系 | Catppuccin Latte、Gruvbox Light、Snazzy、Ayu Dark |
完整支援以下語言的語法高亮:
Python · JavaScript · TypeScript · Go · Rust · Java · C · C++ · Ruby · PHP
Swift · Kotlin · HTML · CSS · JSON · SQL · Bash · Markdown · YAML · Dockerfile
一鍵生成適配各平台最佳尺寸的程式碼截圖:
| 平台 | 分類 | 說明 |
|---|---|---|
| 🇨🇳 微信朋友圈 | 國內社群 | 1080×1080px,朋友圈最佳展示 |
| 📕 小紅書 | 國內社群 | 1080×1440px,3:4 竪版卡片 |
| 📺 B 站 | 國內社群 | 1920×1080px,16:9 橫版封面 |
| 🎵 抖音 | 國內社群 | 1080×1920px,9:16 竪版 |
| ❓ 知乎 | 國內社群 | 1200×675px,16:9 圖文卡片 |
| 📢 微博 | 國內社群 | 1080×1080px,正方形配圖 |
| 🐦 X / Twitter | 國際社群 | 1600×900px,Twitter 最佳比例 |