Skip to content

Every CLI Usage

Installation

Terminal window
npm i -g @everywhere-computer/every-cli

Creating the Everywhere Computer environment

Running the Every CLI will start a Homestar node, API gateway, CloudFlare tunnel and locally running copy of the Everywhere Computer control panel.

To create a single function Homestar workflow

Terminal window
every dev <PATH_TO_FUNCTION_FILE>

To create a multi-function Homestar workflow

Terminal window
every dev <PATH_TO_FUNCTION_FILE> <PATH_TO_OTHER_FUNCTION_FILE>

Function development loop

Creating TypeScript functions

Write a TypeScript function with clearly specified argument and return types

hello.ts
/**
* Hello world function that will take a `name` param and return `Hello <name>`
*/
export function hello(name: string): string {
return `Hello ${name}`;
}

Start the CLI and point it to your custom TypeScript function

Terminal window
every cli dev <PATH_TO_YOUR_FUNCTION_DIR>/hello.ts

Start the CLI and point it to your custom Wasm function

Terminal window
every cli dev <PATH_TO_YOUR_FUNCTION_DIR>/hello.wasm

Setting up a tunnel

By default the every-cli will start a CloudFlare tunnel for you.

If you’re familiar with ngrok or tailscale, you can also use those to expose your local node server to the public Internet.

Passing your own Homestar config

By default the every-cli will use the default homestar.toml values to specify configuration settings for your Homestar node.

If you would like to specify your own toml file to be used as the configuration for Homestar, you can use the --config argument:

Terminal window
every cli dev <PATH_TO_YOUR_FUNCTION_DIR>/hello.wasm --config ../<YOUR_CONFIG_FILE_NAME>.toml

You can specify as many or as few values in your toml file as you like and the every-cli will prioritize the values from your config over the default values.

This means, if you only want to specify a different IPFS port, you simply need to create a toml file with

[node.network.ipfs]
port = 5002

and the every-cli will upload your functions to IPFS on port 5002 and configure Homestar to use IPFS port 5002, as well.

If you have specified your own config file, the control panel will run locally so its .env file can be overwritten if necessary:

Terminal window
βœ” IPFS is running at http://127.0.0.1:5002/debug/vars
βœ” Functions parsed and compiled
βœ” Homestar is running at http://127.0.0.1:8020
βœ” Control Panel is running at http://127.0.0.1:5178
◐ Starting cloudflared tunnel to http://127.0.0.1:3000/
... a QR code ...
➜ Local: http://127.0.0.1:3000/
➜ Tunnel: https://sometimes-comical-word-set.trycloudflare.com