fluentcidocs
Website GitHub

Studio and publishing

Account and Tangled

Authenticate with an AT Protocol app password, remember identity, and cache public Tangled repositories.

Set account environment variables

Local pipelines and Studio do not require authentication. Publishing uses an AT Protocol account and app password:

export FLUENTCI_ACCOUNT='alice.example'
export FLUENTCI_APP_PASSWORD='replace-with-an-app-password'
fluentci whoami

FLUENTCI_ACCOUNT accepts a handle or DID. Use an app password issued by the account's PDS, not a placeholder or an unrelated service token. Set credentials in the invoking process or a runner's secret environment. The CLI has no login command in this flow.

whoami authenticates and fetches account information. When either variable is missing, it prints that the user is not logged in and explains the environment variables to set.

PDS discovery and identity

The CLI uses Jacquard to authenticate and resolve the session. Set FLUENTCI_PDS_URL only when an explicit PDS endpoint is needed. HTTPS is required, with HTTP permitted for loopback development.

Successful authentication writes account identifier, canonical DID, handle, and PDS to ~/.fluentci/account.json. It does not persist the app password or session tokens. FLUENTCI_ACCOUNT_FILE overrides this identity-file path. The desktop app and GraphQL API can read the remembered identity without receiving credentials.

A remembered identity is not proof of a currently valid session: whoami and publishing authenticate from the current environment each time.

Background Tangled indexing

After authentication the CLI schedules a detached worker to read the account's public sh.tangled.repo records from its PDS. Valid repository metadata and clone URLs are cached in local SQLite for consumers such as Studio. The worker does not inherit the app password.

Successful syncs are rate-limited, leases avoid competing workers, and a failed sync preserves the previous cache. Set FLUENTCI_TANGLED_SYNC=false to disable scheduling. GraphQL exposes cached entries only for the remembered account DID.

Registry identity

The publisher DID, not its changeable handle, identifies the author of a plugin. Two publishers can use the same plugin name. Each publisher/name can have multiple versions, with unique (author DID, name, version) records. Continue with publishing.

Made with ♥ in Antananarivo, Madagascar.
Search documentation