Railway CLI
Find a file
Faraz Patankar 330ac9ed67
Add per-command CLI telemetry (#791)
* Add per-command telemetry via cliEventTrack mutation

Sends command name, subcommand, duration, success/error, OS, arch,
CLI version, and CI flag to the Railway API after each invocation.
Silently skipped when unauthenticated, on network failure, or when
the user opts out via DO_NOT_TRACK=1.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Migrate telemetry to typed graphql_client mutation

Pull updated schema with cliEventTrack mutation and replace the raw
JSON POST with typed codegen via graphql_client, matching the rest
of the codebase. Also adds DNS_RECORD_TYPE_TXT from the schema update.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Add one-time telemetry notice on first run

Shows a notice to stderr informing users about CLI usage data
collection, with DO_NOT_TRACK=1 opt-out. Persisted to
~/.railway/notices.json so it only displays once. Suppressed
in CI/non-TTY and when telemetry is already disabled.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Support RAILWAY_NO_TELEMETRY env var for opting out of telemetry

Adds RAILWAY_NO_TELEMETRY=1 as a Railway-specific alternative to
DO_NOT_TRACK=1 for disabling CLI telemetry. Updates the notice
text to mention both variables.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix telemetry docs link to /cli/telemetry

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix cargo fmt --all formatting in telemetry notice

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 12:03:59 -05:00
.cargo Add attribute logging (#455) 2024-05-05 11:32:47 +01:00
.github Fix auto-release to checkout master instead of PR ref (#769) 2026-01-19 19:32:51 -05:00
bin release tarfiles for windows (#325) 2023-03-05 17:28:27 +00:00
npm-install fix npm install on windows (#341) 2023-03-08 14:00:56 -05:00
src Add per-command CLI telemetry (#791) 2026-02-12 12:03:59 -05:00
.dockerignore feat: alpine dockerfile (#470) 2023-12-05 16:52:45 -05:00
.gitattributes Add --latest flag to logs cmd and activeDeployments to status (#719) 2026-01-07 01:32:42 -05:00
.gitignore Add dev command for local development with Docker Compose (#710) 2025-12-12 18:18:58 -05:00
build.rs Template deploy v2 (#563) 2024-10-21 18:55:37 -04:00
Cargo.lock chore: Release railwayapp version 4.29.0 2026-02-04 03:58:47 +00:00
Cargo.toml chore: Release railwayapp version 4.29.0 2026-02-04 03:58:47 +00:00
CLAUDE.md Add CLAUDE.md with development guidance (#661) 2025-09-09 20:20:10 -04:00
CONTRIBUTING.md Point to railway.com (#585) 2025-01-08 14:33:37 -05:00
Dockerfile fix exec permission not set in railway-cli docker image (#531) 2024-08-14 13:46:58 -04:00
flake.lock Migrate to CLI v3 (#304) 2023-03-03 21:44:32 -05:00
flake.nix Fix CLI compilation (#514) 2024-06-24 16:41:23 -03:00
install.sh get latest version from GitHub release (#586) 2025-01-08 14:49:21 -05:00
LICENSE Migrate to CLI v3 (#304) 2023-03-03 21:44:32 -05:00
package.json chore: Release railwayapp version 4.29.0 2026-02-04 03:58:47 +00:00
pnpm-lock.yaml fix npm install 2023-03-04 09:25:40 -05:00
README.md update readme (#767) 2026-01-16 10:21:39 -05:00
release.toml fix release.toml (again) 2023-04-13 11:28:17 -04:00
shell.nix Fix osx compilation (#666) 2025-09-24 10:30:03 -05:00
v2.sh add v2 install script 2023-03-04 17:16:15 -05:00

Railway CLI

Crates.io CI cargo audit

Overview

This is the command line interface for Railway. Use it to connect your code to Railway's infrastructure without needing to worry about environment variables or configuration.

The Railway command line interface (CLI) connects your code to your Railway project from the command line.

The Railway CLI allows you to:

  • Create new Railway projects from the terminal
  • Link to an existing Railway project
  • Pull down environment variables for your project locally to run
  • Create services and databases right from the comfort of your fingertips

And more.

Documentation

View the CLI guide

View the CLI API reference

Quick start

Follow the CLI guide to install the CLI and run your first command.

Authentication

For non-interactive authentication details, see the CLI guide.

Installation

Package managers

Cargo

cargo install railwayapp --locked

Homebrew

brew install railway

NPM

npm install -g @railway/cli

Bash

# Install
bash <(curl -fsSL cli.new)

# Uninstall
bash <(curl -fsSL cli.new) -r

Scoop

scoop install railway

Arch Linux AUR

Install with Paru

paru -S railwayapp-cli

Install with Yay

yay -S railwayapp-cli

Docker

Install from the command line

docker pull ghcr.io/railwayapp/cli:latest

Use in GitHub Actions

For GitHub Actions setup, see the blog post at blog.railway.com/p/github-actions.

Use in GitLab CI/CD

For GitLab CI/CD setup, see the blog post at blog.railway.com/p/gitlab-ci-cd.

Contributing

See CONTRIBUTING.md for information on setting up this repository locally.

Feedback

We would love to hear your feedback or suggestions. The best way to reach us is on Central Station.

We also welcome pull requests into this repository. See CONTRIBUTING.md for information on setting up this repository locally.