Skip to main content

posthog-cli-queries

Use when querying this project's PostHog data from the terminal, including recent events, event breakdowns, active-user metrics, and dashboard metadata or cached insight results.

跳到安装

来源信息

仓库
debugtheworldbot/keyStats
最近来源活动
2026年4月3日 13:46
检测到的 SKILL.md 语言
英语
星标
1,451
分支
60

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
3 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
posthog-cli-queries
description
Use when querying this project's PostHog data from the terminal, including recent events, event breakdowns, active-user metrics, and dashboard metadata or cached insight results.
# PostHog CLI Queries Query this project's PostHog data from the terminal without guessing command syntax. ## When To Use - The user asks to inspect PostHog events, trends, or dashboard data - The task needs real data from this project's PostHog environment - The user wants a repeatable terminal command instead of clicking in the PostHog UI ## Preconditions - `posthog-cli` must be installed and authenticated - Query commands need a personal API key with `query:read` - Dashboard API helpers read `~/.posthog/credentials.json` - This project currently uses PostHog environment `292804` on `https://us.posthog.com`, but scripts read the active local credentials instead of hardcoding values ## Default Workflow 1. Verify auth: ```bash posthog-cli exp query run 'SELECT 1 AS ok' ``` 2. For event data, use `posthog-cli exp query run '<hogql>'` 3. For dashboard metadata or cached dashboard insight results, use the scripts in this skill because the CLI has no dedicated dashboard command 4. Return: - the exact command used - the key rows or aggregates - any metric caveats such as partial-day data, test-account filtering, or missing properties Shell quoting rule: - Use single quotes around HogQL when the query contains properties like `$app_version` or `$os`, otherwise the shell may expand them before the CLI sees the query ## Common Queries Recent events: ```bash posthog-cli exp query run 'SELECT event, timestamp FROM events ORDER BY timestamp DESC LIMIT 20' ``` Top events in the last 7 days: ```bash posthog-cli exp query run 'SELECT event, count() AS c FROM events WHERE timestamp > now() - INTERVAL 7 DAY GROUP BY event ORDER BY c DESC LIMIT 15' ``` Top `pageview` pages in the last 7 days: ```bash posthog-cli exp query run "SELECT properties.page_name AS page_name, count() AS c FROM events WHERE event = 'pageview' AND timestamp > now() - INTERVAL 7 DAY GROUP BY page_name ORDER BY c DESC LIMIT 15" ``` Top `click` targets in the last 7 days: ```bash posthog-cli exp query run "SELECT properties.element_name AS element_name, count() AS c FROM events WHERE event = 'click' AND timestamp > now() - INTERVAL 7 DAY GROUP BY element_name ORDER BY c DESC LIMIT 15" ``` Recent app versions from events: ```bash posthog-cli exp query run 'SELECT properties.$app_version AS app_version, count() AS c FROM events WHERE timestamp > now() - INTERVAL 7 DAY GROUP BY app_version ORDER BY c DESC LIMIT 20' ``` Recent OS breakdown: ```bash posthog-cli exp query run 'SELECT properties.$os AS os, count(DISTINCT person_id) AS users FROM events WHERE timestamp > now() - INTERVAL 7 DAY GROUP BY os ORDER BY users DESC LIMIT 20' ``` Hourly volume in the last 24 hours: ```bash posthog-cli exp query run 'SELECT toStartOfHour(timestamp) AS hour, count() AS c FROM events WHERE timestamp > now() - INTERVAL 24 HOUR GROUP BY hour ORDER BY hour DESC LIMIT 24' ``` ## Dashboard Commands List dashboards: ```bash bash .agents/skills/posthog-cli-queries/scripts/dashboard_list.sh ``` Fetch a dashboard as JSON: ```bash bash .agents/skills/posthog-cli-queries/scripts/dashboard_fetch.sh 1075953 ``` Fetch a dashboard summary: ```bash bash .agents/skills/posthog-cli-queries/scripts/dashboard_fetch.sh 1075953 --summary ``` Current known dashboard: ```bash bash .agents/skills/posthog-cli-queries/scripts/dashboard_fetch.sh 1075953 --summary ``` ## Dashboard Analysis Notes - Dashboard results are usually cached insight payloads, so `last_refresh` matters - Do not compare a partial current day against a full previous day without saying so explicitly - Check `filterTestAccounts` before comparing tiles with each other - If `$os` or `$app_version` has a large `null` bucket, call out that the property coverage is incomplete - If event names overlap like `app_open` and `Application Opened`, mention that the taxonomy is split ## Useful jq Snippets Extract tile names from a fetched dashboard JSON: ```bash jq -r '.tiles[] | select(.insight != null) | [.id, .insight.id, .insight.name] | @tsv' ``` Show top breakdown rows from one insight result: ```bash jq -r '.tiles[] | select(.insight.id==6334935) | .insight.result[] | [.label, .count, (.data[-1] // 0)] | @tsv' ``` ## Failure Handling - If `posthog-cli exp query run` says `missing required scope 'query:read'`, fix the personal API key scopes first - If a query times out, narrow the date range or aggregate more aggressively - If dashboard scripts fail, confirm `~/.posthog/credentials.json` exists and contains `host`, `token`, and `env_id`
在 GitHub 查看