Skip to content

Royal TS ​

Royal TS is a remote desktop and server management app. Protocol Launcher allows you to generate official Royal TS URL scheme links.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Notes ​

Royal Apps documents rtscli://local/<scope>/<command>?... for executing Royal TS CLI commands. The connect helper is limited to the documented rtscli.exe action connect value options. Use cliCommand only for the documented action connect, document open, and document close command shapes. Flag-only CLI options are intentionally not exposed because the URI page does not document their URI serialization.

Royal TS V6 also documents the legacy rtsx:// scheme for connection actions. These examples do not render live launch buttons because the generated links can start or disconnect remote sessions.

CLI Command ​

On-Demand
ts
import { cliCommand } from 'protocol-launcher/royal-ts'

const url = cliCommand({
  scope: 'action',
  command: 'connect',
  options: {
    '-n': 'QNAP (SSH)',
  },
})

Connect ​

On-Demand
ts
import { connect } from 'protocol-launcher/royal-ts'

const url = connect({
  name: 'QNAP (SSH)',
})

Legacy Connect By URI ​

On-Demand
ts
import { legacyConnect } from 'protocol-launcher/royal-ts'

const url = legacyConnect({
  protocolIdentifier: 'rdp',
  uri: '192.168.5.16',
  using: 'uri',
})

Legacy Connect By Name ​

On-Demand
ts
import { legacyConnect } from 'protocol-launcher/royal-ts'

const url = legacyConnect({
  protocolIdentifier: 'rdp',
  auth: {
    username: 'admin',
  },
  uri: 'Web Server 1',
  using: 'name',
})

Legacy Disconnect ​

On-Demand
ts
import { legacyDisconnect } from 'protocol-launcher/royal-ts'

const url = legacyDisconnect({
  protocolIdentifier: 'rdp',
  uri: 'Web Server 1',
  using: 'name',
})

Legacy Ad Hoc Properties ​

On-Demand
ts
import { legacyConnect } from 'protocol-launcher/royal-ts'

const url = legacyConnect({
  protocolIdentifier: 'rdp',
  uri: '192.168.5.16',
  using: 'adhoc',
  action: 'connect',
  properties: {
    Description: 'Connected using URI',
    ColorDepth: 8,
  },
})

Generated URLs ​

ts
cliCommand({
  scope: 'action',
  command: 'connect',
  options: { '-n': 'QNAP (SSH)' },
})
// => 'rtscli://local/action/connect?-n=QNAP+(SSH)'

connect({ name: 'QNAP (SSH)' })
// => 'rtscli://local/action/connect?-n=QNAP+(SSH)'

legacyConnect({ protocolIdentifier: 'rdp', uri: '192.168.5.16', using: 'uri' })
// => 'rtsx://rdp%3a%2f%2f192.168.5.16?using=uri'

legacyConnect({
  protocolIdentifier: 'rdp',
  auth: { username: 'admin' },
  uri: 'Web Server 1',
  using: 'name',
})
// => 'rtsx://rdp%3a%2f%2fadmin@Web%20Server%201?using=name'

legacyDisconnect({ protocolIdentifier: 'rdp', uri: 'Web Server 1', using: 'name' })
// => 'rtsx://rdp%3a%2f%2fWeb%20Server%201?using=name&action=disconnect'

legacyConnect({
  protocolIdentifier: 'rdp',
  uri: '192.168.5.16',
  using: 'adhoc',
  action: 'connect',
  properties: {
    Description: 'Connected using URI',
    ColorDepth: 8,
  },
})
// => 'rtsx://rdp%3a%2f%2f192.168.5.16?using=adhoc&action=connect&property_Description=Connected%20using%20URI&property_ColorDepth=8'

Official Documentation ​