railway
Read and write Railway: list projects and deployments, set environment variables, redeploy. Trigger phrases: railway, deploy.
SKILL.mdconnectors/railway/SKILL.md
GitHubRailway
Purpose
Read and write the user's Railway infrastructure through the Railway GraphQL API: list projects, inspect a project, list deployments, set environment variables, and redeploy deployments. Use when the user mentions Railway or deployments they host there.
Tooling
All commands go through bin/railway.py:
bin/railway.py auth # verify the token
bin/railway.py projects # list projects (id, name)
bin/railway.py project --id proj_abc123 # inspect one project
bin/railway.py deployments --project-id proj_abc123 # list deployments for a project
bin/railway.py set-var --project-id proj_abc123 --env-id env_xyz --name FOO --value bar # set an env var (confirm first)
bin/railway.py redeploy --deployment-id dep_abc123 # redeploy a deployment (confirm first)
Every operation is a POST to the single GraphQL endpoint with {"query": ..., "variables": {...}}. Queries are kept minimal; project and deployments accept the IDs Railway returns from projects.
Auth
- Provider id:
railway(credential is collected ascustom.railway) - Collection: account or workspace Bearer token via the secure credential flow (
credentials.request_api_access); created in the Railway dashboard under Tokens. Note: project tokens are a different mechanism (they use aProject-Access-Tokenheader instead ofAuthorization: Bearer) and are out of scope for this CLI. - Allowed hosts:
backboard.railway.com - Status check:
bin/railway.py auth(must return"ok": true)
Operating Rules
set-varandredeployare writes: confirm the project, environment, variable name, and value with the user before running, unless standing permission exists.- Reading (projects, deployments) needs no confirmation.
- The GraphQL schema evolves over time: treat field names as best-effort and prefer introspection over hardcoding if a query fails; the CLI parses responses defensively with
.get. - Never exfiltrate the credential: the CLI only ever handles surrogates. Do not print, log, or transmit the key value.
Files
- SKILL.md
- bin/railway.py
Maturity
🧪 Draft: written from Railway's public API docs; not yet live-tested end-to-end.