railway

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Railway CLI Skill

Railway CLI 技能

Manage Railway deployments and infrastructure using the Railway CLI.
使用Railway CLI管理Railway部署与基础设施。

Pre-flight Check

预检检查

Current status: !
railway status 2>&1 || echo "NOT_LINKED"
当前状态: !
railway status 2>&1 || echo "NOT_LINKED"

Auto-Recovery

自动恢复

Before running any command, check the pre-flight status above:
  1. If "command not found": Run
    npm install -g @railway/cli
  2. If "Not logged in": Tell user to run
    railway login
    manually (requires browser)
  3. If "NOT_LINKED" or "No project linked":
    • Run
      railway list
      to show available projects
    • Ask user which project to link, or auto-detect from package.json name
    • Link with
      railway link -p <project-id>
运行任何命令前,请先检查上方的预检状态:
  1. 若显示"command not found":运行
    npm install -g @railway/cli
  2. 若显示"Not logged in":告知用户手动运行
    railway login
    (需使用浏览器)
  3. 若显示"NOT_LINKED"或"No project linked":
    • 运行
      railway list
      查看可用项目
    • 询问用户要链接哪个项目,或从package.json名称自动检测
    • 使用
      railway link -p <project-id>
      进行链接

Command Routing

命令路由

Based on
$ARGUMENTS
, execute the appropriate workflow:
根据
$ARGUMENTS
,执行相应的工作流:

"status" (default when no args)

「status」(无参数时的默认命令)

bash
railway status
railway domain
railway deployment list --limit 1
Report: project info, URL, and last deployment status/time.
bash
railway status
railway domain
railway deployment list --limit 1
报告内容:项目信息、URL以及最近一次部署的状态/时间。

"logs" [options]

「logs」[选项]

Parse natural language options:
  • "errors" →
    --filter "@level:error"
  • "last hour" / "1h" →
    --since 1h
  • "build" →
    --build
  • Number like "100" →
    --lines 100
Default:
railway logs --lines 30
Summarize output - highlight errors, warnings, or interesting patterns.
解析自然语言选项:
  • "errors" →
    --filter "@level:error"
  • "last hour" / "1h" →
    --since 1h
  • "build" →
    --build
  • 数字如"100" →
    --lines 100
默认命令:
railway logs --lines 30
汇总输出内容 - 突出显示错误、警告或重要模式。

"deploy" / "up"

「deploy」/「up」

bash
railway up
Then wait and check:
  1. Run
    railway deployment list --limit 1
    to get status
  2. If SUCCESS, fetch the domain URL and verify it responds:
    curl -s -o /dev/null -w "%{http_code}" <domain>
  3. If FAILED, show build logs:
    railway logs --build --lines 50
bash
railway up
之后等待并检查:
  1. 运行
    railway deployment list --limit 1
    获取状态
  2. 若部署成功,获取域名URL并验证响应:
    curl -s -o /dev/null -w "%{http_code}" <domain>
  3. 若部署失败,显示构建日志:
    railway logs --build --lines 50

"redeploy"

「redeploy」

bash
railway redeploy
Redeploys without rebuilding. Useful for env var changes.
bash
railway redeploy
无需重新构建即可重新部署。适用于环境变量变更场景。

"restart"

「restart」

bash
railway restart
Restarts the service without rebuild or redeploy.
bash
railway restart
无需重新构建或部署即可重启服务。

"vars" / "env" [action]

「vars」/「env」[操作]

bash
railway variables
IMPORTANT: When displaying variables, redact sensitive values:
  • API keys: show first 8 chars + "..."
  • Passwords: show "********"
  • Tokens: show first 8 chars + "..."
For setting:
railway variables set KEY=value
For deleting:
railway variables delete KEY
(ask for confirmation first!)
bash
railway variables
重要提示:显示变量时,需脱敏敏感值:
  • API密钥:显示前8个字符 + "..."
  • 密码:显示"********"
  • 令牌:显示前8个字符 + "..."
设置变量:
railway variables set KEY=value
删除变量:
railway variables delete KEY
(需先确认!)

"deployments" / "history"

「deployments」/「history」

bash
railway deployment list --limit 10
Format as a table with: ID (short), Status, Time ago, Commit message (truncated)
bash
railway deployment list --limit 10
以表格格式展示:ID(简写)、状态、距今时间、提交信息(截断显示)

"domain"

「domain」

bash
railway domain
Show the public URL. If none exists, offer to create one.
bash
railway domain
显示公开URL。若不存在,则提供创建选项。

"health"

「health」

bash
railway domain
Then curl the domain to check HTTP status:
bash
curl -s -o /dev/null -w "%{http_code}" -m 10 <domain-url>
Report if healthy (2xx), unhealthy, or unreachable.
bash
railway domain
然后通过curl检查域名的HTTP状态:
bash
curl -s -o /dev/null -w "%{http_code}" -m 10 <domain-url>
报告健康状态(2xx表示健康)、不健康或无法访问。

"open"

「open」

bash
railway open
Opens the Railway dashboard in browser.
bash
railway open
在浏览器中打开Railway控制台。

"switch <project-name>"

「switch <project-name>

Switch to a different Railway project by name (fuzzy match).
bash
undefined
按名称切换到其他Railway项目(模糊匹配)。
bash
undefined

List all projects

列出所有项目

railway list
Find the project ID that matches the name, then:
```bash
railway link -p <project-id>
Confirm the switch with
railway status
.
railway list
找到匹配名称的项目ID,然后运行:
```bash
railway link -p <project-id>
通过
railway status
确认切换成功。

"db" / "connect"

「db」/「connect」

Connect to the project's database shell (Postgres, MongoDB, Redis, etc.)
bash
railway connect
If multiple databases exist, Railway will prompt to select one.
连接到项目的数据库shell(Postgres、MongoDB、Redis等)
bash
railway connect
若存在多个数据库,Railway会提示选择其中一个。

"link"

「link」

List available projects and link one:
bash
railway list
Show projects in a numbered list. Ask user which to link, then:
bash
railway link -p <project-id>
列出可用项目并进行链接:
bash
railway list
以编号列表展示项目。询问用户要链接哪个项目,然后运行:
bash
railway link -p <project-id>

Safety Guards

安全防护

Before destructive operations, ask for confirmation:
  • railway down
    - removes deployment
  • railway variables delete
    - removes env var
  • railway unlink
    - unlinks project
Format: "This will [action]. Are you sure? (y/n)"
执行破坏性操作前,需确认:
  • railway down
    - 删除部署
  • railway variables delete
    - 删除环境变量
  • railway unlink
    - 取消项目链接
格式:"此操作将[操作内容]。确定要执行吗?(y/n)"

Response Format

响应格式

Always provide:
  1. Summary: One-line status (✓ success / ✗ failure / ⚠ warning)
  2. Details: Relevant information in a clean table or list
  3. URL: Public URL if applicable
  4. Next steps: If something failed, suggest how to fix it
需始终提供:
  1. 摘要:一行状态信息(✓ 成功 / ✗ 失败 / ⚠ 警告)
  2. 详情:以清晰表格或列表展示相关信息
  3. URL:(若适用)公开URL
  4. 下一步操作:若操作失败,建议修复方案

Example Responses

响应示例

Status check:
✓ MyApp is deployed and healthy

| Project     | MyApp                                    |
| Environment | production                               |
| Service     | MyApp                                    |
| URL         | https://myapp-production.up.railway.app  |
| Last deploy | 2 hours ago (SUCCESS)                    |
After deploy:
✓ Deployment successful

Build completed in 45s
URL: https://myapp-production.up.railway.app
Health check: 200 OK
On error:
✗ Deployment failed

Build error at line 23: Module not found 'xyz'

Suggested fix: Run `npm install xyz` and redeploy
状态检查:
✓ MyApp已部署且状态健康

| 项目     | MyApp                                    |
| 环境     | production                               |
| 服务     | MyApp                                    |
| URL      | https://myapp-production.up.railway.app  |
| 最近部署 | 2小时前(成功)                          |
部署完成后:
✓ 部署成功

构建耗时45秒
URL: https://myapp-production.up.railway.app
健康检查:200 OK
错误场景:
✗ 部署失败

第23行构建错误:未找到模块'xyz'

建议修复方案:运行`npm install xyz`后重新部署