Module Creator
Pair the Module CLI securely
Create a scoped publishing session without copying a browser account token. This opaque flow requires matching source CLI and backend versions; the published npm bootstrap.1 release does not include it.
Create and exchange a pairing code
Sign in to Fabled, open /account?tab=security#module-cli-pairing, and generate a Module CLI code. This is separate from companion-device pairing. The URI has the form fabled://module-cli/<43-character-code>, expires after 120 seconds, and can be exchanged once.
fabled module loginPaste either the complete URI or the 43-character code into the hidden prompt. You may pipe it through stdin. Pairing material is deliberately not accepted as a command-line option and is never printed.
What the saved session can do
The saved opaque credential is bound to the API origin used during pairing and expires 8 hours after issuance. The CLI does not refresh it or exchange credentials with Google. Pair again after expiry; using it does not extend its lifetime.
Protect and remove the credential
Protect the saved credential, especially on shared machines. Logout revokes a live CLI session on the server before deleting its local file. If revocation fails, the file remains so you can retry. An expired session only needs local cleanup. Legacy version-1 files are rejected for publishing; logout removes them locally but does not revoke the old Firebase session.
fabled module logout- POSIX: the CLI requires private directories and a credential file with mode 0600, rejects links, and verifies ownership.
- Windows: POSIX mode checks are unavailable. Keep credentials inside a private Windows user profile protected by that user's ACL.
- FABLED_CREDENTIALS_PATH may select another absolute path. FABLED_API_URL changes the bound API origin; HTTP is accepted only for loopback development.
Non-interactive authentication
For automation, FABLED_ACCESS_TOKEN overrides the saved login. --token-stdin overrides both and keeps the token out of process arguments.
printf '%s' "$FABLED_ACCESS_TOKEN" | \
fabled module publisher status --token-stdin