把苏神(科学空间 / 苏剑林)的写作风格、思考深度、十余年博客积累, 连同你手头的论文与代码,一起喂给 AI——让它以"赛博苏神"的口吻,陪你做深度学习前沿的调研与推导。
说人话:这是一个以"课题"为单位的科研工作流。你把材料(苏神博客 + arxiv 论文 + 代码)
丢进一个课题目录,kx 把上下文整理成一份给 Claude 的调研 prompt,Claude 写出带推导的
综述,再一键渲染成 PDF。所有苏神博客统一存在一个本地数据库里,课题之间零重复引用。
kx new → (填 reading.md / arxiv) → kx learn → 交给 Claude → kx pdf
pip install -e . # 需要 PDF 时:pip install -e ".[pdf]"
echo 'eval "$(kx shell-init)"' >> ~/.bashrc # zsh 用 ~/.zshrc;让 `kx new` 后能自动 cd
source ~/.bashrc
python -m playwright install chromium # 仅 PDF 需要
依赖:Python ≥ 3.10、requests、beautifulsoup4、markdown-it-py;PDF 另需 playwright + Chromium。
kx 通过环境变量或 kx.toml 标记定位数据库与课题目录(在本仓库内开箱即用):
# 跨机器 / 多用户共享同一个数据库时:
export KX_KEXUE_DB=/mnt/tmpnfs/tian.xie/Cyber_Su/kexue.me
export KX_PROJECTS=$HOME/research
| 命令 | 作用 |
|---|---|
kx new <name> | 新建课题骨架并自动进入 |
kx arxiv [url] [名] | 下载一篇 arxiv 到 arxiv/;无 url = 按 arxiv/sources.tsv 补齐 |
kx sync | 从 content.html 刷新苏神全量博客目录(看有没有新文章) |
kx fetch [url...] | 抓正文入库;无 url = 抓全部未下载;有 url = 只抓这几篇 |
kx learn [--topic T] | 读全部上下文,生成"逐段写入"的调研 prompt 到 prompt/ |
kx pdf [note.md] | 把 learn/*.md 渲染成 pdf/(默认全部) |
kx shell-init | 打印 shell 函数(供 eval) |
new/sync/fetch/shell-init 与位置无关;arxiv/learn/pdf 作用于"当前课题"
(从 cwd 上溯找 Research_Project/<name>)——所以 kx new 后的自动 cd 很关键。
Research_Project/<name>/
kexue/reading.md # 只放一份 url 清单:你想让 Claude 读的苏神文章
arxiv/ # 论文 tex 源码(kx arxiv 下载)+ sources.tsv 清单
code/ # 相关代码、实验脚本
prompt/ # kx learn 生成的调研 prompt(给 Claude 的指令)
learn/ # Claude 读完材料后写出的调研 Markdown
pdf/ # 由 learn/*.md 渲染的 PDF
kexue/ 不再保存文章副本,只放 reading.md;kx learn 时按 url 解析到数据库里的
那一份 markdown,多个课题引用同一篇也只有一份。
kx new linear_attention # 1. 建课题并进入
# 2. 准备上下文
kx arxiv https://arxiv.org/abs/2409.20325 old_norm # 论文(或填 arxiv/sources.tsv 后 kx arxiv)
printf 'https://kexue.fm/archives/11693\n' >> kexue/reading.md # 苏神文章 url
# 代码直接放进 code/
kx learn --topic 线性注意力综述 # 3. 生成调研 prompt → prompt/线性注意力综述.md
# 把打印出的 prompt 交给 Claude;它内置"先大纲、逐节追加、禁止整篇重写"协议,
# 避免一次写太多卡死,产出落到 learn/线性注意力综述_review.md
kx pdf # 4. learn/*.md → pdf/
偶尔维护数据库:kx sync(看有没有新博客)、kx fetch(把缺的正文抓全)。
kexue.me/:苏神博客全量本地档案,扁平、无分类、索引驱动。
html/<id>-<标题>.html、markdown/<id>-<标题>.md、index.json({id: {title,url,file}})。kx sync 拉全量目录;kx fetch 补全正文;kx learn 缺哪篇自动抓哪篇。kexue/reading.md:只声明要读哪些 url,kx learn 解析到数据库那一份,零重复。细节见 kexue.me/README.md。
Cyber_Su/
kx/ # kx 命令的 Python 包(CLI + 抓取/转换/渲染)
kexue.me/ # 苏神博客数据库(html/ markdown/ index.json)
Research_Project/# 各课题
tests/ # 转换器单元测试
pyproject.toml kx.toml README.md
Research_Project/<name>/,六件套结构。learn/,prompt 放 prompt/,可分享版放 pdf/。code/ 时去掉其 .git/(已在 .gitignore 忽略示例)。kx fetch 首次会抓上千篇,之后增量很快。1 commits
HTML
97.2%
TeX
2.3%
把苏神(科学空间 / 苏剑林)的写作风格、思考深度、十余年博客积累, 连同你手头的论文与代码,一起喂给 AI——让它以"赛博苏神"的口吻,陪你做深度学习前沿的调研与推导。
说人话:这是一个以"课题"为单位的科研工作流。你把材料(苏神博客 + arxiv 论文 + 代码)
丢进一个课题目录,kx 把上下文整理成一份给 Claude 的调研 prompt,Claude 写出带推导的
综述,再一键渲染成 PDF。所有苏神博客统一存在一个本地数据库里,课题之间零重复引用。
kx new → (填 reading.md / arxiv) → kx learn → 交给 Claude → kx pdf
pip install -e . # 需要 PDF 时:pip install -e ".[pdf]"
echo 'eval "$(kx shell-init)"' >> ~/.bashrc # zsh 用 ~/.zshrc;让 `kx new` 后能自动 cd
source ~/.bashrc
python -m playwright install chromium # 仅 PDF 需要
依赖:Python ≥ 3.10、requests、beautifulsoup4、markdown-it-py;PDF 另需 playwright + Chromium。
kx 通过环境变量或 kx.toml 标记定位数据库与课题目录(在本仓库内开箱即用):
# 跨机器 / 多用户共享同一个数据库时:
export KX_KEXUE_DB=/mnt/tmpnfs/tian.xie/Cyber_Su/kexue.me
export KX_PROJECTS=$HOME/research
| 命令 | 作用 |
|---|---|
kx new <name> | 新建课题骨架并自动进入 |
kx arxiv [url] [名] | 下载一篇 arxiv 到 arxiv/;无 url = 按 arxiv/sources.tsv 补齐 |
kx sync | 从 content.html 刷新苏神全量博客目录(看有没有新文章) |
kx fetch [url...] | 抓正文入库;无 url = 抓全部未下载;有 url = 只抓这几篇 |
kx learn [--topic T] | 读全部上下文,生成"逐段写入"的调研 prompt 到 prompt/ |
kx pdf [note.md] | 把 learn/*.md 渲染成 pdf/(默认全部) |
kx shell-init | 打印 shell 函数(供 eval) |
new/sync/fetch/shell-init 与位置无关;arxiv/learn/pdf 作用于"当前课题"
(从 cwd 上溯找 Research_Project/<name>)——所以 kx new 后的自动 cd 很关键。
Research_Project/<name>/
kexue/reading.md # 只放一份 url 清单:你想让 Claude 读的苏神文章
arxiv/ # 论文 tex 源码(kx arxiv 下载)+ sources.tsv 清单
code/ # 相关代码、实验脚本
prompt/ # kx learn 生成的调研 prompt(给 Claude 的指令)
learn/ # Claude 读完材料后写出的调研 Markdown
pdf/ # 由 learn/*.md 渲染的 PDF
kexue/ 不再保存文章副本,只放 reading.md;kx learn 时按 url 解析到数据库里的
那一份 markdown,多个课题引用同一篇也只有一份。
kx new linear_attention # 1. 建课题并进入
# 2. 准备上下文
kx arxiv https://arxiv.org/abs/2409.20325 old_norm # 论文(或填 arxiv/sources.tsv 后 kx arxiv)
printf 'https://kexue.fm/archives/11693\n' >> kexue/reading.md # 苏神文章 url
# 代码直接放进 code/
kx learn --topic 线性注意力综述 # 3. 生成调研 prompt → prompt/线性注意力综述.md
# 把打印出的 prompt 交给 Claude;它内置"先大纲、逐节追加、禁止整篇重写"协议,
# 避免一次写太多卡死,产出落到 learn/线性注意力综述_review.md
kx pdf # 4. learn/*.md → pdf/
偶尔维护数据库:kx sync(看有没有新博客)、kx fetch(把缺的正文抓全)。
kexue.me/:苏神博客全量本地档案,扁平、无分类、索引驱动。
html/<id>-<标题>.html、markdown/<id>-<标题>.md、index.json({id: {title,url,file}})。kx sync 拉全量目录;kx fetch 补全正文;kx learn 缺哪篇自动抓哪篇。kexue/reading.md:只声明要读哪些 url,kx learn 解析到数据库那一份,零重复。细节见 kexue.me/README.md。
Cyber_Su/
kx/ # kx 命令的 Python 包(CLI + 抓取/转换/渲染)
kexue.me/ # 苏神博客数据库(html/ markdown/ index.json)
Research_Project/# 各课题
tests/ # 转换器单元测试
pyproject.toml kx.toml README.md
Research_Project/<name>/,六件套结构。learn/,prompt 放 prompt/,可分享版放 pdf/。code/ 时去掉其 .git/(已在 .gitignore 忽略示例)。kx fetch 首次会抓上千篇,之后增量很快。1 commits
HTML
97.2%
TeX
2.3%