pnpm tiny <command>. The underlying entry point is
tools/cli/src/main.ts.
The CLI never starts a control plane or an application runtime. All planning,
deployment, status, and log commands target the configured remote server.
Global behavior
Every command accepts these global flags:
Configuration is resolved from flags, then
TINY_API_URL / TINY_TOKEN, then
the current saved profile. TINY_CONFIG changes the credential-file path from
its default, ~/.tiny/credentials.json.
With --json, progress stays on stderr. Commands do not prompt when stdin is
not a TTY.
Authentication and setup
App authoring and deployment
About --yes
--yes passes approval intent with the deployment request. It does not
bypass role or policy checks. In non-interactive use, a plan with required
approvals fails with APPROVAL_REQUIRED unless --yes is supplied. See
Approvals.
About deploy and waiting
deploy returns when the deployment reaches a terminal state, because the API
answers 202 and a worker builds and rolls out afterwards — a deploy that
returned is not a deploy that happened.
It reports how the artifact came to exist (Built in 12.4s, or
Reused a cached build when the content-addressed build was already in the
cache), and exits non-zero if the deployment failed, repeating the deployer’s own
reason and remediation.
In
--json mode the single result object gains a build field
({ artifactUri, cached, durationMs }) whenever a build ran.
What gets uploaded
Artifacts omit.git, node_modules, .tiny, common caches, and
credential-looking files. Add repository-specific patterns to .tinyignore.
Inspection and governance
Exit codes
Scripts should branch on these rather than on message text. Codes 5 and 7 in
particular mean “a human has to do something”, not “this failed”.