plain.cloud
Command-line tool for Plain Cloud.
Overview
Mint a personal API token at https://plainframework.com/dashboard/api-keys/, then log in. The token is stored in your OS keyring (Keychain on macOS, Credential Manager on Windows, Secret Service on Linux); the api_url lives in plain text at ~/.plain/cloud/config.toml.
plain-cloud login
plain-cloud whoami
plain-cloud apps list
Commands
plain-cloud login— paste a token, validate it, and save it to your OS keyring.plain-cloud logout— forget the saved token.plain-cloud whoami— show the user the current token belongs to.plain-cloud apps list— list apps you have access to across every team.plain-cloud api <path>— call any API path with the saved token. Modeled ongh api:-X/--method(defaultGET);-H KEY:VALUEfor headers;-f key=valuefor string fields;-F key=valuefor typed fields (true/false/null/numbers become JSON literals,@pathreads a string from disk);--input FILE(or-for stdin) to send a raw body;--rawto skip JSON pretty-printing. Fields go in the query string forGETand in the JSON body otherwise. Exit code is 0 for 2xx, 1 otherwise.
Pass paths exactly as listed in plain-cloud openapi — the /api/ mount prefix is added for you (passing it explicitly also works).
plain-cloud api /me/
plain-cloud api /apps/ -F page=2
plain-cloud api /apps/foo/exceptions/abc123/resolve/ -X POST
plain-cloud api /apps/ -X POST --input body.json -H "X-Trace: 1"
plain-cloud openapi— fetch the OpenAPI document. No token required (the schema is metadata). Pipe intojqor save with> openapi.jsonto feed to an agent.plain-cloud open [path]— open a Plain Cloud URL in your browser. Defaults to/dashboard/.plain-cloud config— show the active keyring backend and api_url.
Self-hosted / staging
Pass --api-url at login to point at a non-production install:
plain-cloud login --api-url https://plain-cloud.example.com
Headless / CI use
Skip login entirely and pass the token via env var. This works everywhere — useful for CI, Docker, and headless Linux boxes that don't ship a keyring backend, but also as a per-shell override on a machine that's already logged in.
PLAIN_CLOUD_TOKEN=... # required
PLAIN_CLOUD_API_URL=... # optional, defaults to https://plainframework.com
When PLAIN_CLOUD_TOKEN is set, it overrides anything stored in the keyring.
FAQs
Where is my token stored?
In your OS keyring under the service name plain-cloud, keyed by the api_url. Run plain-cloud config to see which backend is active.
Can I have prod and staging tokens at the same time?
Tokens are keyed by api_url in the keyring, so multiple installations coexist. The config.toml tracks the most recent login; switch by running plain-cloud login --api-url ... again.
What if login says "no OS keyring backend available"?
You're on a system without a keyring (common on headless Linux). Use the PLAIN_CLOUD_TOKEN env var instead — see Headless / CI use.
Installation
uv tool install plain-cloud
Metadata
Release files for plain.cloud 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| plain_cloud-0.5.0.tar.gz | 13.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| plain_cloud-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 26.0 kB
Release files / plain_cloud-0.5.0.tar.gz
| Download URL | plain_cloud-0.5.0.tar.gz |
|---|---|
| Size | 13.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
24735208baa35318981416015446280b74f563fe173eb974ff38e91816f89aec
|
|
BLAKE2b-256 checksum How to use checksums |
c17374079b20d71d33bde9b573c56c223c8b0ac5ecb7d300c9fc009fc86a2fde
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / plain_cloud-0.5.0-py3-none-any.whl
| Download URL | plain_cloud-0.5.0-py3-none-any.whl |
|---|---|
| Size | 12.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
03a3726fcaff5217b9e0cc94e2ae6c4076aeb53713f930d3c98bb8905eb22cf4
|
|
BLAKE2b-256 checksum How to use checksums |
cb0f7bed55f7a30ed1125a46f0c95b99d546add8ee5e9492e970e85c91ca84b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|