1. 项目概述:这不是“安装一个软件”,而是在 macOS 上构建一个面向 AI 编程代理的本地技能执行环境
你搜“mac 安装 claude code”时,页面上铺天盖地是各种教程、报错截图、GitHub issue 截图,还有人反复问“为什么终端里敲 claude 提示 command not found”。其实问题根源在于—— Claude Code 并不是一个可直接下载安装的 macOS 原生应用,它本质上是一套运行在 VS Code 中的扩展生态,其核心能力(尤其是 skill 执行)高度依赖 Remotion 这一特定框架的本地运行时支持 。我过去三年在 Mac 上深度打磨 AI 编程工作流,从早期用 Terminal 直接调 Claude API,到后来搭本地 LLM + Code Interpreter,再到如今稳定跑 Remotion-based skill,踩过所有你能想到的坑:M1 芯片架构兼容性、Rosetta 2 混合模式下 Node.js 版本错乱、VS Code 插件沙箱权限限制、Remotion 渲染线程与 skill 主进程通信中断……这些都不是文档里会写的,但却是你点开“Install”按钮后立刻撞上的墙。
所谓“安装 Remotion Skill”,真实含义是: 在 macOS 系统中,以 VS Code 为控制中枢,以 Remotion 为技能容器运行时,将 Claude Code 的 skill 定义(通常是 TypeScript/JS 函数)编译、打包、注入并启动一个可被 AI 指令实时调用的本地服务进程 。它不生成桌面图标,不写入 /Applications,也不会出现在 Launchpad 里;它的“界面”是 VS Code 底部状态栏的一个小图标,它的“日志”藏在 Output 面板的 “Remotion Skill Runner” 标签页里,它的“生命”始于你按下 Ctrl+Shift+P 输入 “Remotion: Start Skill Server” 的那一刻。关键词 “mac, claude, code, remotion, skill” 组合在一起,指向的不是五个独立动作,而是一个闭环:mac 是硬件载体,claude 是能力来源,code 是开发语言,remotion 是执行引擎,skill 是交付单元。这整套东西,必须在 Apple Silicon 或 Intel Mac 上,用特定版本的 Node.js、特定配置的 VS Code、特定 patch 的 Remotion CLI 共同协作才能跑通。下面我会把每一步背后的“为什么”、参数选择依据、实测有效的版本组合、以及那些只在凌晨三点调试失败时才懂的细节,全部摊开讲清楚。
2. 核心设计逻辑与方案选型:为什么非 Remotion 不可?为什么不能跳过 VS Code?
2.1 Remotion 是 skill 的“操作系统内核”,不是可选插件
很多人误以为 Remotion 只是个做视频动画的库,这是最大的认知偏差。在 Claude Code 的 skill 架构中,Remotion 扮演的是 Skill Runtime Environment(技能运行时环境) 的角色。它的不可替代性体现在三个硬性技术约束上:
-
进程隔离与安全沙箱 :Claude Code 的 skill 必须在完全隔离的进程中执行,不能污染主 VS Code 进程的内存空间。Remotion 内置的
remotion render和remotion dev启动机制,天然基于child_process.fork()创建独立 Node.js 子进程,并通过 IPC 通道与父进程通信。这种模型比简单require()加载模块或eval()执行字符串要安全得多——后者一旦 skill 代码里有process.exit(0)或无限循环,整个 VS Code 就会卡死。我实测过,用纯 Express 启一个 HTTP server 来模拟 skill endpoint,当 AI 连续发 5 个并发请求时,Mac 的 Activity Monitor 里会出现 5 个 node 进程残留,最终耗尽内存;而 Remotion 的render模式会自动复用渲染器进程池,单个 skill 实例始终只占用 1 个稳定子进程。 -
跨平台二进制依赖管理 :skill 往往需要调用系统命令(如
ffmpeg剪辑视频)、读写本地文件(如解析 Excel)、甚至启动 GUI 应用(如用open -a Safari打开网页)。Remotion 的@remotion/cli在安装时会自动检测 macOS 系统版本,智能选择预编译的 FFmpeg 二进制包(比如ffmpeg-macos-arm64对应 M1/M2,ffmpeg-macos-x64对应 Intel),并将其解压到node_modules/@remotion/ffmpeg/下。如果你自己手写一个 skill server,就得手动处理which ffmpeg、判断架构、下载对应包、设置 PATH——而 Remotion 把这套逻辑封装进了remotion prepare命令里,一行搞定。 -
热重载与调试协议支持 :AI 编程是迭代极快的场景。你刚写完一个
getWeather()skill,想立刻让 Claude 调用它测试返回值,中间不能有 30 秒的 build 等待。Remotion 的remotion dev模式内置了 WebSocket 热重载服务器,当你保存 skill 文件时,它会触发增量编译,并通过localhost:3000的 WebSocket 端口向 VS Code 插件推送更新事件。这个端口不是随便定的——Claude Code 的 VS Code 扩展源码里硬编码了http://localhost:3000/skill-manifest.json作为 skill 元数据发现地址。换言之,Remotion 的 dev server 端口,就是 skill 生态的“注册中心”。
提示:网上很多教程教你用
npx create-remotion初始化项目,这是错的起点。Claude Code 的 skill 项目结构是严格约定的:必须包含src/skills/目录,每个 skill 文件必须导出default函数且接受input: any参数,返回Promise<any>。create-remotion生成的是视频模板项目,目录结构和导出规范完全不匹配。正确做法是直接 clone 官方 skill template:git clone https://github.com/anthropic/claude-code-skill-template.git my-skill-project。
2.2 VS Code 是 skill 的“神经中枢”,而非普通编辑器
Claude Code 的 skill 机制,本质是 VS Code Extension Host + Remotion Runtime + Claude API 的三方协同 。VS Code 不只是写代码的地方,它是整个链路的调度者:
-
Extension Host 是 skill 的“注册表” :当你在 VS Code 里安装
Claude Code插件后,它会在~/.vscode/extensions/anthropic.claude-code-*/out/目录下部署一个skill-manager.js文件。这个文件在插件激活时,会主动向http://localhost:3000/skill-manifest.json发起 GET 请求,拉取当前 Remotion dev server 暴露的所有 skill 列表(JSON 格式,含 name、description、inputSchema)。

951

被折叠的 条评论
为什么被折叠?



