Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/outray-tunnel/outray/llms.txt

Use this file to discover all available pages before exploring further.

The OutRay CLI exposes tunnels from your local machine to the internet. Install it with:
npm install -g outray

Global flags

These flags are available on every command.
FlagAliasDescription
--version-vPrint the installed CLI version and exit.
--help-hPrint usage information and exit.
--devConnect to the local development server instead of production.

outray login

Authenticate the CLI by opening a browser window to the OutRay dashboard.
outray login
After you complete the OAuth flow the CLI stores your session token and an org-scoped token locally. Subsequent commands use these tokens automatically; they are silently refreshed when they expire.

outray logout

Clear the locally stored authentication credentials.
outray logout

outray whoami

Show the currently authenticated user and the active organization.
outray whoami
Example output
Authentication Status

Active Organization:
  Acme Inc (acme-inc)

Role: owner

outray switch

Switch the active organization. If you belong to more than one organization you can either select interactively or pass the organization slug directly.
# Interactive prompt
outray switch

# Switch directly by slug
outray switch acme-inc
Arguments
ArgumentTypeRequiredDescription
[org]stringNoSlug of the organization to switch to. Omit to select interactively.

outray <port>

Shorthand for starting an HTTP tunnel. Equivalent to outray http <port>.
outray 3000
Arguments
ArgumentTypeRequiredDescription
portnumberYesLocal port to expose (1–65535).
Flags
--subdomain
string
Request a specific subdomain for the tunnel URL. Requires authentication.
outray 3000 --subdomain my-app
--domain
string
Use a custom domain instead of a generated subdomain. The domain must be configured in the OutRay dashboard first.
outray 3000 --domain app.example.com
--org
string
Run the tunnel under a specific organization for this invocation only. Does not change your active organization.
outray 3000 --org acme-inc
--password
string
Protect the tunnel with HTTP Basic Auth. Visitors must provide this password to access the tunnel.
outray 3000 --password s3cr3t
--key
string
Override the authentication token for this invocation. Useful for CI or scripted environments.
outray 3000 --key <org-token>
--no-logs
boolean
default:"false"
Suppress per-request log lines in the terminal.
outray 3000 --no-logs
--local
boolean
default:"false"
Also advertise the service on the local network via mDNS so devices on the same LAN can reach it at <subdomain>.local.
outray 3000 --local
--local-only
boolean
default:"false"
Start a LAN-only server with mDNS advertisement and no remote tunnel. No authentication is required.
outray 3000 --local-only

outray http

Start an HTTP tunnel. Identical to outray <port> but makes the protocol explicit.
outray http <port> [flags]
Arguments
ArgumentTypeRequiredDescription
portnumberYesLocal port to expose (1–65535).
Accepts the same flags as outray <port>. Example
outray http 8080 --subdomain staging --no-logs

outray tcp

Expose a raw TCP service to the internet. The server assigns a public port in the range 20000–30000.
outray tcp <port> [flags]
Arguments
ArgumentTypeRequiredDescription
portnumberYesLocal TCP port to proxy (1–65535).
Flags
--remote-port
number
Request a specific public port. If the port is already in use the server assigns another.
outray tcp 5432 --remote-port 20432
--org
string
Run the tunnel under a specific organization for this invocation only.
--key
string
Override the authentication token for this invocation.
--no-logs
boolean
default:"false"
Suppress per-connection log lines.
Example
# Expose a local PostgreSQL instance
outray tcp 5432 --remote-port 20000

outray udp

Expose a UDP service to the internet. The server assigns a public port in the range 30001–40000.
outray udp <port> [flags]
Arguments
ArgumentTypeRequiredDescription
portnumberYesLocal UDP port to proxy (1–65535).
Flags
--remote-port
number
Request a specific public UDP port. If the port is already in use the server assigns another.
outray udp 514 --remote-port 1514
--org
string
Run the tunnel under a specific organization for this invocation only.
--key
string
Override the authentication token for this invocation.
--no-logs
boolean
default:"false"
Suppress per-packet log lines.
Example
# Expose a game server
outray udp 27015 --remote-port 30000

outray start

Start all tunnels defined in a TOML configuration file. This is the recommended way to run multiple tunnels in development or CI.
outray start [flags]
Flags
--config
string
default:"outray/config.toml"
Path to the TOML configuration file, relative to the current working directory.
outray start --config ./config/tunnels.toml
Example
# Start all tunnels defined in outray/config.toml
outray start

# Start from a custom path
outray start --config ./infra/outray.toml
Each tunnel in the config file starts concurrently. The command runs until you press Ctrl+C, which gracefully stops all tunnels.

outray validate-config

Validate a TOML configuration file without starting any tunnels. Prints a summary of every tunnel found and any validation errors.
outray validate-config [flags]
Alias: outray validate Flags
--config
string
default:"outray/config.toml"
Path to the TOML configuration file to validate.
Example
outray validate-config

# ✓ Config file is valid
#
# Found 3 tunnel(s):
#
#   [web]
#     Protocol: http
#     Local: localhost:3000
#     Subdomain: my-app
#
#   [postgres]
#     Protocol: tcp
#     Local: localhost:5432
#     Remote Port: 20000

outray version

Print the installed CLI version.
outray version
# outray version 1.2.3
Alias: outray -v, outray --version

outray help

Print the full usage summary.
outray help
Alias: outray -h, outray --help