Snyk CLI实战指南:从精准漏洞扫描到CI/CD集成,实现开发安全左移
1. 项目概述为什么开发者需要自己的安全扫描工具链在今天的开发流程里安全左移已经从一个时髦的概念变成了生存必需品。我见过太多团队直到上线前最后一刻才把代码丢给安全部门做黑盒扫描结果就是项目延期、紧急打补丁、甚至带着已知高危漏洞硬着头皮发布。这种被动救火的模式在快速迭代的敏捷和DevOps环境下根本行不通。问题的核心在于安全工具和开发者的日常工作流是割裂的。开发者需要的是一个能无缝集成到本地IDE、CI/CD流水线并且能说“开发语言”的工具——它得能理解你的package.json、pom.xml、requirements.txt而不是仅仅给你一份充满误报和晦涩CVE编号的报告。这就是Snyk CLI的价值所在。它不是一个庞大的、需要复杂部署的企业级平台而是一个命令行工具让你在写代码、拉取依赖、甚至提交commit的那一刻就能以开发者的视角发现安全问题。它支持超过30种编程语言和框架从主流的Java、JavaScript、Python、Go到.NET、Ruby、PHP再到像Dockerfile、Kubernetes清单、Terraform这样的基础设施即代码文件。这意味着无论你的技术栈多么异构或者项目里混用了多少种工具你都可以用同一种方法论、同一种命令去进行安全检查。对我而言引入Snyk CLI最大的转变是安全反馈从“事后报告”变成了“即时提示”。它让我在npm install一个热门库时就能立刻知道这个库的某个间接依赖存在漏洞让我在编写Dockerfile选择基础镜像时能避开那些包含已知漏洞的版本。这种将安全能力赋予每一位开发者的做法才是构建真正安全软件的基石。2. 核心需求解析从“有什么漏洞”到“如何修复它”很多安全工具止步于发现问题但开发者真正需要的是解决方案。Snyk CLI的设计深刻理解了这一点它的核心需求可以分解为三个层次精准发现、上下文关联和可操作的修复。2.1 精准发现超越简单的版本匹配传统的漏洞扫描器往往只做版本号匹配如果你的lodash版本是4.17.15而漏洞数据库里标记4.17.0到4.17.20版本存在某个漏洞那么你就会收到一个告警。这种方法误报率很高因为漏洞可能只存在于特定的函数调用路径中而你的代码根本没有用到那部分功能。Snyk采用了更智能的方法。它通过代码分析Code Analysis来理解你的项目结构并通过软件成分分析Software Composition Analysis, SCA深入解析你的依赖树。例如对于JavaScript项目Snyk CLI不仅会检查package.json中的直接依赖还会递归分析node_modules里所有传递依赖即依赖的依赖的实际情况。更重要的是它会结合漏洞数据库判断漏洞函数是否在你的代码中被实际调用。如果漏洞函数存在于库中但你的代码执行路径永远触及不到它Snyk可能会将其标记为低优先级或提供更精确的上下文。这极大地减少了开发者的噪音让你能聚焦在真正有风险的问题上。2.2 上下文关联漏洞在真实环境中的风险一个漏洞的危险程度不仅取决于它的CVSS评分更取决于它在你特定环境中的暴露面。Snyk CLI会尝试关联上下文信息来评估风险。运行时上下文对于容器镜像Snyk能分析正在运行的进程、开放的端口和已安装的软件包判断漏洞是否在容器运行时可达。配置上下文扫描Kubernetes YAML文件时它会检查安全上下文Security Context、是否以root身份运行、镜像拉取策略等配置这些配置会直接影响漏洞被利用的难易程度。依赖路径报告会清晰展示漏洞引入的路径。例如它会告诉你漏洞存在于transitive-library1.2.3它是由your-direct-dependency4.5.6引入的而后者又被你的项目直接依赖。这个依赖链信息对于制定修复策略至关重要。2.3 可操作的修复提供“一键修复”的路径这是Snyk CLI最受开发者欢迎的特性之一。它不仅仅说“你有问题”还会告诉你“如何解决”。自动修复Auto-fix对于许多生态系统的直接依赖如npm、Yarn、pipSnyk可以直接修改你的清单文件如package.json、requirements.txt将存在漏洞的依赖版本升级到一个已知的安全版本。你只需要运行snyk fix并审查变更即可。修复建议Remediation Advice对于无法自动修复的情况如传递依赖或暂无安全版本Snyk会提供详细的建议。这可能包括升级路径建议将上层依赖升级到某个版本该版本使用了安全的传递依赖。补丁Patch对于部分开源漏洞Snyk社区会提供向后兼容的补丁。Snyk CLI可以自动应用这些补丁在不升级主版本的情况下消除漏洞。变通方案提供临时的配置修改或代码调整建议以缓解风险。优先级排序结合漏洞的严重性、项目的被利用可能性EPSS分数以及你的环境上下文Snyk会对问题进行分类Critical, High, Medium, Low帮助你决定修复的先后顺序。注意虽然snyk fix非常方便但在应用于生产项目前务必在本地运行测试。依赖版本升级可能引入API变更导致你的应用行为改变或测试失败。最佳实践是先在一个特性分支上运行修复通过CI流水线进行全面测试后再合并。3. 环境准备与工具安装跨平台一步到位开始使用Snyk CLI前你需要完成两件事安装CLI工具本身以及进行身份认证以获取API令牌。这个过程在全平台macOS, Linux, Windows上都相当简单。3.1 安装Snyk CLI推荐使用包管理器进行安装这样可以方便地后续更新。macOS (使用Homebrew):brew tap snyk/tap brew install snykLinux / macOS (使用Node.js的npm或yarn):# 使用npm进行全局安装 npm install -g snyk # 或者使用yarn yarn global add snykWindows (使用PowerShell):# 使用npm确保已安装Node.js npm install -g snyk # 或者使用独立的安装脚本适用于无Node环境 # 可从Snyk官方文档获取最新的PowerShell安装命令使用独立安装脚本通用:curl -sL https://static.snyk.io/cli/latest/snyk-linux -o snyk chmod x ./snyk sudo mv ./snyk /usr/local/bin/安装后运行snyk --version验证安装是否成功。3.2 身份认证与获取令牌Snyk CLI需要与Snyk的后端服务通信来获取漏洞数据库和生成报告因此需要进行认证。运行认证命令snyk auth执行这个命令后CLI会自动打开你的默认浏览器跳转到Snyk的认证页面。如果你没有Snyk账户可以在此页面免费注册。Snyk为个人和小型团队提供了免费的套餐包含基础的漏洞扫描功能对于大多数开发者起步完全足够。完成浏览器认证在浏览器中登录或注册你的Snyk账户后页面会提示认证成功。此时CLI会自动获取并保存一个API令牌到本地。验证认证状态你可以运行snyk config get api来查看当前配置的API令牌令牌会被部分隐藏或者直接运行一个测试命令如snyk test需要在项目目录下看是否能正常返回结果。实操心得这个API令牌默认存储在~/.config/configstore/snyk.json类Unix系统或%USERPROFILE%\.config\configstore\snyk.jsonWindows中。在Docker容器内或CI/CD服务器如GitHub Actions, GitLab CI中使用时你需要通过环境变量SNYK_TOKEN来传递这个令牌而不是交互式认证。你可以从Snyk网站的用户设置页面获取这个令牌。4. 核心命令详解与多语言项目扫描实战Snyk CLI的命令设计非常直观核心命令只有几个但通过组合和不同的参数可以覆盖从简单测试到深度集成的所有场景。下面我们以几个典型的技术栈为例进行实战演练。4.1 基础扫描snyk test命令深度解析snyk test是使用最频繁的命令用于扫描项目依赖并列出发现的漏洞。它的行为会根据当前目录下的项目类型自动适配。场景一扫描一个Node.js项目# 进入你的Node.js项目根目录包含package.json cd /path/to/your/nodejs-project # 执行测试 snyk test输出解读 CLI会首先识别出这是一个npm项目然后解析package.json和node_modules如果存在。输出会是一个结构化的表格包含漏洞信息每个漏洞的标题、CVE ID、CVSS分数、严重等级。引入路径清晰显示从你的项目到漏洞库的完整依赖链。修复建议会告诉你“升级express到4.18.0版本可修复此问题”。摘要总结漏洞数量、严重等级分布。场景二扫描一个Python项目cd /path/to/your/python-project # 如果项目使用requirements.txt snyk test --filerequirements.txt # 如果项目使用Pipfile snyk test --filePipfile # 如果项目使用poetry snyk test --filepyproject.toml注意对于Python项目明确指定清单文件--file通常更可靠因为Python的依赖管理方式多样。Snyk CLI会尝试自动检测但在虚拟环境或复杂项目中手动指定可以避免混淆。场景三扫描一个Docker镜像# 扫描本地构建的镜像 snyk test --docker your-image-name:tag # 扫描远程仓库中的镜像需要先docker login snyk test --docker registry.hub.docker.com/your-org/your-image:tagDocker扫描非常强大它会解构镜像的每一层分析操作系统包如apt, apk, yum安装的和语言特定的依赖给出一个综合报告。这对于确保你的基础镜像和运行时环境安全至关重要。4.2 高级参数与报告生成snyk test有很多参数来定制扫描行为这里介绍几个最实用的--severity-thresholdhigh只显示严重性为High及以上的漏洞在CI中用于设置质量门禁。--json以JSON格式输出结果。这是与CI/CD工具集成的关键。你可以将JSON输出重定向到文件然后用jq等工具解析根据漏洞数量决定是否让流水线失败。snyk test --json snyk-report.json # 检查是否有严重或高危漏洞 if jq -e .vulnerabilities[] | select(.severity critical or .severity high) snyk-report.json /dev/null; then echo 发现高危漏洞流水线失败 exit 1 fi--sarif输出SARIF格式的报告这是一种标准的安全结果格式可以直接集成到GitHub Advanced Security的代码扫描警报中。--all-projects在Monorepo或包含多个子项目的目录中此参数会让Snyk自动发现并扫描所有支持的项目。例如一个目录下同时有前端Node.js和后端Go项目一条命令即可全部扫描。4.3 修复与监控snyk fix与snyk monitorsnyk fix如前所述这是一个“魔法”命令。在支持的项目类型中运行snyk fix它会尝试自动升级依赖、应用补丁来修复找到的漏洞。运行后务必检查git diff确认修改符合预期。snyk monitor这个命令将你项目的依赖快照上传到Snyk的云端平台创建一个持续监控的项目。之后即使你不主动扫描Snyk也会在后台持续监控你的依赖当有新漏洞披露影响到你的项目时它会通过邮件、Slack等方式通知你。这对于已上线的项目进行长期健康管理非常有用。snyk monitor执行后CLI会给出一个在Snyk网页端查看该项目的URL。5. 集成到开发工作流从本地到CI/CD工具的价值在于融入流程。将Snyk CLI集成到你的日常开发中才能实现真正的安全左移。5.1 本地IDE集成以VS Code为例虽然CLI强大但开发者大部分时间在IDE里。Snyk提供了主流IDE的插件如VS Code, IntelliJ IDEA。安装Snyk Extension后你可以在编辑器中实时查看漏洞在package.json或requirements.txt文件中有问题的依赖项下方会直接显示波浪线和提示。查看详情鼠标悬停即可看到漏洞描述、严重性和修复建议。一键修复某些插件支持快速修复操作点击即可应用Snyk提供的升级建议。扫描打开的文件对单个文件进行快速安全检查。这种“编码即见安全”的体验能将安全思维无缝嵌入开发过程。5.2 集成到Git预提交钩子Pre-commit Hook使用像pre-commit这样的框架可以在代码提交前自动运行安全检查防止有漏洞的依赖被提交到仓库。# .pre-commit-config.yaml 示例 repos: - repo: https://github.com/snyk/snyk-pre-commit rev: v1.0.0 # 使用最新版本 hooks: - id: snyk args: [--severity-thresholdhigh] # 只检查高危及以上 files: ^(package\.json|requirements\.txt|Pipfile|pyproject\.toml|.*\.tf|Dockerfile.*)$这样每次执行git commit时都会自动触发对相关文件的Snyk扫描如果发现高危漏洞提交会被阻止。5.3 集成到CI/CD流水线以GitHub Actions为例这是保证交付物安全的关键环节。在CI中集成Snyk可以实现每次代码推送或合并请求都进行自动化安全测试。# .github/workflows/snyk-security.yml name: Snyk Security Scan on: [push, pull_request] jobs: security: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkoutv4 - name: Set up Node.js (根据你的项目语言调整) uses: actions/setup-nodev4 with: node-version: 18 - name: Install dependencies (示例为Node项目) run: npm ci - name: Run Snyk to check for vulnerabilities uses: snyk/actions/nodemaster env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} with: args: --severity-thresholdhigh --sarif-file-outputsnyk-results.sarif - name: Upload SARIF results to GitHub Code Scanning uses: github/codeql-action/upload-sarifv3 if: always() # 即使Snyk失败也上传结果 with: sarif_file: snyk-results.sarif这个工作流做了几件事在每次推送或PR时触发。安装项目依赖。运行Snyk扫描并设置只报告高危及以上漏洞--severity-thresholdhigh输出SARIF格式报告。将SARIF报告上传到GitHub的代码扫描Code Scanning界面在那里你可以像处理代码质量问题一样查看和管理安全漏洞。实操心得在CI中建议使用--severity-threshold来设置一个合理的“质量门禁”。例如你可以让“Critical”漏洞导致构建失败而“High”漏洞只产生警告但允许继续这样既能保证安全又不会因为中低危漏洞过多而阻塞开发流程。同时将结果上传到GitHub Code Scanning或GitLab SAST报告能让安全问题和代码问题在同一个平台被追踪管理极大提升效率。6. 常见问题排查与性能优化技巧在实际使用中你可能会遇到一些问题。以下是一些常见场景的排查思路和优化建议。6.1 扫描速度慢或超时问题扫描大型项目如庞大的node_modules或包含很多子项目的Monorepo时耗时过长。排查与解决使用--detection-depth默认情况下Snyk会递归扫描所有子目录。如果你知道依赖只在特定深度可以限制扫描深度以加快速度。排除无关目录使用.snyk策略文件或--exclude参数忽略build/、dist/、.git/等与依赖无关的目录。确保依赖已安装对于语言类项目Node.js, PythonSnyk需要读取实际的依赖文件如node_modules。如果依赖未安装Snyk会先尝试安装这非常慢。最佳实践是在运行snyk test前先使用包管理器的锁定文件安装依赖如npm ci或pip install -r requirements.txt。网络问题Snyk CLI需要访问Snyk的API。检查网络连接对于企业内网可能需要配置代理通过环境变量HTTPS_PROXY/HTTP_PROXY。6.2 误报或漏洞状态不匹配问题报告了一个漏洞但你认为它不影响你的项目例如漏洞函数未被调用。排查与解决审查依赖路径仔细阅读Snyk报告中“引入路径”部分。有时漏洞存在于一个很深的传递依赖中而你的直接依赖的更高版本已经解决了这个问题。修复方案可能就是升级你的直接依赖。使用.snyk策略文件进行忽略如果经过评估确认某个漏洞在特定版本或特定路径下对你的应用没有实际风险你可以通过策略文件将其忽略。务必附上忽略理由和过期时间以便未来复查。# .snyk 文件示例 patch: {} ignore: SNYK-JS-LODASH-567746: - *: reason: Vulnerable function not used in our codebase. Reviewed by team on 2023-10-27. expires: 2024-01-27T00:00:00.000Z检查漏洞数据库点击Snyk报告中的漏洞ID链接跳转到Snyk官网查看该漏洞的详细描述、利用条件和修复方案获取更全面的上下文。6.3 在Docker构建过程中集成扫描将Snyk扫描直接嵌入Dockerfile的多阶段构建可以打造更安全的镜像构建流程。# 第一阶段构建阶段 FROM node:18-alpine AS builder WORKDIR /app COPY package*.json ./ RUN npm ci --onlyproduction COPY . . RUN npm run build # 第二阶段使用Snyk扫描构建产物 FROM snyk/snyk:node AS scanner WORKDIR /app COPY --frombuilder /app /app # 假设SNYK_TOKEN已作为构建参数传入 ARG SNYK_TOKEN RUN snyk test --severity-thresholdhigh --orgmy-org --docker-imagemy-app:latest # 第三阶段最终运行阶段 FROM node:18-alpine WORKDIR /app COPY --frombuilder /app /app USER node EXPOSE 3000 CMD [node, server.js]在这个Dockerfile中我们使用了一个包含Snyk CLI的官方扫描镜像作为独立的扫描阶段。在CI流水线中构建时传入SNYK_TOKEN如果扫描发现高危漏洞构建会在这一阶段失败从而阻止生成不安全的镜像。6.4 管理多个项目与组织当你需要管理公司或团队内的数十上百个项目时Snyk的组织Organization和项目Project概念就非常有用。--org参数在snyk test或snyk monitor命令中指定组织名称可以将项目关联到Snyk平台上的特定组织方便在网页端按团队、业务线进行统一管理和查看仪表盘。统一配置通过环境变量SNYK_ORG可以设置默认组织避免每次输入。批量操作Snyk提供了API和Beta版的批量导入工具可以方便地将大量现有项目导入到平台进行监控。将Snyk CLI融入你的工具链本质上是在培养一种开发习惯像对待编译错误和单元测试失败一样对待安全漏洞。它提供的即时、可操作的反馈让安全修复变成了开发流程中一个自然、高效的环节而不是项目尾声令人头疼的审计障碍。从我个人的经验来看坚持在本地和CI中使用它不仅能显著降低应用的安全风险更能潜移默化地提升整个团队对第三方依赖安全性的认知和警惕性。

相关新闻

基于oslo框架实现WebAuthn无密码登录:从原理到实战部署

基于oslo框架实现WebAuthn无密码登录:从原理到实战部署

1. 项目概述:为什么我们需要WebAuthn与无密码登录?如果你最近还在为管理几十个不同网站的密码而头疼,或者对短信验证码的延迟和安全隐患感到不安,那么“无密码登录”这个概念对你来说绝对是个福音。我最近花了不少时间&#xff0c…

2026/9/27 1:33:29 阅读更多 →
Spring框架核心设计:IoC容器与依赖注入原理详解

Spring框架核心设计:IoC容器与依赖注入原理详解

1. Spring框架的核心设计哲学 Spring框架自2003年诞生以来,已经成为Java企业级开发的事实标准。它的成功并非偶然,而是源于Rod Johnson对传统J2EE开发模式的深刻反思和创新设计。Spring的核心设计理念可以概括为三点:轻量级、非侵入式和面向接…

2026/10/14 7:53:25 阅读更多 →
基于Arduino的自动喂鱼器DIY:从硬件选型到代码实现全解析

基于Arduino的自动喂鱼器DIY:从硬件选型到代码实现全解析

1. 项目概述与核心价值养鱼的朋友大概都遇到过这样的烦恼:计划好的短期出差或旅行,家里的鱼缸就成了最大的牵挂。找人上门喂食,麻烦别人不说,还欠人情;不喂吧,又担心鱼儿饿着。市面上的自动喂鱼器&#xff…

2026/10/2 2:47:58 阅读更多 →

最新新闻

Agent任务规划与推理模式重构:从过度规划到高效执行

Agent任务规划与推理模式重构:从过度规划到高效执行

一个任务丢给 Agent,很多时候都会得到一份漂亮但没法落地的计划。我在调 Pi agent 的时候就撞上过这类问题:让它做稍微复杂一点的事,它要么把简单任务拆出十来个步骤,要么在执行中反复重新评估,迟迟不调用工具&#xf…

2026/10/14 7:52:44 阅读更多 →
Spring Boot + Spring AI 实现生产级Java个人Agent实践

Spring Boot + Spring AI 实现生产级Java个人Agent实践

做AI Agent这一年多,我最常被问的一句话是:Java能做Agent吗?问这个问题的人,基本都是后端团队的技术负责人,系统跑在Spring Boot上,团队没人愿意为了一两个智能体功能单独养一套Python服务。我的回答一直是…

2026/10/14 7:52:44 阅读更多 →
后门漏洞排查与防御:从netstat到系统加固的实用指南

后门漏洞排查与防御:从netstat到系统加固的实用指南

在新手群里混久了,发现一个很有意思的现象:一说"后门漏洞",大多数人第一反应是那些好莱坞电影里的黑客镜头——敲几行代码,屏幕绿光一闪,电脑就沦陷了。但实际上,我带过的几个刚入行的朋友&#…

2026/10/14 7:52:44 阅读更多 →
MATLAB信号处理高频函数实战:FFT、滤波器与频谱分析详解

MATLAB信号处理高频函数实战:FFT、滤波器与频谱分析详解

做信号处理这行,MATLAB里那几十个函数,真正每天抓在手里用的其实就那么十来个。这篇是这个系列的第三篇,我打算把平时处理振动、音频、生物电这类实测信号时用得最频繁的函数挨个过一遍,不按教科书目录念定义,只讲这些…

2026/10/14 7:52:44 阅读更多 →
基于Java与Spring AI的生产级Personal Agent构建实践

基于Java与Spring AI的生产级Personal Agent构建实践

做这个项目之前,我的任务清单其实是这样的:让 Java 技术栈在生产环境里跑起一个真正“能干活的” Personal Agent,而不是又一个只能聊天的 API 壳子。折腾了一个多月,总算是把 Spring Boot Spring AI 这套组合从模型接入、工具注…

2026/10/14 7:52:44 阅读更多 →
Java Lambda不只是语法糖:从字节码到序列化的工程实践

Java Lambda不只是语法糖:从字节码到序列化的工程实践

1. Lambda身后的字节码:语法糖背后的真实身份1.1 先说结论:Lambda不完全是"匿名内部类的简写"很多Java开发者对Lambda最早的认知,就是"可以用Lambda代替匿名内部类,代码更简洁"。这个说法在80%的日常场景下是…

2026/10/14 7:51:44 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →