How to install domain
npx skills add https://github.com/railwayapp/railway-skills --skill domainFull instructions (SKILL.md)
Source of truth, from railwayapp/railway-skills.
name: domain description: This skill should be used when the user wants to add a domain, generate a railway domain, check current domains, get the URL for a service, or remove a domain. allowed-tools: Bash(railway:*)
Domain Management
Add, view, or remove domains for Railway services.
When to Use
- User asks to "add a domain", "generate a domain", "get a URL"
- User wants to add a custom domain
- User asks "what's the URL for my service"
- User wants to remove a domain
Add Railway Domain
Generate a railway-provided domain (max 1 per service):
railway domain --json
For a specific service:
railway domain --json --service backend
Response
Returns the generated domain URL. Service must have a deployment.
Add Custom Domain
railway domain example.com --json
Response
Returns required DNS records:
{
"domain": "example.com",
"dnsRecords": [
{ "type": "CNAME", "host": "@", "value": "..." }
]
}
Tell user to add these records to their DNS provider.
Read Current Domains
Use environment skill to see configured domains, or query directly:
query domains($envId: String!) {
environment(id: $envId) {
config(decryptVariables: false)
}
}
Domains are in config.services.<serviceId>.networking:
serviceDomains- Railway-provided domainscustomDomains- User-provided domains
Remove Domain
Use environment skill to remove domains:
Remove custom domain
{
"services": {
"<serviceId>": {
"networking": {
"customDomains": { "<domainId>": null }
}
}
}
}
Remove railway domain
{
"services": {
"<serviceId>": {
"networking": {
"serviceDomains": { "<domainId>": null }
}
}
}
}
Then use environment skill to apply and commit the change.
CLI Options
| Flag | Description |
|---|---|
[DOMAIN] | Custom domain to add (omit for railway domain) |
-p, --port <PORT> | Port to connect |
-s, --service <NAME> | Target service (defaults to linked) |
--json | JSON output |
Composability
- Read domains: Use
environmentskill - Remove domains: Use
environmentskill - Apply removal: Use
environmentskill - Check service: Use
serviceskill
Error Handling
No Service Linked
No service linked. Use --service flag or run `railway service` to select one.
Domain Already Exists
Service already has a railway-provided domain. Maximum 1 per service.
No Deployment
Service has no deployment. Deploy first with `railway up`.
Invalid Domain
Invalid domain format. Use a valid domain like "example.com" or "api.example.com".
Related skills
More from railwayapp/railway-skills and the wider catalog.

environment
This skill should be used when the user asks "what's the config", "show me the configuration", "what variables are set", "environment config", "service config", "railway config", or wants to add/set/delete variables, change build/deploy settings, scale replicas, connect repos, or delete services.

metrics
This skill should be used when the user asks about resource usage, CPU, memory, network, disk, or service performance. Covers questions like "how much memory is my service using" or "is my service slow".

new
This skill should be used when the user says "setup", "deploy to railway", "initialize", "create project", "create service", or wants to deploy from GitHub. Handles initial setup AND adding services to existing projects. For databases, use the database skill instead.

projects
This skill should be used when the user wants to list all projects, switch projects, rename a project, enable/disable PR deploys, make a project public/private, or modify project settings.

railway-docs
This skill should be used when the user asks about Railway features, how Railway works, or shares a docs.railway.com URL. Fetches up-to-date Railway docs to answer accurately.

service
Manage service status, properties, and create services from Docker images.