What the CLI can access
The CLI can access Custory through the account you sign in with. It can only work with workspaces available to that account. Workspace roles still matter: read-only access is not enough for write actions.Browser-based authentication
custory login uses a browser sign-in flow.
The CLI prints an authorization URL and code, but it should never print your local session token.
After sign-in, the CLI stores its rotating credential in your operating system credential store when available.
The current stores are:
- macOS Keychain on macOS
- Linux Secret Service on Linux when available
- a private local file with
0600permissions as the fallback
Cache-Control: no-store. Use --app-url only when you intentionally need the CLI to discover a non-default Custory app environment, such as a staging environment provided by Custory.
The current CLI OAuth scopes are:
Logout and revocation
Run:Website context
When you use--website, Custory uses the public page as product context.
Use public website input for pages you would be comfortable using as a product explanation. Do not rely on a website if it is outdated, too vague, blocked, private, or about a different product.
Website context can produce useful structure, but it can also infer incorrectly. Review the source summary and final journey.
For first-run website context, Custory applies safety limits before using the page:
- website source policy allows up to
12pages - only public
httpandhttpsURLs are accepted - localhost, private networks, metadata hosts, and DNS results resolving to private addresses are blocked
- sensitive routes such as login, signup, dashboard, account, admin, checkout, legal, privacy, and cookie pages are blocked
- redirects are rechecked on every hop
- the redirect limit is 4 hops
- the response-size limit is
1,500,000bytes - the website fetch time limit is
20seconds
Private briefs
When you use--brief or --stdin, the CLI sends the text you provide to Custory as private product context.
Good briefs include:
- product summary
- target customer
- journey goal
- key touchpoints
- known friction
- evidence gaps
- secrets
- API keys
- access tokens
- private customer records
- credentials
- source code
- repository internals that are not needed to map the customer experience
100,000 bytes are rejected.
Repository and GitHub boundary
The CLI does not ask for GitHub OAuth, repository tokens, repository cloning, or repository access. If a coding agent already has repository access, it may prepare a bounded, non-secret brief. Custory only receives what you pass through--brief or --stdin.
That boundary is important. A customer journey needs product and customer context, not broad repository access.
JSON and logs
Use--json for machine-readable output.
With --json, stdout is reserved for one JSON document. Progress and diagnostics are written to stderr.
Do not paste raw logs into public issues if they include private product context. Before sharing output with support, remove workspace IDs, journey IDs, private brief text, and anything that looks like a token.
MCP workspace scoping
MCP installation creates a workspace-scoped credential for the selected client. Use one client installation per workspace and machine when practical. This makes revocation and auditing simpler. If a machine, client, or workspace is no longer trusted, uninstall and reinstall:Stored-write verification
For journey creation, the CLI verifies important writes by reading the stored journey back from Custory. Verification checks the saved structure, not the truth of every recommendation. Your team should still review stages, steps, personas, and items against real customer evidence.Report a security concern
If you believe you found a security issue, contact Custory support through the support link in the docs navigation or the Custory community channel. Include the CLI version, command category, safe error code, and redactedcustory doctor output when relevant. Do not include tokens, credentials, private briefs, authorization headers, or private customer data.