@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'
API.token = token
const device = await Device.register('My Device Name')
console.log('UID:', device.uid)
console.log('secret:', device.secret)
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