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
- Run
lc login, which opens the console in your browser. - Approve the request and pick a project, such as
acme-shop. lcstores 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.lcreads 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.
| Command | What it manages |
|---|---|
lc server | Servers: create, resize, stop, start and delete |
lc volume | Volumes: create, attach, detach and grow |
lc network | Private networks and the servers on them |
lc firewall | Firewalls, their rules and their labels |
lc k8s | Kubernetes clusters and node pools |
lc db | Managed PostgreSQL, MySQL and Valkey |
lc bucket | Object storage buckets and keys |
lc dns | DNS zones and records |
lc lb | Load 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.