ducktape

一个基于Bazel的个人基础设施配置管理仓库,统一管理多设备与服务的开发环境。

安装使用

复制下面这段提示词发给你的 AI(Claude / Cursor / TRAE / Codex / WorkBuddy 等),它会自动帮你完成安装:

帮我安装这个 AI Skill:ducktape。
它的用途是:一个基于Bazel的个人基础设施配置管理仓库,统一管理多设备与服务的开发环境。
完整的 Skill 内容见:https://321skill.com/skills/ducktape/raw/index.md
请读取该页面内容,如果是 SKILL.md 格式直接安装,如果是 README 提炼核心 prompt 后安装。

提示词包含完整的 Skill 内容链接,AI 读取后即可完成安装。你也可以 查看完整内容 确认无误。

使用示例

“我想在我的GPD Win Max 2上部署ducktape管理的点文件配置。”,它会引导你查看`nix/README.md`,并使用`home-manager switch`进行部署。或者

对AI说:“为我的新Python工具添加requests依赖。”,它会指导你修改`pyproject.toml`、生成Bazel锁文件并在BUILD中正确引用`@pypi//requests`。

介绍

Ducktape 是一个个人基础设施配置的单一代码仓库,旨在解决开发者管理多台设备(如个人笔记本、便携设备、VPS服务器)和复杂服务(如Kubernetes集群)时配置分散、环境不一致的问题。它通过Bazel作为统一的构建系统,集成了Python、Rust等语言的依赖管理和构建流程,并利用BuildBuddy实现远程缓存与构建执行,大幅提升构建速度。

使用上,开发者主要通过Bazel命令(如bb run)进行构建、测试和代码生成。配置变更(如添加依赖)遵循特定流程:修改pyproject.tomlCargo.toml后,需通过文档指引重新生成锁文件,再由Bazel统一管理。点文件(dotfiles)通过Nix home-manager管理,禁止手动修改。

该仓库非常适合需要维护个人或小型团队多套开发环境、追求构建可重复性和效率的全栈开发者、运维工程师或智能体开发者。它尤其适合那些已经或计划使用Bazel、Nix,并希望将基础设施代码化的技术爱好者。

使用建议:初次接触需仔细阅读仓库内的README和链接文档,特别是关于锁文件生成、Gazelle使用以及RBE配置的部分。注意区分bb runbbr命令的使用场景,并严格遵守点文件的管理规范,避免环境混乱。

核心特点

核心区别在于将Bazel构建系统深度应用于个人基础设施管理,实现了跨语言(Python/Rust)依赖与构建的绝对统一,并通过BuildBuddy RBE提供生产级远程缓存与构建能力,使个人项目的构建体验达到团队协作水平。

注意事项

不适合不熟悉Bazel、Nix等高级构建和配置管理工具的新手,或仅需管理单一简单项目的场景。

常见问题

如何添加一个新的Python依赖?

编辑`pyproject.toml`添加依赖,然后按照`devinfra/docs/lockfiles.md`文档重新生成锁文件`requirements_bazel.txt`,最后在BUILD文件中使用`@pypi//pkg`引用。

点文件(如.bashrc)在哪里修改?

点文件由Nix home-manager在`nix/home/`目录下管理,绝对不要直接在`~/`目录下编辑,部署方法见`nix/README.md`。

给 AI 助手的安装指引

如果你的 AI 编程助手(Claude Code、Cursor、TRAE 等)能看到这个页面,把下面这段发给它即可自动完成安装:

请访问 https://321skill.com/skills/ducktape/raw/index.md 读取 ducktape 的原始 Skill 定义(Markdown 格式),按其中说明在我的环境里完成安装和配置。