docs/guides/posthog-github-continuous-ai.mdx
import { OSAutoDetect } from '/snippets/OSAutoDetect.jsx' import CLIInstall from '/snippets/cli-install.mdx'
<OSAutoDetect /> <Card title="What You'll Build" icon="robot"> A fully automated workflow that uses Continue CLI with the PostHog MCP to fetch analytics data, analyze user experience issues with AI, and automatically create GitHub issues with the GitHub CLI. </Card> <Info> The new [PostHog Mission Control Integration](/mission-control/integrations/posthog) enables **[Continuous AI](/guides/continuous-ai)** for product analytics - where AI agents autonomously analyze user behavior, identify optimization opportunities, and create data-driven development tasks. This cookbook focuses on CLI-based workflows, but you can also deploy autonomous agents through Mission Control.Get Started: Use this cookbook to understand PostHog analytics fundamentals, then enable Mission Control to deploy autonomous analytics-driven agents across your organization. </Info>
This cookbook teaches you to:
Before starting, ensure you have:
gh command)First, you'll need to gather your PostHog and GitHub API credentials and add them as secrets in Continue CLI.
<Tabs> <Tab title="PostHog API Credentials"> You'll need a **Personal API Key** (not a Project API key) to access session recordings:1. Go to [Personal API Keys](https://app.posthog.com/settings/user-api-keys) in PostHog
2. Click **+ Create a personal API Key**
3. Name it "Continue CLI Session Analysis"
4. Select these scopes:
- `session_recording:read` - **Required** for accessing session data
- `feature_flag:read` - **Required** for feature flag auditing
- `insight:read`
- `query:read`
- `session_recording_playlist:read`
5. Copy the key immediately (you won't see it again!)
6. Note your **Project ID** from your PostHog project settings
7. Note your PostHog host URL (e.g., `https://us.posthog.com` or your custom domain)
8. You'll also need your POSTHOG_AUTH_HEADER value, which is simply `Bearer YOUR_API_KEY`
<Info>
Continue Secrets: The POSTHOG_AUTH_HEADER secret should be stored in
Continue's secure secrets storage. This keeps your API key safe and the MCP
automatically connects to your default PostHog project.
</Info>
1. Install GitHub CLI if not already installed
2. Run `gh auth login` and follow the prompts
3. Choose authentication method (browser or token)
4. Grant necessary permissions when prompted (`issues:write` is **required** for creating issues)
You only need to configure the PostHog MCP credential - it automatically handles project selection. To add environment variables to your Continue Mission Control account:
<Steps>
<Step title="Add the Pre-Built Agent">
Visit the [PostHog Continuous AI Agent](https://continue.dev/continuedev/posthog-continuous-ai-agent) on Continue Mission Control and click **"Install Agent"** or run:
```bash
cn --agent continuedev/posthog-continuous-ai-agent
```
This agent includes:
- **Optimized prompts** for PostHog analysis and GitHub issue creation
- **Built-in rules** for consistent formatting and error handling
- **PostHog MCP** for more reliable API interactions
</Step>
<Step title="Run the Analysis">
From your project directory, run:
```bash
cn "Give me my PostHog Session data and create GitHub issues based on the problems."
```
That's it! The agent handles everything automatically.
</Step>
</Steps>
<Info>
**Why Use the Agent?** Results are more consistent and debugging is easier thanks to the PostHog MCP integration and pre-tested prompts.
</Info>
You could also
1. Pass `--rule bekah-hawrot-weigel/posthog-github-continuous-ai-rules` to `cn` OR
2. Copy the rules to your local `.continue/rules` folder. See the [Rules Guide](/customize/deep-dives/rules#how-to-create-rules).
</Step>
<Step title="Create Your Custom Prompts">
Use this prompt with Continue CLI to analyze PostHog data and create GitHub issues:
```bash
# In cn TUI mode:
"Create GitHub issues from the PostHog analysis using gh CLI:
- For each issue, run: gh issue create --title '🔍 UX Issue: [title]' --body '[details]'
- Add labels: --label 'bug,user-experience,automated'
- Set priority labels (high/medium/low)
- Include session data and technical details in the body
Execute the commands and confirm each issue was created with URL."
```
</Step>
Why GitHub CLI over GitHub MCP: While GitHub MCP is available, it can be
token-expensive to run. The gh CLI is more efficient, requires no API tokens
(authenticated via gh auth login), and provides a cleaner command-line
experience. GitHub MCP remains an option if you prefer full MCP integration.
</Info>
Create missing labels in your repo at: Settings → Labels → New label
</Warning> <Info> **What Continue CLI Does:** - Parses your analysis results automatically - Makes authenticated GitHub API calls using your stored token - Creates properly formatted issues with appropriate labels - Checks for duplicate issues to avoid spam - Provides confirmation with issue URLs </Info>After completing this guide, you have a complete Continuous AI system that:
Monitors user experience - Automatically fetches and analyzes PostHog session data
Identifies problems intelligently - Uses AI to spot patterns and technical issues
Creates actionable tasks - Generates GitHub issues with specific recommendations
Runs autonomously - Operates daily without manual intervention using GitHub Actions
Scales with your team - Handles growing amounts of session data automatically
**Protect Your API Keys:**
- Store all credentials as GitHub Secrets, never in
code
- Use Continue CLI's secure secret storage
- Limit token scopes to minimum required permissions
- Rotate API keys regularly (every 90 days recommended)
- Monitor token usage for unusual activity
Here are practical examples of what you can build with PostHog MCP and Continue CLI:
The main workflow above focuses on analyzing session recordings to identify UX issues and create GitHub issues automatically.
What this workflow does:
Example Continue CLI prompts:
# Get all feature flags and analyze them
cn "Use PostHog MCP to fetch all feature flags with feature-flag-get-all. Then analyze each flag to identify: 1) Flags that are 100% rolled out and could be removed, 2) Flags that haven't been updated in 90+ days, 3) Flags with complex targeting that might need simplification, 4) Experimental flags that should be cleaned up."
# Create cleanup issues for identified flags
cn "For each problematic feature flag identified, create a GitHub issue using gh CLI:
- Title: '🏁 Feature Flag Cleanup: [flag_name]'
- Include flag details: rollout percentage, last modified date, targeting rules
- Add labels: 'technical-debt', 'feature-flag', 'cleanup'
- Set priority based on risk level (high for 100% rollouts, medium for stale flags)
- Include specific recommendations for each flag"
# Audit flag performance impact
cn "Cross-reference feature flags with PostHog performance metrics to identify flags that may be impacting user experience or site performance. Create performance-focused GitHub issues for flags showing negative impact."
Required PostHog MCP Tools:
feature-flag-get-all - Retrieve all feature flagsfeature-flag-get-definition - Get detailed flag configurationquery-run - Run analytics queries to check flag usageinsights-get-all - Get insights related to flag performanceSample Output: This workflow creates GitHub issues like:
Consider enhancing your workflow with these advanced Continue CLI prompts:
<CardGroup cols={2}> <Card title="Performance Analysis" icon="chart-line"> "Analyze [PostHog performance metrics](https://posthog.com/docs/web-analytics) alongside session recordings to identify slow page loads affecting user experience" </Card> <Card title="Error Correlation" icon="bug"> "Cross-reference JavaScript console errors with user actions to identify the root cause of UX issues" </Card> <Card title="Feature Flag Performance Impact" icon="flag"> "Use PostHog MCP to correlate feature flag rollouts with performance metrics and user behavior changes to identify flags causing issues" </Card> <Card title="Custom Slack Alerts" icon="slack"> "Create Slack alerts when critical UX issues are detected in PostHog sessions or when feature flags need attention" </Card> </CardGroup>