Documentation

curlyCue is a macOS desktop helper for QLab operators. It helps you synchronize cue data between QLab and a “source of truth” that you choose:

curlyCue is primarily a local desktop application. Most processing happens on your Mac.


Quick start

  1. Launch curlyCue.
  2. Choose a mode (CSV or Google Sheets) on the relevant tab.
  3. If using Google Sheets:
    • Open Settings → Google Sheets Settings.
    • Click “Choose Google Sheet”.
    • Authorize curlyCue and select one spreadsheet through Google Picker in your default browser.
  4. Use Push / Pull / Update workflows to sync changes.

Licensing

curlyCue offers monthly and yearly subscriptions. Both subscription options provide access to the same licensed features for one user seat; they differ only in billing frequency and price. Current pricing and purchase options are available at:

Subscriptions renew automatically unless canceled. Cancellation stops future renewals, and licensed access continues through the end of the current paid billing period. License activation, refresh, and deactivation are managed from the Licensing window in curlyCue.


Google Sheets integration (what it does)

When Google Sheets mode is enabled, curlyCue can:

Access is limited to files explicitly selected through Google Picker or previously granted to curlyCue. curlyCue does not list metadata for the rest of your Drive, create, delete, or move Drive files, or change Drive sharing permissions.


Where data is stored

On your Mac

If a legacy ~/Documents/CueBaby/ folder exists and ~/Documents/curlyCue/ does not, curlyCue may continue using the legacy project folder. Uninstalling the app does not necessarily remove project files, logs, or Keychain items.

On our servers (licensing only, if you purchase a license). The licensing server does not receive or store Google OAuth tokens, Google Sheets contents, Google Drive metadata, or other Google API response data. It processes licensing information separately, including customer contact details, license records, activation hashes, billing identifiers, webhook records, and transactional email jobs.

Licensing data is separate from Google data. The licensing server may retain encrypted raw Paddle webhook payloads for event processing and troubleshooting. Administrative audit records may contain administrator identity, target email address, action details, and source IP address.

See the Privacy Policy for details:


For Google verification reviewers

This section is intended to make Google OAuth verification straightforward.

Summary of requested scopes

curlyCue requests one OAuth scope:

curlyCue does not request the Google Sheets account-wide scope, Drive metadata scope, or separate Google identity, email, or profile scopes.

Why each scope is needed

https://www.googleapis.com/auth/drive.file

Required to let the user choose one Google Sheet through Google Picker and synchronize cue data with that explicitly selected file.

curlyCue uses this scope to:

Google Picker displays the Google account being used in the default browser. curlyCue does not receive the account email through its requested scope or list metadata for unrelated Drive files.

The Google Sheets and Google Drive integration is implemented in the curlyCue desktop application, not in the licensing server. The licensing backend has no Google OAuth or Google API endpoints and does not receive Google Sheets contents, Drive metadata, OAuth tokens, or Google API responses. The server is used separately for license activation and licensing-related email delivery.

Step-by-step reviewer test flow

  1. Launch curlyCue.
  2. Open Settings → Google Sheets Settings.
  3. Click “Choose Google Sheet”.
  4. Confirm the default browser opens the Google authorization and Picker flow and requests only per-file access.
  5. Select one controlled Google Sheet in Picker.
  6. Confirm the selected spreadsheet title appears in curlyCue and its tabs are available for selection.
  7. Run a basic “read” action (Pull) to confirm the app reads values from the selected spreadsheet.
  8. Run a basic “write” action (Update/Push) on a small controlled range to confirm the app writes back to the selected spreadsheet.
  9. Click “Disconnect Google” and confirm reading or writing requires authorization and spreadsheet selection again.

Data handling notes


Need help?

Back