spinningcatstudios / lingara-cli
lingara, the Lingara developer CLI: OAuth clients, apps, embeds, webhooks and canvases
Package info
github.com/Spinning-Cat-Studios/lingara-cli-php
pkg:composer/spinningcatstudios/lingara-cli
Requires
- php: >=8.2
- devium/toml: ^1.1
- opis/json-schema: ^2.6
- symfony/console: ^7.4
- symfony/http-client: ^7.4
- symfony/process: ^7.4
Requires (Dev)
- phpstan/phpstan: ^2.1
- phpunit/phpunit: ^11.5
- slevomat/coding-standard: ^8.20
- squizlabs/php_codesniffer: ^3.13
Suggests
- ext-pcntl: lingara apps dev on macOS and Linux: traps Ctrl-C and SIGTERM so the session parks and its children stop
- ext-posix: lingara apps dev on macOS and Linux: starts the app and the tunnel in their own process groups and stops each whole group
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-22 19:45:32 UTC
README
lingara creates and manages the things a developer builds on Lingara: OAuth
clients, apps, embeds, inbound and outbound webhooks, and canvases.
composer global require spinningcatstudios/lingara-cli
or download lingara.phar from a release of
https://github.com/Spinning-Cat-Studios/lingara_cli/releases. PHP 8.2 or
later; apps dev also needs the pcntl and posix extensions.
Sign in
lingara login # the browser, through a loopback redirect (PKCE) lingara login --device # a code to enter elsewhere, for SSH sessions lingara whoami lingara logout
Credentials go to ~/.config/lingara/credentials.json (mode 0600) only:
this kit has no keychain support, and LINGARA_KEYRING=keychain is refused.
--profile <name> (or LINGARA_PROFILE) keeps several apart.
CI
Make a CI client once, then give the job its id and secret:
lingara client create --name 'Release pipeline' --ci export LINGARA_PLATFORM_CLIENT_ID=… LINGARA_PLATFORM_CLIENT_SECRET=…
Every command then signs in with those, and stores nothing.
Deleting asks twice
A delete asks y/n, then asks you to type your developer email. Away from a
terminal it refuses unless both flags are on the command line:
lingara client delete <id> -y --confirm you@example.com
Neither flag comes from the environment or configuration.
Output
Tables for people; --json for scripts, which prints the platform's JSON
unchanged (a list as one array of every page). Exit codes are listed in the
reference and are the same in every language of this CLI.