Localci Vibe 项目
本地秒级运行 GitHub Actions CI 的开源命令行工具(专为 AI 编程智能体设计)
项目简介
Localci 是由开发者 peters 发布在 GitHub 上的开源命令行工具,目标是把仓库已有的 .github/workflows/ci.yml 直接搬到本机运行,无需新建任何配置文件,等待 GitHub 分配 runner、冷启动构建缓存都成为历史。对桌面端开发来说,开发者每一次 push 之后在 GitHub 上看到的"27 分钟排队 + 构建 + 测试"链路,被压缩成本地秒级的同款执行。在 Horizon(一个公开的 Rust monorepo,Linux/macOS/Windows 三平台 CI 矩阵)上做对比测试:一次完整 GitHub CI 跑测的推送中位耗时 27 分钟;同一组 Linux 任务用 localci run 一次性本地执行是 15 到 23 分钟;用 localci run --fast 跑则进一步压缩到 2 分 16 秒;什么都不改再跑一次是 0 秒;一次失败的 CI 测试用例由 localci 在 push 前 4 秒就被发现。
核心功能
- 零配置兼容现有工作流:直接读取仓库根目录下 .github/workflows/ci.yml,不需要任何仓库内外的额外配置。
- 按本机系统匹配任务:自动识别各 job 的 runs-on 字段,只在本机匹配的操作系统(Linux/macOS/Windows)上跑,并把"需要另一种 OS"的任务列表单独标出来。
- 真实复刻 GitHub Actions 语义:shell 步骤、矩阵策略、needs 依赖链、outputs 输出、$GITHUB_ENV 环境、if: 条件、services:(以 Docker 容器方式启动)等几乎与 GitHub 行为一致。
- 跳过本机多余的 setup-actions:actions/checkout 这种"本机已经有了"的步骤直接跳过,本机已装的工具自然就被识别。
- 专门为 AI 编程智能体做了技能挂载:一行 localci skill install 就可以把能力挂进 ~/.claude/skills、~/.codex/skills、~/.agents/skills,Claude Code、Codex 等 agent 一句"在 push 前先本地跑一遍 CI"就会自动选对子集。
- 极简二进制分发:单个静态二进制文件,安装包体积小于 800KB,落地安装耗时低于 2 秒;提供 Linux x64/arm64、macOS Apple Silicon/Intel、Windows x64 多平台预编译包。
技术实现
Localci 用 Rust 写成,最终交付一个静态二进制,因此可以做到 800KB 以内、体积小、启动快;这与"等 GitHub 分配 runner"的云端排队形成对比,让本地"开箱即跑"成为可能。它通过解析已有的 GitHub Actions YAML,把诸如 jobs.{id}.runs-on、needs、matrix、outputs、if、services/services.image、steps.run、steps.uses 等字段映射到本地执行模型:当 steps.uses 引用了 actions/checkout 之类"环境型 step"就跳过,其他 shell step 则使用本机 Shell 直跑;services: 字段则以 docker run 方式启动 MySQL、Redis 等服务容器,且保持端口、网络与服务发现与 GitHub 的语义一致。MCP/Agent Skill 这部分通过本地命令 localci skill install 把技能写入 ~/.claude/skills、~/.codex/skills、~/.agents/skills 三个目录,分别被 Claude Code、Codex、通用 Skill 框架加载;agent 拿到 diff 之后会基于本地 jobs 与 plan 调用 localci list、localci run 等子命令。仓库 README 提供了一组真实 PR 数据:在大 PR(>10 文件)场景下,引入 localci + 本地 PR review loop 后,预计把 1.5 小时等待 + 3 到 4 小时 runner 机器时间压缩到 60 到 125 分钟 runner 机器时间。
快速上手
- macOS/Linux 一键安装:curl -fsSL https://raw.githubusercontent.com/peters/localci/main/install.sh | sh;Windows PowerShell:irm https://raw.githubusercontent.com/peters/localci/main/install.ps1 | iex;不愿意 pipe 脚本也可从 Releases 直接下载二进制(macOS Apple Silicon/Intel、Linux x64 与 arm64、Windows x64);
- Rust 用户在本地构建:cargo install --locked --git https://github.com/peters/localci(实测约 10 秒完成构建);
- 进入任意带 GitHub Actions 的仓库,列出本地可执行任务:localci list;
- 真正本地执行:localci run;最快路径:localci run --fast;
- 把 skill 挂到 AI 编程 agent:localci skill install;之后让 Claude Code / Codex / 其他 agent 说一句"Run CI locally before you push"即可;
- 大 PR 提交流程建议:先在本地用 localci + Copilot CLI 把发现的问题修完,再 push,把 GitHub 的 review 留作最终关卡。
适用人群
- 追求效率的开发者:厌倦了 CI 排队等待、runner 配额不足、GitHub 偶发不可用的痛点,希望在本地就把发现 CI 错误的时间从分钟级降到秒级;
- Rust/Python/Node 等多语言仓库维护者:希望大 PR 节省 1.5 小时等待 + 3 到 4 小时 runner 时间,把 CI 留给真正需要它的合并节点;
- Claude Code / Codex 等 AI 编程工具的早期采用者:希望 agent 不仅能写代码,还能在提交前主动跑 CI、主动提交修复;
- CI 故障排查者:希望只跑"我这次改动命中"的子集而不是全量 job,从而把每次反馈循环压到几秒;
- 隐私/可控性敏感的小团队:不愿意把本地构建细节完全外包给 GitHub,希望保留和 GitHub 一致的语义但落到本机。
官方链接
- 仓库:https://github.com/peters/localci
- Releases:https://github.com/peters/localci/releases
- License:见仓库 LICENSE
- 实测数据来源:仓库内 Horizon Rust monorepo(https://github.com/peters/horizon)公开 CI 数据
评论与建议
登录 后参与评论或提建议