跳转到主要内容

快速开始

安装

系统要求:Mac、Linux、Windows 全部支持。需要 Node.js 18+ 和 Python 3.9+。
trellis init 会自动检测已安装的平台,也可以用 flag 显式指定。每一个平台都需要最少 init 一次。随意组合:
your-name 会成为你的开发者身份,在 .trellis/workspace/your-name/ 创建个人工作区。 支持的 flag:--claude--cursor--opencode--codex--kiro--gemini--qoder--codebuddy--copilot--droid--pi--antigravity--devin(别名:--windsurf,已废弃)、--kilo--reasonix--zcode--omp 除了这 17 个已配置平台,任何读取 .agents/skills/ 规范的 AI 编码 agent(Amp、Cline、Deep Agents、Firebender、Kimi Code CLI、Warp 等)也能直接消费 Trellis:Codex 的 skill 就写在这个目录下,这些文件能被该生态的其他 agent 直接读取。

升级

升级是两步——CLI 和项目里的 .trellis/ 模板是分开版本化的:
如果 trellis update 提示 MIGRATION REQUIRED(项目版本和 CLI 之间存在 breaking 变更),必须运行 trellis update --migrate——否则 breaking 版本里改名或挪位置的文件会留在旧路径上不动。
完整的 upgrade / update / --migrate 说明见命令 §1.2

平台配置

trellis init 为每个平台写入各自的配置目录。.trellis/ 下的核心概念跨平台一致,差异在于 command、skill、sub-agent、hook 的交付方式。 .agents/skills/ 是一份跨平台共享层(agentskills.io 规范),trellis init 会把所有 skill 都写一份到这里,供 Amp、Cline、Deep Agents、Firebender、Kimi Code CLI、Warp 等遵循 .agents/skills/ 规范的 agent 直接读取。

init 场景对照

trellis init 根据 .trellis/.trellis/.developer 的存在状态自动分派。按你的情境挑对应的命令: --force / --skip-existing 只影响 有冲突的文件怎么处理(强制覆盖 / 跳过),不改变 init 的分派逻辑本身。
判据信号.trellis/.developer 是 gitignored 的 per-checkout 身份文件(天然不进 git),所以新克隆的 checkout 永远没有它 —— 这是判断”新开发者”的干净信号。.trellis/workspace/<name>/ 进 git,不能作为判据。

基本流程

描述你要做什么即可。AI 会先判断当前 turn。简单对话和小型 inline 任务不会 自动创建 Trellis task;AI 只会询问本回合是否需要创建任务。复杂工作会先 单独确认是否可以创建 Trellis task 并进入 planning。
Agent-capable 平台通过 SessionStart hook、prompt hook、extension、agent 文件和 skill 的组合加载 Trellis 上下文。Codex 和 Claude-style 平台不同:它依赖 AGENTS.mdUserPromptSubmit hook, no-task breadcrumb 会提示 AI 读取 trellis-start。只有 Kilo / Antigravity / Devin 这类 agent-less 平台会发 /trellis:start(或 /start.md)作为显式入口。

目录结构

下面是用 Claude Code 跑完 trellis init 后的目录。其他平台会写到各自的子目录,但 .trellis/ 核心一致。

你的第一个任务

启动会话

打开终端。有 hook 支持的平台会通过紧凑 SessionStart payload 给 AI 足够的 Trellis 上下文来判断下一步:
  • workflow.md 的紧凑 Phase Index
  • 身份、git 状态、活跃任务列表
  • spec index 路径
  • task artifact context order
直接描述任务即可怀疑自动注入没跑、想重新加载上下文,就新开一个会话,或者让 AI 读取一次 trellis-start skill。这类平台通常没有 /trellis:start slash 命令,因为启动 路径已经负责 orient。

示例:从零开始新项目

这是新建产品、服务、SDK、包或内部工具时的第一轮 Trellis 流程。 真实情况:要做一个 B2B Dashboard,覆盖登录、团队管理、计费、分析页面。AI 可以快速启动,但每次会话不应该重新发明目录结构、API 风格、组件模式和测试规则。 起始 prompt:
工作流:
  1. 项目初始化后运行 trellis init。它会在 .trellis/spec/ 写入默认 spec 模板(约 17 份占位文件,分 backend/frontend/guides 三层,覆盖 directory structure、error handling、logging、component guidelines、cross-layer thinking 等规则),并创建 00-bootstrap-guidelines 任务。
  2. 在 bootstrap 任务里跟 AI 讨论产品需求和项目技术栈,让 AI 先拿到足够上下文再动手。
  3. 可选:使用 Trellis 内置安装的 trellis-spec-bootstarp,让 AI 从真实代码生成第一版 specs。不需要再从 marketplace 单独下载。
  4. 优先填写 trellis init 生成的默认 specs,按当前已经知道的内容来写,不要预先设计整个项目。
  5. 人工 review 生成的 spec 质量。
  6. 建一个能跑通端到端的最小任务。
  7. 继续运行 /trellis:continue;Trellis 会把任务推进到 check、update-spec、commit 和 finish。

AI 建任务并开发

你说:“新增用户登录功能”。AI 先判断这件事复杂到需要 Trellis task,并询问 是否可以创建任务进入 planning。你同意后,它按 workflow.md 的三阶段走:
AI 停下或跳步骤时:跑 /trellis:continue,AI 根据当前 task 的 status、 artifact presence 和每轮注入的 workflow-state breadcrumb 判断下一步,并加载 对应 workflow 细节后继续推进。

结束会话

finish-workadd_session.py 追加一条 journal,更新个人索引。任务真正完成(代码已合入、验收条件满足)时,通过 task.py archive 归档。

跨会话记忆

下次打开会话,SessionStart hook(或平台 prelude)会读你的 workspace journal 和活跃任务列表,AI 能回忆起上次做了什么:
Journal 存在 .trellis/workspace/{name}/journal-N.md;每次 /trellis:finish-work 都会追加一条。Trellis 内部会按 AI 会话/窗口记录各自的当前 task,下次进同一个会话能直接接上;task.py finish 会清掉这个指针。

远程 Spec 模板

不用从零写 spec,在 init 时拉取预置的 spec 模板:

官方 Marketplace

交互选择器会列出 官方 marketplace 的所有模板,选一个或者直接从空 spec 开始。

自定义 Registry(--registry

从你自己的 GitHub / GitLab / Bitbucket 仓库拉取 spec:
Source 格式provider:user/repo[/subdir][#ref] 不写 ref(branch/tag)时默认 main

已有 spec 的处理

.trellis/spec/ 已存在时,用 strategy flag:

构建自定义 Marketplace

在仓库根目录创建 index.json
path 相对仓库根目录。目前只支持 type: "spec"

私有仓库

私有仓库要设置 GIGET_AUTH 环境变量,值是 personal access token:
GitHub fine-grained token 需要 ContentsMetadata 的读权限。