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:
- a local CSV file, or
- a Google Sheet.
curlyCue is primarily a local desktop application. Most processing happens on your Mac.
Quick start
- Launch curlyCue.
- Choose a mode (CSV or Google Sheets) on the relevant tab.
- If using Google Sheets:
- Open Settings → Google Sheets Settings.
- Sign in.
- Use “Browse Sheets” to select a spreadsheet.
- Use Push / Pull / Update workflows to sync changes.
Google Sheets integration (what it does)
When Google Sheets mode is enabled, curlyCue can:
- Show which Google account is signed in.
- List available spreadsheets (by name) so you can pick the correct show file.
- Read cue-related values from the spreadsheet(s) you select.
- Write updated cue data back to the spreadsheet(s) you select when you run Push/Update workflows.
curlyCue does not use the Google Drive API to download/export file contents, and does not modify Drive files.
Where data is stored
On your Mac
- OAuth tokens: stored locally in the macOS Keychain.
- Project settings/backups/logs: stored locally on your Mac.
On our servers (licensing only, if you purchase a license)
The licensing backend 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:
- https://curlycue.app/privacypolicy/
For Google verification reviewers
This section is intended to make Google OAuth verification straightforward.
Summary of requested scopes
curlyCue requests the following OAuth scopes:
- https://www.googleapis.com/auth/spreadsheets
- https://www.googleapis.com/auth/drive.metadata.readonly
- openid
- https://www.googleapis.com/auth/userinfo.email
Why each scope is needed
https://www.googleapis.com/auth/spreadsheets
Required to support the core product functionality: synchronizing cue data with the selected Google Sheet.
curlyCue uses this scope to:
- Read cell values from the selected spreadsheet(s) to populate cue data in the app.
- Write updated cue data back to the same spreadsheet(s) when the user runs Push/Update workflows.
- Insert/update/delete rows and cell values as needed to perform synchronization (depending on the workflow and user choices).
curlyCue does not use this scope to access unrelated spreadsheets.
https://www.googleapis.com/auth/drive.metadata.readonly
Required to implement “Browse Sheets” (search/select a spreadsheet by name).
curlyCue uses this scope to:
- List only Google Sheets files the user can access.
- Display basic metadata (name, ID, modified time, owner email) in the picker.
curlyCue does not use the Drive API to:
- download or export file contents,
- modify or delete files,
- move files or change permissions.
Identity scopes (openid, userinfo.email, userinfo.profile)
Required to:
- display which account is signed in,
- support switching accounts,
- confirm authorization status in the UI.
Step-by-step reviewer test flow
- Launch curlyCue.
- Open Settings → Google Sheets Settings.
- Click Sign in and complete the OAuth flow.
- Confirm the app displays the signed-in account email.
- In a tab that supports Google Sheets mode, click “Browse Sheets”.
- Confirm:
- A list of available spreadsheets appears.
- Only metadata is shown (e.g., name/owner), not file contents.
- Select a spreadsheet and confirm it is accepted by the app.
- Run a basic “read” action (Pull) to confirm the app reads values from the selected spreadsheet.
- Run a basic “write” action (Update/Push) on a small controlled range to confirm the app writes back to the selected spreadsheet.
- Sign out in Settings and confirm browsing/reading/writing is no longer available until re-authorized.
Data handling notes
- Local logs may contain operational identifiers and limited cue identifiers when diagnostics are enabled. Logs are not sent automatically; review them before sharing with support.
- OAuth tokens are stored locally in the macOS Keychain.
- curlyCue does not upload Google Sheets contents to our servers as part of normal operation.
- Licensing data (if applicable) is separate from Google data.
Need help?
- https://curlycue.app/support/