Skip to content

The origin CLI

Manage Origin Cloud from your terminal.

Launch servers, manage volumes and networks, and look after your team’s access, with JSON output your scripts can read.

Install with one line

$ curl -fsSL https://packages.origincloud.eu/install.sh | sh

v1.9.15 · Linux and macOS · x86-64 and ARM64 · checksum verified

Terminal session
$ curl -fsSL https://packages.origincloud.eu/install.sh | shNext: origin id login$ origin id login$ origin compute list-instance-types# JSON on stdout, pair it with jq

Download

Pick your platform.

The one-line install picks the right file for you. Prefer to do it by hand? Choose your system and follow the steps.

System
Processor

Your file · Linux

origin-linux-amd64

For 64-bit Intel and AMD machines: most servers and laptops.

  • origin-linux-amd64The CLI itself, a single fileDownload
  • SHA256SUMSChecksums for every file in this releaseDownload
  • SHA256SUMS.ascGPG signature of the checksum fileDownload

From packages.origincloud.eu/cli/v1.9.15/

Install by hand · Linux amd64
# 1. Download the binary and the checksums$ curl -fsSLO https://packages.origincloud.eu/cli/v1.9.15/origin-linux-amd64$ curl -fsSLO https://packages.origincloud.eu/cli/v1.9.15/SHA256SUMS# 2. Check the file (optional: verify the signature first, see below)$ sha256sum --check --ignore-missing SHA256SUMS# 3. Put it on your PATH$ chmod +x origin-linux-amd64$ mkdir -p ~/.local/bin && mv origin-linux-amd64 ~/.local/bin/origin$ origin --version

Three steps

From install to your first answer.

  1. Install

    One line on Linux or macOS. The script picks your platform, checks the download and puts origin in ~/.local/bin.

    $ curl -fsSL https://packages.origincloud.eu/install.sh | shEnds with: Next: origin id login
  2. Log in

    Your browser opens the Origin login page. The CLI never asks for your password. On a server over SSH, approve a code on another device instead.

    $ origin id loginOpens your browser
    $ origin id login --deviceNo browser here, e.g. over SSH
  3. Run your first command

    See the live catalog of instance types you can launch.

    $ origin compute list-instance-typesPrints JSON: pair it with jq

What it covers

117 commands in eight groups.

From servers to roles. Each service’s docs have a full command reference, and you can add --help to any group or command.

  • origin compute22 commands

    Servers, SSH key pairs and images.

    • launch-instance
    • change-instance-type
    • generate-key-pair
  • origin network49 commands

    VPCs, subnets, security groups, floating IPs, gateways and DNS.

    • create-vpc
    • allocate-floating-ip
    • update-security-group-rules
  • origin storage13 commands

    Volumes and snapshots.

    • create-volume
    • resize-volume
    • create-snapshot
  • origin iam17 commands

    Members, invites, roles and service accounts.

    • current-user
    • invite-member
    • create-service-account
  • origin admin11 commands

    Organizations and projects.

    • register-organisation
    • create-project
    • list-projects
  • origin id2 commands

    Log in to Origin Cloud and get an access token.

    • login
    • login --device
    • token --as-header --raw
  • origin config2 commands

    Your CLI settings, such as a default username.

    • profile
    • profile-set default-username
  • origin version1 command

    Print the installed version.

    • origin version
    • origin --version

Built for scripts

Predictable output, every time.

stdout
JSON: the data the API returned. Pipe it to jq or parse it in any language.
stderr
Messages for you, such as login prompts. They never mix with the JSON.
exit 0
Success.
exit 1
Failure, with a short JSON envelope that says what went wrong and includes an error code.

Error codes you can match on

  • UNAUTHORIZED
  • FORBIDDEN
  • BAD_REQUEST
  • NOT_FOUND
  • CONFLICT
  • PAYMENT_METHOD_REQUIRED
  • PRODUCT_UNAVAILABLE
  • INSUFFICIENT_CAPACITY
  • SERVICE_UNAVAILABLE
  • INTERNAL_SERVER_ERROR
  • SERVER_ERROR
When a command failsexit 1
{  "code": "failure",  "description": "invalid input on field quota: organisation quota exceeded: vCPU usage is 38, requesting 4 more would exceed the limit of 40 (BAD_REQUEST) [correlation: 4bf92f3577b34da6a3ce929d0e0e4736]"}
Shape the JSON with jqstdout
# Pretty-print the instance type catalog$ origin compute list-instance-types | jq .
Call the API with your sessionorigin id token
# Prints an Authorization header for curl or any HTTP client$ curl -H "$(origin id token --as-header --raw)" \    https://api.origincloud.eu/graphql -d '{"query": "…"}'# For CI and scripts, use a service account instead of your own login

Verify what you download

Every release is checksummed and signed.

Each version ships with a SHA256SUMS file and its GPG signature, SHA256SUMS.asc. The install script downloads the checksums and verifies the binary for you.

Check the signature, then the file
# Import the Origin Cloud release key (once)$ curl -fsSL https://packages.origincloud.eu/origincloud-release.asc \    | gpg --import# The checksum file is signed by Origin Cloud$ gpg --verify SHA256SUMS.asc SHA256SUMS# The binary matches the signed checksum$ sha256sum --check --ignore-missing SHA256SUMS

Install options

Pin a version, pick a folder.

Set these before sh to change what the install script does.

Pin a version, pick a folder.
VariableDefaultWhat it does
ORIGIN_VERSIONlatest (v1.9.15)Install a specific version instead of the latest one.
ORIGIN_INSTALL_DIR~/.local/binThe folder origin is installed into. You are told if it is not on your PATH.
ORIGIN_BASE_URLpackages.origincloud.euDownload from a mirror of the package site.
Pin v1.9.15 and install into ~/bin
$ curl -fsSL https://packages.origincloud.eu/install.sh \    | ORIGIN_VERSION=v1.9.15 ORIGIN_INSTALL_DIR=$HOME/bin sh

v1.9.15 · latest

Read the docs

From servers to roles. Each service’s docs have a full command reference, and you can add --help to any group or command.