Skip to content

Get started with Skippr Cloud

The skippr-cloud CLI is how you use Skippr Cloud. Install it, sign in, then run a Cloud command.

  • Status: Preview.
  • First command: skippr-cloud tables list-tables.
  • Sign in: skippr-cloud login.

The same binary is Cloud only. Self-hosted ingest is skipprd. Data Engineer is sde. Managed ELT is skippr-cloud elt.

Before you start

You need an email address that can receive a Skippr sign-in code.

1. Install the CLI

macOS and Linux:

bash
curl -fsSL https://install.skippr.io/install.sh | sh

Windows PowerShell:

powershell
irm https://install.skippr.io/install.ps1 | iex

Confirm the binary:

bash
skippr-cloud --version

Full Cloud CLI install notes are on CLI and SDKs.

2. Sign in

bash
skippr-cloud login --email you@example.com

The CLI emails you a one-time code, then waits for you to paste it. After that, later commands use the saved session. Check it with skippr-cloud whoami.

3. Run your first Cloud command

bash
skippr-cloud tables list-tables

A successful response is JSON with a tableNames array and may include an opaque nextToken when more results are available.

skippr-cloud services lists product namespaces. skippr-cloud <service> --help lists operations. Pass flags such as --table-name notes, or --input - / --input request.json when the body is nested JSON.

4. Create a table

The same create is CLI, Terraform, CDKTF TypeScript, or CDKTF Python. For provider credentials and the shared cloud provider block, see Terraform and CDKTF.

bash
skippr-cloud tables create-table --table-name notes --input - <<JSON
{
  "attributeDefinitions": [
    { "attributeName": "pk", "attributeType": "S" }
  ],
  "keySchema": [
    { "attributeName": "pk", "keyType": "HASH" }
  ]
}
JSON
hcl
resource "cloud_table" "notes" {
  table_name = "notes"
  hash_key   = "pk"
}
ts
import { CloudProvider, CloudTable } from "@skippr/provider-cloud";

const cloud = new CloudProvider(this, "cloud", { region: "eu-central-1" });

new CloudTable(this, "notes", {
  tableName: "notes",
  hashKey: "pk",
  provider: cloud,
});
python
from skippr_cdktf import CloudProvider, CloudTable

cloud = CloudProvider(self, "cloud", region="eu-central-1")

CloudTable(
    self,
    "notes",
    table_name="notes",
    hash_key="pk",
    provider=cloud,
)

Call from code

The same default credentials work in the official SDKs. The chain is a bearer token, then the workload role when you run on Skippr Cloud, then CLOUD_ACCESS_KEY_ID / CLOUD_SECRET_ACCESS_KEY.

rust
use skippr_cloud::Client;

let client = Client::from_env()?;
let tables = client
    .call_json("tables", "ListTables", serde_json::json!({}))
    .await?;
ts
import { CloudClient } from "@skippr/cloud";

const client = await CloudClient.fromEnv();
const tables = await client.call("tables", "ListTables", {});
python
from skippr_cloud import CloudClient

client = CloudClient.from_env()
tables = client.call("tables", "ListTables", {})

Terraform and CDKTF still use paired access keys. See Terraform and CDKTF.

If the command fails

  • not logged in / 401: run skippr-cloud login --email you@example.com again.
  • 403: your account is not allowed to run that command.
  • 404: check the service name and command (list-tables, not ListTables).
  • 429: wait, then retry.

Choose your next path

  • CLI: pick a Cloud service in the service catalog, then run skippr-cloud <service> <operation>. See CLI and SDKs.
  • Managed ELT: skippr-cloud elt create-pipeline / start-run. Start at ELT or the CLI ELT section.
  • Self-hosted engine: skipprd.
  • Data Engineer: sde.
  • Terraform: declare supported cloud_* resources with provider skippr/cloud. Start with Terraform and CDKTF providers.
  • CDKTF TypeScript or Python: synthesize the same Terraform resources with @skippr/provider-cloud or skippr-cdktf.
  • SDK: language packages are crates.io skippr-cloud, npm @skippr/cloud, and PyPI skippr-cloud.
  • Build an HTTP API: create routes and integrations with Gateway.