用途
railway-projects 是一个 Railway 项目管理技能,用于列出、切换和配置 Railway 项目。它适合需要查看或调整 Railway 项目设置的用户,覆盖跨工作区查看项目、切换当前目录关联项目、重命名项目、控制 PR 部署、设置项目公开或私有等操作。
主要能力
- 列出项目:运行
railway list --json。由于输出可能非常大,建议在子代理中运行并只返回关键字段。可保留的字段包括项目 id、name,工作区 id、name,以及可选的 services name。 - 列出工作区:运行
railway whoami --json,返回用户信息,包括用户所属的所有工作区。 - 切换项目:使用
railway link -p <project-id-or-name>将其他项目关联到当前目录;也可交互式运行railway link。切换后可使用 railway-status 技能查看项目详情。 - 更新项目:通过 GraphQL API 修改项目设置。
使用方式
获取项目 ID:运行 railway status --json,从响应中提取 project.id。
更新项目使用如下 mutation:
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh \
'mutation updateProject($id: String!, $input: ProjectUpdateInput!) {
projectUpdate(id: $id, input: $input) { name prDeploys isPublic botPrEnvironments }
}' \
'{"id": "PROJECT_ID", "input": {"name": "new-name"}}'
ProjectUpdateInput 可用字段包括:
| 字段 | 类型 | 说明 |
|---|---|---|
| name | String | 项目名称 |
| description | String | 项目描述 |
| isPublic | Boolean | 将项目设为公开或私有 |
| prDeploys | Boolean | 启用或禁用 PR 部署 |
| botPrEnvironments | Boolean | 启用 Dependabot/Renovate PR 环境 |
示例:
重命名项目:
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"name": "new-name"}}'
启用 PR 部署:
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"prDeploys": true}}'
将项目设为公开:
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"isPublic": true}}'
同时修改多个字段:
${CLAUDE_PLUGIN_ROOT}/skills/lib/railway-api.sh '<mutation>' '{"id": "uuid", "input": {"name": "new-name", "prDeploys": true}}'
适用场景
- 用户要求“显示我的所有项目”或“我有哪些项目”
- 用户询问跨工作区的项目
- 用户询问“我有哪些工作区”
- 用户想切换到其他项目
- 用户要求重命名项目
- 用户想启用/禁用 PR 部署
- 用户想把项目设为公开或私有
- 用户询问项目设置
组合使用
- 查看项目详情:使用 railway-status 技能
- 创建新项目:使用 railway-new 技能
- 管理环境:使用 railway-environment 技能
限制与错误处理
- 未认证:提示
Not authenticated. Run railway login first.需先登录。 - 无项目:提示
No projects found. Create one with railway init.需先创建项目。 - 权限不足:提示
You don't have permission to modify this project. Check your Railway role. - 项目不存在:提示
Project "foo" not found. Run railway list to see available projects.
其他具体收费、价格、平台支持等信息暂未提供。