skills/vesai/SKILL.md
Power-user guide for VES AI CLI. Use for replay analysis, PostHog analytics querying, HogQL authoring, and troubleshooting local-first PostHog/GCP workflows.
npx skillsauth add north-brook/ves-ai vesaiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Use VES AI as a local-first CLI for AI-ready product analytics.
Make product analytics actionable for AI agents by:
Run before any investigation:
vesai doctor
vesai config validate
If config is missing:
vesai quickstart
Quickstart prerequisites:
gcloud auth login
gcloud auth application-default login
gcloud config set project <project-id>
PostHog key requirements:
https://app.posthog.com/settings/user-api-keysAll access + MCP server scopeReplay intelligence:
vesai replays session <session-id>
vesai replays user <email>
vesai replays group <group-id>
vesai replays query [text] [filters]
vesai replays list [text] [filters]
Analytics intelligence:
vesai events
vesai properties
vesai schema data
vesai insights hogql
vesai insights sql
vesai errors list
vesai errors details
vesai logs query
vesai logs attributes
vesai logs values
Config and runtime:
vesai config show
vesai config set <path> <value>
vesai daemon start|watch|status|stop
vesai replays list "checkout" --url /checkout --min-active 30 --limit 25
vesai replays query "checkout" --url /checkout --min-active 30 --dry-run
vesai replays query "checkout" --url /checkout --min-active 30
vesai replays list --email [email protected] --limit 20
vesai replays user [email protected]
vesai replays user contract:
vesai replays group acme
vesai insights sql "SELECT event, count() AS c FROM events GROUP BY event ORDER BY c DESC LIMIT 20"
vesai errors list --status active
vesai replays query "<text>" is literal metadata text matching, not semantic understanding.
Use structured filters to make intent explicit:
--url /checkout--email [email protected]--group acme --group-key organization--where plan=enterprise--from <iso> --to <iso>--min-active 30--limit 50Always run --dry-run before expensive replay runs when scope is unclear.
vesai insights hogql "<question>" to get a generated starting query.vesai insights sql "<query>" for deterministic iteration.vesai schema data --kind events and vesai properties ... to verify field names before complex queries.Top events:
vesai insights sql "SELECT event, count() AS c FROM events GROUP BY event ORDER BY c DESC LIMIT 20"
Daily activity trend (last 7 days):
vesai insights sql "SELECT toDate(timestamp) AS day, count() AS c FROM events WHERE timestamp >= now() - INTERVAL 7 DAY GROUP BY day ORDER BY day ASC LIMIT 100"
Top pageview URLs:
vesai insights sql "SELECT properties.\$current_url AS url, count() AS c FROM events WHERE event = '\$pageview' GROUP BY url ORDER BY c DESC LIMIT 20"
Enterprise segment example:
vesai insights sql "SELECT event, count() AS c FROM events WHERE person.properties.plan = 'enterprise' GROUP BY event ORDER BY c DESC LIMIT 20"
events.event, timestamp, distinct_id.properties.<property_key> (example: properties.$current_url).person.properties.<property_key> (example: person.properties.email).$ as \$ in shell strings.LIMIT and OFFSET to paginate if you need more than 100 rows.--raw on insights sql and insights hogql when debugging raw PostHog payloads.--no-json for human-readable output.domain filter) before concluding no signal.~/.vesai/vesai.json~/.vesai/workspace/sessions/~/.vesai/workspace/users/~/.vesai/workspace/groups/~/.vesai/cache/~/.vesai/logs/~/.vesai/tmp/gcloud hash errors (blake2b, blake2s):
export CLOUDSDK_PYTHON=/usr/bin/python3
storage.objects.create permission denied (ADC mismatch):
gcloud auth application-default revoke
gcloud auth application-default login
gcloud auth application-default set-quota-project <project-id>
Missing Playwright executable:
bunx playwright install chromium
Vertex model access errors:
vesai.json (gemini-3-pro-preview).If a schema/analytics tool returns validation errors, fall back to:
events and properties for field discovery.insights sql for direct controlled queries.tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
# Lobster Lobster executes multi-step workflows with approval checkpoints. Use it when: - User wants a repeatable automation (triage, monitor, sync) - Actions need human approval before executing (send, post, delete) - Multiple tool calls should run as one deterministic operation ## When to use Lobster | User intent | Use Lobster? | | ------------------------------------------------------ | --------------------------
tools
A CLI tool for making authenticated requests to the X (Twitter) API. Use this skill when you need to post tweets, reply, quote, search, read posts, manage followers, send DMs, upload media, or interact with any X API v2 endpoint.