npx skills add ...
npx skills add exploreomni/omni-agent-skills --skill omni-content-explorer
npx skills add exploreomni/omni-agent-skills --skill omni-content-explorer
Find, browse, and organize content in Omni Analytics — dashboards, workbooks, folders, and labels — using the Omni CLI. Use this skill whenever someone wants to find an existing dashboard, search for content, list workbooks, browse folders, see what dashboards exist, find popular reports, download a dashboard as PDF or PNG, favorite content, manage labels on documents, or any variant of "find the dashboard about", "what reports do we have", "show me our dashboards", "where is the sales report", or "download this dashboard".
Find, browse, and organize Omni content — dashboards, workbooks, and folders — through the Omni CLI.
Auth: a profile authenticates with an API key or OAuth. If
whoami(or any call) returns 401, hand off — ask the user to run! omni config login <profile>(OAuth 2.1 browser flow; it blocks ~2 min on the browser). Don't runconfig loginyourself in a headless/CI session (no browser → timeout); on a local interactive machine you may. See theomni-api-conventionsrule for profile setup (omni config init --auth oauth) and discovering request-body shapes with--schema.
Tip: Use
-o jsonto force structured output for programmatic parsing, or-o humanfor readable tables. The default isauto(human in a TTY, JSON when piped).
omni content list does not currently support a --labels filter. To find documents by label, use omni documents list --include labels -o json, paginate with --cursor, then filter records whose labels array contains the target label.Cannot use 'in' operator to search for 'query_id' in .... If omni dashboards download returns an error and no job ID, do not call download-status or claim the export completed. Report the dashboard identifier, the exact API error, and that no downloadable job was created.Responses include pageInfo with cursor-based pagination. Fetch next page:
Each document includes: identifier, name, type, scope, owner, folder, labels, updatedAt, hasDashboard.
Important: Always use the
identifierfield for API calls, notid. Theidfield is null for workbook-type documents and will cause silent failures.
Retrieve query definitions powering a dashboard's tiles:
Useful for understanding what a dashboard computes and re-running queries via omni-query.
Formats: pdf, png
Construct direct links to content:
The identifier comes from the document's identifier field in API responses. Always provide the user a clickable link after finding content.
When scanning all documents for field references (e.g., for impact analysis), paginate with cursor and call omni documents get-queries <identifier> for each document. Launch multiple query-fetch calls in parallel for efficiency. For field impact analysis, prefer the content-validator approach in omni-model-explorer.
omni content --help # Content operations
omni documents --help # Document operations
omni folders --help # Folder operationsomni content listomni content list --include '_count,labels'# By label: list documents with labels, then filter the JSON results client-side.
# Paginate with --cursor until pageInfo.hasNextPage is false.
omni documents list --include labels -o json
# By scope
omni content list --scope organization
# Sort by popularity or recency
omni content list --sortfield favorites
omni content list --sortfield updatedAtomni content list --cursor <nextCursor>omni documents list
# Filter by creator
omni documents list --creatorid <userId>omni documents get-queries <identifier># List
omni folders list
# Create
omni folders create "Q1 Reports" --scope organization# List labels
omni labels list
# Find documents with a label
omni documents list --include labels -o json
# Add label to document
omni documents add-label <identifier> <labelName>
# Remove label
omni documents remove-label <identifier> <labelName># Favorite
omni documents add-favorite <identifier>
# Unfavorite
omni documents remove-favorite <identifier># Start download (async)
omni dashboards download <identifier> --body '{ "format": "pdf" }'
# Poll job status only after the start command returns a job ID
omni dashboards download-status <identifier> <jobId>Dashboard: {OMNI_BASE_URL}/dashboards/{identifier}
Workbook: {OMNI_BASE_URL}/w/{identifier}