@remote.it/core

Core remote.it JavasScript/TypeScript library

Usage no npm install needed!

<script type="module">
  import remoteItCore from 'https://cdn.skypack.dev/@remote.it/core';
</script>

README

@remote.it/core

Core remote.it Typescript library and companion cross-platform command line interface (CLI)


📖 Overview

The remote.it CLI (and associated JavaScript/TypeScript library) provide a simple and intuitive way to manage your remote.it devices (targets), services and connections (initiators). This library is used in our cross-platform Desktop and Mobile applications as well.


⚙️ Config file

The core of the remote.it CLI is the config.json file. This file stores all information about the current system's target, services and initiators.

If the config file changes for any reason (the CLI changes it, you change it manually, etc), the system service running for remote.it will compare the change with the currently running target/services/initiators and manage them accordingly. That means if a new service is added to the config, it will automatically be run as a system service by the watcher. If one is stopped or removed, it will also be changed automatically.

Generally speaking, you should not touch the config file directly unless you are doing bulk deployments/scripting with the file. Otherwise, just use the CLI or Desktop application to manage your configuration.

The default path for the config file for each operating system is:

  • Windows: C:\remoteit\config.json
  • Mac: ~/.remoteit/config.json
  • Linux: ~/.remoteit/config.json

Here is what a sample config file looks like:

{
  "target": {
    "hostname": "127.0.0.1",
    "multiport": true,
    "port": 65535,
    "name": "My Laptop",
    "secret": "...",
    "uid": "80:00:00:00:00:00:00:00",
    "services": [
      {
        "port": 3000,
        "name": "My Laptop - HTTP",
        "secret": "...",
        "type": "http",
        "uid": "80:00:00:00:00:00:00:01"
      }
    ]
  },
  "initiators": [
    {
      "autoStart": true,
      "uid": "80:00:00:00:00:00:00:02",
      "port": 33000,
      "hostname": "127.0.0.1",
      "name": "My AWS Server",
      "type": 40
    }
  ],
  "user": {
    "username": "user@example.com",
    "authHash": "..."
  }
}


💻 API Usage

Setup

npm install --save @remote.it/core

Usage

import { API, Device, ServiceTypes } from '@remote.it/core'

// Set your authentication token for API requests
API.token = token

// Register a device
const device = await Device.register('My Device Name')
console.log('UID:', device.uid)
console.log('secret:', device.secret)

// Add a service:
await device.addService(ServiceTypes.http, 3000)

Development

‍️Building executables

To generate Windows, Mac and Linux executables, run:

npm run package

The entry point for the executables is bin/remoteit which can also be run by typing:

npm run build
./bin/remoteit -h