Command line

lc calls the same API as the console and Terraform. Every command can print JSON, so it fits in scripts and CI as well as at a prompt.

Install

lc is a single binary with no dependencies. It runs on amd64 and arm64 on all three systems.

Linux

The script picks the build for your machine and puts lc in /usr/local/bin:

$ curl -fsSL https://get.logi-ciel.co/lc.sh | sh
$ lc version
lc 2.4.1 (linux/amd64)

macOS

Install it with Homebrew, which also keeps it up to date:

$ brew install logi-ciel/tap/lc

Windows

In PowerShell or Windows Terminal, run winget install LogiCiel.lc. The binary is lc.exe, and every command on this page works the same way.

Log in

  1. Run lc login, which opens the console in your browser.
  2. Approve the request and pick a project, such as acme-shop.
  3. lc stores a token for that project in its config file.
$ lc login
Opening https://console.logi-ciel.co/cli/auth ...
Logged in to acme-shop as you@acme-shop.example
$ lc project list
$ lc project use acme-shop

The config file is ~/.config/lc/config.yaml on Linux and macOS, and %APPDATA%\lc\config.yaml on Windows. It can hold several projects, and lc project use switches between them.

CI has no browser, so give it a token instead. Create one as the API page shows and set it as LC_TOKEN. lc reads that variable ahead of the config file.

Common commands

Every resource has the same verbs: list, show, create, update and delete. lc help and lc <command> --help print the rest of the options.

CommandWhat it manages
lc serverServers: create, resize, stop, start and delete
lc volumeVolumes: create, attach, detach and grow
lc networkPrivate networks and the servers on them
lc firewallFirewalls, their rules and their labels
lc k8sKubernetes clusters and node pools
lc dbManaged PostgreSQL, MySQL and Valkey
lc bucketObject storage buckets and keys
lc dnsDNS zones and records
lc lbLoad balancers and their targets

A short session, from creating a server to deleting it:

$ lc server create web-1 --plan s-2 --region ee1 \
    --image debian-13 --ssh-key me
$ lc volume create data-1 --size 200 --region ee1
$ lc volume attach data-1 --server web-1
$ lc server list
NAME   PLAN  REGION  STATUS   IPV4
web-1  s-2   ee1     running  203.0.113.24
$ lc server delete web-1

delete asks for confirmation before it removes anything. Add --yes to skip the question in a script.

Output for scripts

Add --output json or --output yaml to any command. The fields match the API’s, so one tool can read both.

$ lc server list --label role=web --output json | jq -r '.[].ipv4'
203.0.113.24
203.0.113.25

lc exits with 0 when a command succeeds and with a non-zero code when it fails. Commands that take time wait until they finish, and --no-wait returns at once.

Shell completion

lc completion prints a completion script for bash, zsh, fish or PowerShell. For bash, write it to the completions directory:

$ lc completion bash > ~/.local/share/bash-completion/completions/lc

Open a fresh shell, and lc ser followed by Tab completes to lc server. Plan names, region codes and the names of your servers complete too.

logi-ciel is a design concept

This site is a portfolio piece by Soheyb. The brand, the pages and the price list are real design work; the cloud behind them is not. There’s no console to sign in to, and no server to rent.

Back to the site