[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-mixpanel-headless-setup":3,"mdc-owlwct-key":33,"related-org-openai-mixpanel-headless-setup":1308,"related-repo-openai-mixpanel-headless-setup":1515},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"mixpanel-headless-setup","set up Mixpanel headless analytics","This skill installs mixpanel_headless, pandas, numpy, matplotlib, seaborn, networkx, anytree, scipy (and pyarrow on Python 3.11+), then verifies Mixpanel credentials. It should be invoked when setting up a new environment for Mixpanel data analysis, when dependencies are missing, or when configuring service account or OAuth credentials for the first time.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19],{"name":13,"slug":14,"type":15},"Data Analysis","data-analysis","tag",{"name":17,"slug":18,"type":15},"Python","python",{"name":20,"slug":21,"type":15},"Analytics","analytics",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-06-30T19:00:57.102",null,465,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fmixpanel-headless\u002Fskills\u002Fsetup","---\nname: mixpanel-headless-setup\ndescription: This skill installs mixpanel_headless, pandas, numpy, matplotlib, seaborn, networkx, anytree, scipy (and pyarrow on Python 3.11+), then verifies Mixpanel credentials. It should be invoked when setting up a new environment for Mixpanel data analysis, when dependencies are missing, or when configuring service account or OAuth credentials for the first time.\ndisable-model-invocation: false\nallowed-tools: Bash\n---\n\n# mixpanel-headless — Setup\n\nInstall dependencies and verify credentials for CodeMode analytics.\n\n## Run Setup\n\nBefore running bundled scripts, set `SKILL_DIR` to the absolute path of this\n`skills\u002Fsetup` directory.\n\n```bash\nbash $SKILL_DIR\u002Fscripts\u002Fsetup.sh\n```\n\nThis will:\n1. Verify Python 3.10+ is available\n2. Install `mixpanel_headless`, `pandas`, `numpy`, `matplotlib`, `seaborn`, `networkx>=3.0`, `anytree>=2.8.0`, `scipy`, and `pyarrow>=17.0` on Python 3.11+ (tries uv, pip in order)\n3. Verify all packages import successfully (including pyarrow on 3.11+, networkx, anytree, and scipy)\n4. Check for configured Mixpanel credentials (single schema — Account → Project → Workspace)\n\n## Check Credentials\n\nAfter installation, check the active session:\n\n```bash\npython3 $SKILL_DIR\u002F..\u002Fmixpanelyst\u002Fscripts\u002Fauth_manager.py session\n```\n\nParse the JSON `state` field:\n- **`ok`** — credentials configured. Show `account.name` → project `project.id` and proceed to verification.\n- **`needs_account`** — no account configured. Read `next` for onboarding suggestions and follow \"If Credentials Are Missing\" below.\n- **`needs_project`** — account configured but no project pinned. Suggest `mp project list` then `mp project use \u003Cid>`.\n- **`error`** — show `error.message`. If `error.actionable` is true, the message names a concrete next command.\n\n## If Credentials Are Missing\n\nIf no credentials are configured, guide the user to one of these methods:\n\n### Recommended: `mp login`\n\nThe frictionless one-shot path. Tell the user to run:\n\n```bash\nmp login\n```\n\n`mp login` runs the right auth flow for the environment, derives the\naccount name from `\u002Fme`, and pins a default project. For laptops with a\nusable browser, this opens the PKCE flow; for environments with\n`MP_USERNAME` + `MP_SECRET` set, it skips the browser and uses the\nservice-account path; for `MP_OAUTH_TOKEN` set, it uses the static\nbearer.\n\nRegion behavior:\n- `service_account` and `oauth_token` paths probe `us → eu → in` when\n  `--region` is omitted.\n- `oauth_browser` (the bare-`mp login` default) defaults to `us`. EU and\n  India browser users must pass `--region eu` or `--region in`.\n\nUseful flags: `--name NAME`, `--region us|eu|in`, `--project ID`,\n`--service-account`, `--token-env VAR`, `--no-browser`, `--secret-stdin`.\n\n### Alternative: Guided Setup (explicit account add)\n\nUse the `mixpanel-auth` skill's account-add workflow for a\nstep-by-step walkthrough. The workflow never prompts for secrets in\nconversation — it instructs the user to run `mp account add ...`\nthemselves so the secret is read with hidden input. Use this path when\nthe user wants explicit control over the account name, region, and type\nat registration time.\n\n### Alternative: Service-Account Environment Variables (temporary)\n\nFor quick testing, set all four variables in the shell — the resolver\npicks them up directly without account registration:\n\n```bash\nexport MP_USERNAME=\"service-account-username\"\nexport MP_SECRET=\"service-account-secret\"\nexport MP_PROJECT_ID=\"12345\"\nexport MP_REGION=\"us\"  # or \"eu\", \"in\"\n```\n\n### Alternative: Raw OAuth Bearer Token (best for agents \u002F CI)\n\nIf the user has an OAuth 2.0 access token from another source, they can use\nit directly without the PKCE browser flow:\n\n```bash\nexport MP_OAUTH_TOKEN=\"\u003Cbearer-token>\"\nexport MP_PROJECT_ID=\"12345\"\nexport MP_REGION=\"us\"  # or \"eu\", \"in\"\n```\n\nThis is the recommended mode for non-interactive contexts. The full\nservice-account env-var set (`MP_USERNAME` + `MP_SECRET` + `MP_PROJECT_ID`\n+ `MP_REGION`) takes precedence when both sets are complete.\n\n## Remote Environment\n\nIf running inside a remote or sandboxed agent environment, credentials work differently:\n\n- **OAuth login and interactive account setup are NOT available** (no browser, no host terminal access)\n- Credentials must be configured on the **host machine** before starting the remote session\n\n### If No Credentials Found in the Remote Session\n\nTell the user:\n\n> No Mixpanel credentials found in this remote session.\n>\n> On your **host machine** (outside the remote session), run:\n> ```\n> mp account export-bridge --to ~\u002F.claude\u002Fmixpanel\u002Fauth.json\n> ```\n> This writes a v2 bridge file embedding your account record (and any\n> oauth_browser tokens) so the remote session can read your credentials\n> at startup.\n>\n> Then **start a new remote session** — credentials will be available automatically.\n\nDo NOT suggest the account-login or account-add interactive workflows — these won't work inside remote sessions without browser or terminal access.\n\n### If Bridge File Found But Token Expired\n\nThe library will auto-refresh the OAuth token via the on-disk refresh\ntoken (no browser needed). If refresh fails:\n\n> Your OAuth session has expired and could not be refreshed.\n> On your host machine, run:\n> ```\n> mp login --name personal             # re-authenticate (or `mp account login personal`)\n> mp account export-bridge --to ~\u002F.claude\u002Fmixpanel\u002Fauth.json\n> ```\n> Then start a new remote session.\n\n## Verify Everything Works\n\n```bash\npython3 $SKILL_DIR\u002F..\u002Fmixpanelyst\u002Fscripts\u002Fauth_manager.py account test\n```\n\nThe subcommand never raises — read `result.ok` to determine outcome.\n- `result.ok: true` → setup is complete; the user can ask analytics questions.\n- `result.ok: false` → suggest the `mixpanel-auth` account-test workflow for detailed diagnostics.\n\n## Post-Setup: Explore Your Data\n\nOnce authenticated, these slash commands help orient the user:\n\n- `mixpanel-auth` project-list workflow — discover all accessible projects via `\u002Fme`\n- `mixpanel-auth` session workflow — see active account \u002F project \u002F workspace\n- `mixpanel-auth` project-use workflow — switch to a different project\n- `mixpanel-auth` target-add workflow — save a named cursor position\n\nThe user can also construct a Workspace targeting a specific account \u002F project \u002F\nworkspace directly:\n\n```python\nimport mixpanel_headless as mp\n\nws = mp.Workspace()                                  # default session\nws = mp.Workspace(account=\"team\")                    # named account\nws = mp.Workspace(project=\"67890\")                   # explicit project (active account)\nws = mp.Workspace(account=\"team\", project=\"67890\")   # both axes\nws.use(project=\"98765\").events()                     # in-session switch (no re-auth)\n```\n\n_The mixpanelyst skill auto-triggers on analytics questions. For the analytical frameworks that guide investigations, see [analytical-frameworks.md](..\u002Fmixpanelyst\u002Freferences\u002Fanalytical-frameworks.md). For the complete Python API, see [python-api.md](..\u002Fmixpanelyst\u002Freferences\u002Fpython-api.md)._\n",{"data":34,"body":37},{"name":4,"description":6,"disable-model-invocation":35,"allowed-tools":36},false,"Bash",{"type":38,"children":39},"root",[40,48,54,61,83,117,122,213,219,224,253,266,383,389,394,407,412,432,474,479,558,613,619,640,646,651,788,794,799,893,916,930,936,941,966,972,977,1024,1029,1035,1040,1062,1068,1100,1113,1145,1151,1156,1204,1209,1277,1302],{"type":41,"tag":42,"props":43,"children":44},"element","h1",{"id":4},[45],{"type":46,"value":47},"text","mixpanel-headless — Setup",{"type":41,"tag":49,"props":50,"children":51},"p",{},[52],{"type":46,"value":53},"Install dependencies and verify credentials for CodeMode analytics.",{"type":41,"tag":55,"props":56,"children":58},"h2",{"id":57},"run-setup",[59],{"type":46,"value":60},"Run Setup",{"type":41,"tag":49,"props":62,"children":63},{},[64,66,73,75,81],{"type":46,"value":65},"Before running bundled scripts, set ",{"type":41,"tag":67,"props":68,"children":70},"code",{"className":69},[],[71],{"type":46,"value":72},"SKILL_DIR",{"type":46,"value":74}," to the absolute path of this\n",{"type":41,"tag":67,"props":76,"children":78},{"className":77},[],[79],{"type":46,"value":80},"skills\u002Fsetup",{"type":46,"value":82}," directory.",{"type":41,"tag":84,"props":85,"children":90},"pre",{"className":86,"code":87,"language":88,"meta":89,"style":89},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","bash $SKILL_DIR\u002Fscripts\u002Fsetup.sh\n","bash","",[91],{"type":41,"tag":67,"props":92,"children":93},{"__ignoreMap":89},[94],{"type":41,"tag":95,"props":96,"children":99},"span",{"class":97,"line":98},"line",1,[100,105,111],{"type":41,"tag":95,"props":101,"children":103},{"style":102},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[104],{"type":46,"value":88},{"type":41,"tag":95,"props":106,"children":108},{"style":107},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[109],{"type":46,"value":110}," $SKILL_DIR",{"type":41,"tag":95,"props":112,"children":114},{"style":113},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[115],{"type":46,"value":116},"\u002Fscripts\u002Fsetup.sh\n",{"type":41,"tag":49,"props":118,"children":119},{},[120],{"type":46,"value":121},"This will:",{"type":41,"tag":123,"props":124,"children":125},"ol",{},[126,132,203,208],{"type":41,"tag":127,"props":128,"children":129},"li",{},[130],{"type":46,"value":131},"Verify Python 3.10+ is available",{"type":41,"tag":127,"props":133,"children":134},{},[135,137,143,145,151,152,158,159,165,166,172,173,179,180,186,187,193,195,201],{"type":46,"value":136},"Install ",{"type":41,"tag":67,"props":138,"children":140},{"className":139},[],[141],{"type":46,"value":142},"mixpanel_headless",{"type":46,"value":144},", ",{"type":41,"tag":67,"props":146,"children":148},{"className":147},[],[149],{"type":46,"value":150},"pandas",{"type":46,"value":144},{"type":41,"tag":67,"props":153,"children":155},{"className":154},[],[156],{"type":46,"value":157},"numpy",{"type":46,"value":144},{"type":41,"tag":67,"props":160,"children":162},{"className":161},[],[163],{"type":46,"value":164},"matplotlib",{"type":46,"value":144},{"type":41,"tag":67,"props":167,"children":169},{"className":168},[],[170],{"type":46,"value":171},"seaborn",{"type":46,"value":144},{"type":41,"tag":67,"props":174,"children":176},{"className":175},[],[177],{"type":46,"value":178},"networkx>=3.0",{"type":46,"value":144},{"type":41,"tag":67,"props":181,"children":183},{"className":182},[],[184],{"type":46,"value":185},"anytree>=2.8.0",{"type":46,"value":144},{"type":41,"tag":67,"props":188,"children":190},{"className":189},[],[191],{"type":46,"value":192},"scipy",{"type":46,"value":194},", and ",{"type":41,"tag":67,"props":196,"children":198},{"className":197},[],[199],{"type":46,"value":200},"pyarrow>=17.0",{"type":46,"value":202}," on Python 3.11+ (tries uv, pip in order)",{"type":41,"tag":127,"props":204,"children":205},{},[206],{"type":46,"value":207},"Verify all packages import successfully (including pyarrow on 3.11+, networkx, anytree, and scipy)",{"type":41,"tag":127,"props":209,"children":210},{},[211],{"type":46,"value":212},"Check for configured Mixpanel credentials (single schema — Account → Project → Workspace)",{"type":41,"tag":55,"props":214,"children":216},{"id":215},"check-credentials",[217],{"type":46,"value":218},"Check Credentials",{"type":41,"tag":49,"props":220,"children":221},{},[222],{"type":46,"value":223},"After installation, check the active session:",{"type":41,"tag":84,"props":225,"children":227},{"className":86,"code":226,"language":88,"meta":89,"style":89},"python3 $SKILL_DIR\u002F..\u002Fmixpanelyst\u002Fscripts\u002Fauth_manager.py session\n",[228],{"type":41,"tag":67,"props":229,"children":230},{"__ignoreMap":89},[231],{"type":41,"tag":95,"props":232,"children":233},{"class":97,"line":98},[234,239,243,248],{"type":41,"tag":95,"props":235,"children":236},{"style":102},[237],{"type":46,"value":238},"python3",{"type":41,"tag":95,"props":240,"children":241},{"style":107},[242],{"type":46,"value":110},{"type":41,"tag":95,"props":244,"children":245},{"style":113},[246],{"type":46,"value":247},"\u002F..\u002Fmixpanelyst\u002Fscripts\u002Fauth_manager.py",{"type":41,"tag":95,"props":249,"children":250},{"style":113},[251],{"type":46,"value":252}," session\n",{"type":41,"tag":49,"props":254,"children":255},{},[256,258,264],{"type":46,"value":257},"Parse the JSON ",{"type":41,"tag":67,"props":259,"children":261},{"className":260},[],[262],{"type":46,"value":263},"state",{"type":46,"value":265}," field:",{"type":41,"tag":267,"props":268,"children":269},"ul",{},[270,301,323,353],{"type":41,"tag":127,"props":271,"children":272},{},[273,283,285,291,293,299],{"type":41,"tag":274,"props":275,"children":276},"strong",{},[277],{"type":41,"tag":67,"props":278,"children":280},{"className":279},[],[281],{"type":46,"value":282},"ok",{"type":46,"value":284}," — credentials configured. Show ",{"type":41,"tag":67,"props":286,"children":288},{"className":287},[],[289],{"type":46,"value":290},"account.name",{"type":46,"value":292}," → project ",{"type":41,"tag":67,"props":294,"children":296},{"className":295},[],[297],{"type":46,"value":298},"project.id",{"type":46,"value":300}," and proceed to verification.",{"type":41,"tag":127,"props":302,"children":303},{},[304,313,315,321],{"type":41,"tag":274,"props":305,"children":306},{},[307],{"type":41,"tag":67,"props":308,"children":310},{"className":309},[],[311],{"type":46,"value":312},"needs_account",{"type":46,"value":314}," — no account configured. Read ",{"type":41,"tag":67,"props":316,"children":318},{"className":317},[],[319],{"type":46,"value":320},"next",{"type":46,"value":322}," for onboarding suggestions and follow \"If Credentials Are Missing\" below.",{"type":41,"tag":127,"props":324,"children":325},{},[326,335,337,343,345,351],{"type":41,"tag":274,"props":327,"children":328},{},[329],{"type":41,"tag":67,"props":330,"children":332},{"className":331},[],[333],{"type":46,"value":334},"needs_project",{"type":46,"value":336}," — account configured but no project pinned. Suggest ",{"type":41,"tag":67,"props":338,"children":340},{"className":339},[],[341],{"type":46,"value":342},"mp project list",{"type":46,"value":344}," then ",{"type":41,"tag":67,"props":346,"children":348},{"className":347},[],[349],{"type":46,"value":350},"mp project use \u003Cid>",{"type":46,"value":352},".",{"type":41,"tag":127,"props":354,"children":355},{},[356,365,367,373,375,381],{"type":41,"tag":274,"props":357,"children":358},{},[359],{"type":41,"tag":67,"props":360,"children":362},{"className":361},[],[363],{"type":46,"value":364},"error",{"type":46,"value":366}," — show ",{"type":41,"tag":67,"props":368,"children":370},{"className":369},[],[371],{"type":46,"value":372},"error.message",{"type":46,"value":374},". If ",{"type":41,"tag":67,"props":376,"children":378},{"className":377},[],[379],{"type":46,"value":380},"error.actionable",{"type":46,"value":382}," is true, the message names a concrete next command.",{"type":41,"tag":55,"props":384,"children":386},{"id":385},"if-credentials-are-missing",[387],{"type":46,"value":388},"If Credentials Are Missing",{"type":41,"tag":49,"props":390,"children":391},{},[392],{"type":46,"value":393},"If no credentials are configured, guide the user to one of these methods:",{"type":41,"tag":395,"props":396,"children":398},"h3",{"id":397},"recommended-mp-login",[399,401],{"type":46,"value":400},"Recommended: ",{"type":41,"tag":67,"props":402,"children":404},{"className":403},[],[405],{"type":46,"value":406},"mp login",{"type":41,"tag":49,"props":408,"children":409},{},[410],{"type":46,"value":411},"The frictionless one-shot path. Tell the user to run:",{"type":41,"tag":84,"props":413,"children":415},{"className":86,"code":414,"language":88,"meta":89,"style":89},"mp login\n",[416],{"type":41,"tag":67,"props":417,"children":418},{"__ignoreMap":89},[419],{"type":41,"tag":95,"props":420,"children":421},{"class":97,"line":98},[422,427],{"type":41,"tag":95,"props":423,"children":424},{"style":102},[425],{"type":46,"value":426},"mp",{"type":41,"tag":95,"props":428,"children":429},{"style":113},[430],{"type":46,"value":431}," login\n",{"type":41,"tag":49,"props":433,"children":434},{},[435,440,442,448,450,456,458,464,466,472],{"type":41,"tag":67,"props":436,"children":438},{"className":437},[],[439],{"type":46,"value":406},{"type":46,"value":441}," runs the right auth flow for the environment, derives the\naccount name from ",{"type":41,"tag":67,"props":443,"children":445},{"className":444},[],[446],{"type":46,"value":447},"\u002Fme",{"type":46,"value":449},", and pins a default project. For laptops with a\nusable browser, this opens the PKCE flow; for environments with\n",{"type":41,"tag":67,"props":451,"children":453},{"className":452},[],[454],{"type":46,"value":455},"MP_USERNAME",{"type":46,"value":457}," + ",{"type":41,"tag":67,"props":459,"children":461},{"className":460},[],[462],{"type":46,"value":463},"MP_SECRET",{"type":46,"value":465}," set, it skips the browser and uses the\nservice-account path; for ",{"type":41,"tag":67,"props":467,"children":469},{"className":468},[],[470],{"type":46,"value":471},"MP_OAUTH_TOKEN",{"type":46,"value":473}," set, it uses the static\nbearer.",{"type":41,"tag":49,"props":475,"children":476},{},[477],{"type":46,"value":478},"Region behavior:",{"type":41,"tag":267,"props":480,"children":481},{},[482,517],{"type":41,"tag":127,"props":483,"children":484},{},[485,491,493,499,501,507,509,515],{"type":41,"tag":67,"props":486,"children":488},{"className":487},[],[489],{"type":46,"value":490},"service_account",{"type":46,"value":492}," and ",{"type":41,"tag":67,"props":494,"children":496},{"className":495},[],[497],{"type":46,"value":498},"oauth_token",{"type":46,"value":500}," paths probe ",{"type":41,"tag":67,"props":502,"children":504},{"className":503},[],[505],{"type":46,"value":506},"us → eu → in",{"type":46,"value":508}," when\n",{"type":41,"tag":67,"props":510,"children":512},{"className":511},[],[513],{"type":46,"value":514},"--region",{"type":46,"value":516}," is omitted.",{"type":41,"tag":127,"props":518,"children":519},{},[520,526,528,533,535,541,543,549,551,557],{"type":41,"tag":67,"props":521,"children":523},{"className":522},[],[524],{"type":46,"value":525},"oauth_browser",{"type":46,"value":527}," (the bare-",{"type":41,"tag":67,"props":529,"children":531},{"className":530},[],[532],{"type":46,"value":406},{"type":46,"value":534}," default) defaults to ",{"type":41,"tag":67,"props":536,"children":538},{"className":537},[],[539],{"type":46,"value":540},"us",{"type":46,"value":542},". EU and\nIndia browser users must pass ",{"type":41,"tag":67,"props":544,"children":546},{"className":545},[],[547],{"type":46,"value":548},"--region eu",{"type":46,"value":550}," or ",{"type":41,"tag":67,"props":552,"children":554},{"className":553},[],[555],{"type":46,"value":556},"--region in",{"type":46,"value":352},{"type":41,"tag":49,"props":559,"children":560},{},[561,563,569,570,576,577,583,585,591,592,598,599,605,606,612],{"type":46,"value":562},"Useful flags: ",{"type":41,"tag":67,"props":564,"children":566},{"className":565},[],[567],{"type":46,"value":568},"--name NAME",{"type":46,"value":144},{"type":41,"tag":67,"props":571,"children":573},{"className":572},[],[574],{"type":46,"value":575},"--region us|eu|in",{"type":46,"value":144},{"type":41,"tag":67,"props":578,"children":580},{"className":579},[],[581],{"type":46,"value":582},"--project ID",{"type":46,"value":584},",\n",{"type":41,"tag":67,"props":586,"children":588},{"className":587},[],[589],{"type":46,"value":590},"--service-account",{"type":46,"value":144},{"type":41,"tag":67,"props":593,"children":595},{"className":594},[],[596],{"type":46,"value":597},"--token-env VAR",{"type":46,"value":144},{"type":41,"tag":67,"props":600,"children":602},{"className":601},[],[603],{"type":46,"value":604},"--no-browser",{"type":46,"value":144},{"type":41,"tag":67,"props":607,"children":609},{"className":608},[],[610],{"type":46,"value":611},"--secret-stdin",{"type":46,"value":352},{"type":41,"tag":395,"props":614,"children":616},{"id":615},"alternative-guided-setup-explicit-account-add",[617],{"type":46,"value":618},"Alternative: Guided Setup (explicit account add)",{"type":41,"tag":49,"props":620,"children":621},{},[622,624,630,632,638],{"type":46,"value":623},"Use the ",{"type":41,"tag":67,"props":625,"children":627},{"className":626},[],[628],{"type":46,"value":629},"mixpanel-auth",{"type":46,"value":631}," skill's account-add workflow for a\nstep-by-step walkthrough. The workflow never prompts for secrets in\nconversation — it instructs the user to run ",{"type":41,"tag":67,"props":633,"children":635},{"className":634},[],[636],{"type":46,"value":637},"mp account add ...",{"type":46,"value":639},"\nthemselves so the secret is read with hidden input. Use this path when\nthe user wants explicit control over the account name, region, and type\nat registration time.",{"type":41,"tag":395,"props":641,"children":643},{"id":642},"alternative-service-account-environment-variables-temporary",[644],{"type":46,"value":645},"Alternative: Service-Account Environment Variables (temporary)",{"type":41,"tag":49,"props":647,"children":648},{},[649],{"type":46,"value":650},"For quick testing, set all four variables in the shell — the resolver\npicks them up directly without account registration:",{"type":41,"tag":84,"props":652,"children":654},{"className":86,"code":653,"language":88,"meta":89,"style":89},"export MP_USERNAME=\"service-account-username\"\nexport MP_SECRET=\"service-account-secret\"\nexport MP_PROJECT_ID=\"12345\"\nexport MP_REGION=\"us\"  # or \"eu\", \"in\"\n",[655],{"type":41,"tag":67,"props":656,"children":657},{"__ignoreMap":89},[658,693,723,753],{"type":41,"tag":95,"props":659,"children":660},{"class":97,"line":98},[661,667,672,678,683,688],{"type":41,"tag":95,"props":662,"children":664},{"style":663},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[665],{"type":46,"value":666},"export",{"type":41,"tag":95,"props":668,"children":669},{"style":107},[670],{"type":46,"value":671}," MP_USERNAME",{"type":41,"tag":95,"props":673,"children":675},{"style":674},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[676],{"type":46,"value":677},"=",{"type":41,"tag":95,"props":679,"children":680},{"style":674},[681],{"type":46,"value":682},"\"",{"type":41,"tag":95,"props":684,"children":685},{"style":113},[686],{"type":46,"value":687},"service-account-username",{"type":41,"tag":95,"props":689,"children":690},{"style":674},[691],{"type":46,"value":692},"\"\n",{"type":41,"tag":95,"props":694,"children":696},{"class":97,"line":695},2,[697,701,706,710,714,719],{"type":41,"tag":95,"props":698,"children":699},{"style":663},[700],{"type":46,"value":666},{"type":41,"tag":95,"props":702,"children":703},{"style":107},[704],{"type":46,"value":705}," MP_SECRET",{"type":41,"tag":95,"props":707,"children":708},{"style":674},[709],{"type":46,"value":677},{"type":41,"tag":95,"props":711,"children":712},{"style":674},[713],{"type":46,"value":682},{"type":41,"tag":95,"props":715,"children":716},{"style":113},[717],{"type":46,"value":718},"service-account-secret",{"type":41,"tag":95,"props":720,"children":721},{"style":674},[722],{"type":46,"value":692},{"type":41,"tag":95,"props":724,"children":726},{"class":97,"line":725},3,[727,731,736,740,744,749],{"type":41,"tag":95,"props":728,"children":729},{"style":663},[730],{"type":46,"value":666},{"type":41,"tag":95,"props":732,"children":733},{"style":107},[734],{"type":46,"value":735}," MP_PROJECT_ID",{"type":41,"tag":95,"props":737,"children":738},{"style":674},[739],{"type":46,"value":677},{"type":41,"tag":95,"props":741,"children":742},{"style":674},[743],{"type":46,"value":682},{"type":41,"tag":95,"props":745,"children":746},{"style":113},[747],{"type":46,"value":748},"12345",{"type":41,"tag":95,"props":750,"children":751},{"style":674},[752],{"type":46,"value":692},{"type":41,"tag":95,"props":754,"children":756},{"class":97,"line":755},4,[757,761,766,770,774,778,782],{"type":41,"tag":95,"props":758,"children":759},{"style":663},[760],{"type":46,"value":666},{"type":41,"tag":95,"props":762,"children":763},{"style":107},[764],{"type":46,"value":765}," MP_REGION",{"type":41,"tag":95,"props":767,"children":768},{"style":674},[769],{"type":46,"value":677},{"type":41,"tag":95,"props":771,"children":772},{"style":674},[773],{"type":46,"value":682},{"type":41,"tag":95,"props":775,"children":776},{"style":113},[777],{"type":46,"value":540},{"type":41,"tag":95,"props":779,"children":780},{"style":674},[781],{"type":46,"value":682},{"type":41,"tag":95,"props":783,"children":785},{"style":784},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[786],{"type":46,"value":787},"  # or \"eu\", \"in\"\n",{"type":41,"tag":395,"props":789,"children":791},{"id":790},"alternative-raw-oauth-bearer-token-best-for-agents-ci",[792],{"type":46,"value":793},"Alternative: Raw OAuth Bearer Token (best for agents \u002F CI)",{"type":41,"tag":49,"props":795,"children":796},{},[797],{"type":46,"value":798},"If the user has an OAuth 2.0 access token from another source, they can use\nit directly without the PKCE browser flow:",{"type":41,"tag":84,"props":800,"children":802},{"className":86,"code":801,"language":88,"meta":89,"style":89},"export MP_OAUTH_TOKEN=\"\u003Cbearer-token>\"\nexport MP_PROJECT_ID=\"12345\"\nexport MP_REGION=\"us\"  # or \"eu\", \"in\"\n",[803],{"type":41,"tag":67,"props":804,"children":805},{"__ignoreMap":89},[806,835,862],{"type":41,"tag":95,"props":807,"children":808},{"class":97,"line":98},[809,813,818,822,826,831],{"type":41,"tag":95,"props":810,"children":811},{"style":663},[812],{"type":46,"value":666},{"type":41,"tag":95,"props":814,"children":815},{"style":107},[816],{"type":46,"value":817}," MP_OAUTH_TOKEN",{"type":41,"tag":95,"props":819,"children":820},{"style":674},[821],{"type":46,"value":677},{"type":41,"tag":95,"props":823,"children":824},{"style":674},[825],{"type":46,"value":682},{"type":41,"tag":95,"props":827,"children":828},{"style":113},[829],{"type":46,"value":830},"\u003Cbearer-token>",{"type":41,"tag":95,"props":832,"children":833},{"style":674},[834],{"type":46,"value":692},{"type":41,"tag":95,"props":836,"children":837},{"class":97,"line":695},[838,842,846,850,854,858],{"type":41,"tag":95,"props":839,"children":840},{"style":663},[841],{"type":46,"value":666},{"type":41,"tag":95,"props":843,"children":844},{"style":107},[845],{"type":46,"value":735},{"type":41,"tag":95,"props":847,"children":848},{"style":674},[849],{"type":46,"value":677},{"type":41,"tag":95,"props":851,"children":852},{"style":674},[853],{"type":46,"value":682},{"type":41,"tag":95,"props":855,"children":856},{"style":113},[857],{"type":46,"value":748},{"type":41,"tag":95,"props":859,"children":860},{"style":674},[861],{"type":46,"value":692},{"type":41,"tag":95,"props":863,"children":864},{"class":97,"line":725},[865,869,873,877,881,885,889],{"type":41,"tag":95,"props":866,"children":867},{"style":663},[868],{"type":46,"value":666},{"type":41,"tag":95,"props":870,"children":871},{"style":107},[872],{"type":46,"value":765},{"type":41,"tag":95,"props":874,"children":875},{"style":674},[876],{"type":46,"value":677},{"type":41,"tag":95,"props":878,"children":879},{"style":674},[880],{"type":46,"value":682},{"type":41,"tag":95,"props":882,"children":883},{"style":113},[884],{"type":46,"value":540},{"type":41,"tag":95,"props":886,"children":887},{"style":674},[888],{"type":46,"value":682},{"type":41,"tag":95,"props":890,"children":891},{"style":784},[892],{"type":46,"value":787},{"type":41,"tag":49,"props":894,"children":895},{},[896,898,903,904,909,910],{"type":46,"value":897},"This is the recommended mode for non-interactive contexts. The full\nservice-account env-var set (",{"type":41,"tag":67,"props":899,"children":901},{"className":900},[],[902],{"type":46,"value":455},{"type":46,"value":457},{"type":41,"tag":67,"props":905,"children":907},{"className":906},[],[908],{"type":46,"value":463},{"type":46,"value":457},{"type":41,"tag":67,"props":911,"children":913},{"className":912},[],[914],{"type":46,"value":915},"MP_PROJECT_ID",{"type":41,"tag":267,"props":917,"children":918},{},[919],{"type":41,"tag":127,"props":920,"children":921},{},[922,928],{"type":41,"tag":67,"props":923,"children":925},{"className":924},[],[926],{"type":46,"value":927},"MP_REGION",{"type":46,"value":929},") takes precedence when both sets are complete.",{"type":41,"tag":55,"props":931,"children":933},{"id":932},"remote-environment",[934],{"type":46,"value":935},"Remote Environment",{"type":41,"tag":49,"props":937,"children":938},{},[939],{"type":46,"value":940},"If running inside a remote or sandboxed agent environment, credentials work differently:",{"type":41,"tag":267,"props":942,"children":943},{},[944,954],{"type":41,"tag":127,"props":945,"children":946},{},[947,952],{"type":41,"tag":274,"props":948,"children":949},{},[950],{"type":46,"value":951},"OAuth login and interactive account setup are NOT available",{"type":46,"value":953}," (no browser, no host terminal access)",{"type":41,"tag":127,"props":955,"children":956},{},[957,959,964],{"type":46,"value":958},"Credentials must be configured on the ",{"type":41,"tag":274,"props":960,"children":961},{},[962],{"type":46,"value":963},"host machine",{"type":46,"value":965}," before starting the remote session",{"type":41,"tag":395,"props":967,"children":969},{"id":968},"if-no-credentials-found-in-the-remote-session",[970],{"type":46,"value":971},"If No Credentials Found in the Remote Session",{"type":41,"tag":49,"props":973,"children":974},{},[975],{"type":46,"value":976},"Tell the user:",{"type":41,"tag":978,"props":979,"children":980},"blockquote",{},[981,986,997,1007,1012],{"type":41,"tag":49,"props":982,"children":983},{},[984],{"type":46,"value":985},"No Mixpanel credentials found in this remote session.",{"type":41,"tag":49,"props":987,"children":988},{},[989,991,995],{"type":46,"value":990},"On your ",{"type":41,"tag":274,"props":992,"children":993},{},[994],{"type":46,"value":963},{"type":46,"value":996}," (outside the remote session), run:",{"type":41,"tag":84,"props":998,"children":1002},{"className":999,"code":1001,"language":46},[1000],"language-text","mp account export-bridge --to ~\u002F.claude\u002Fmixpanel\u002Fauth.json\n",[1003],{"type":41,"tag":67,"props":1004,"children":1005},{"__ignoreMap":89},[1006],{"type":46,"value":1001},{"type":41,"tag":49,"props":1008,"children":1009},{},[1010],{"type":46,"value":1011},"This writes a v2 bridge file embedding your account record (and any\noauth_browser tokens) so the remote session can read your credentials\nat startup.",{"type":41,"tag":49,"props":1013,"children":1014},{},[1015,1017,1022],{"type":46,"value":1016},"Then ",{"type":41,"tag":274,"props":1018,"children":1019},{},[1020],{"type":46,"value":1021},"start a new remote session",{"type":46,"value":1023}," — credentials will be available automatically.",{"type":41,"tag":49,"props":1025,"children":1026},{},[1027],{"type":46,"value":1028},"Do NOT suggest the account-login or account-add interactive workflows — these won't work inside remote sessions without browser or terminal access.",{"type":41,"tag":395,"props":1030,"children":1032},{"id":1031},"if-bridge-file-found-but-token-expired",[1033],{"type":46,"value":1034},"If Bridge File Found But Token Expired",{"type":41,"tag":49,"props":1036,"children":1037},{},[1038],{"type":46,"value":1039},"The library will auto-refresh the OAuth token via the on-disk refresh\ntoken (no browser needed). If refresh fails:",{"type":41,"tag":978,"props":1041,"children":1042},{},[1043,1048,1057],{"type":41,"tag":49,"props":1044,"children":1045},{},[1046],{"type":46,"value":1047},"Your OAuth session has expired and could not be refreshed.\nOn your host machine, run:",{"type":41,"tag":84,"props":1049,"children":1052},{"className":1050,"code":1051,"language":46},[1000],"mp login --name personal             # re-authenticate (or `mp account login personal`)\nmp account export-bridge --to ~\u002F.claude\u002Fmixpanel\u002Fauth.json\n",[1053],{"type":41,"tag":67,"props":1054,"children":1055},{"__ignoreMap":89},[1056],{"type":46,"value":1051},{"type":41,"tag":49,"props":1058,"children":1059},{},[1060],{"type":46,"value":1061},"Then start a new remote session.",{"type":41,"tag":55,"props":1063,"children":1065},{"id":1064},"verify-everything-works",[1066],{"type":46,"value":1067},"Verify Everything Works",{"type":41,"tag":84,"props":1069,"children":1071},{"className":86,"code":1070,"language":88,"meta":89,"style":89},"python3 $SKILL_DIR\u002F..\u002Fmixpanelyst\u002Fscripts\u002Fauth_manager.py account test\n",[1072],{"type":41,"tag":67,"props":1073,"children":1074},{"__ignoreMap":89},[1075],{"type":41,"tag":95,"props":1076,"children":1077},{"class":97,"line":98},[1078,1082,1086,1090,1095],{"type":41,"tag":95,"props":1079,"children":1080},{"style":102},[1081],{"type":46,"value":238},{"type":41,"tag":95,"props":1083,"children":1084},{"style":107},[1085],{"type":46,"value":110},{"type":41,"tag":95,"props":1087,"children":1088},{"style":113},[1089],{"type":46,"value":247},{"type":41,"tag":95,"props":1091,"children":1092},{"style":113},[1093],{"type":46,"value":1094}," account",{"type":41,"tag":95,"props":1096,"children":1097},{"style":113},[1098],{"type":46,"value":1099}," test\n",{"type":41,"tag":49,"props":1101,"children":1102},{},[1103,1105,1111],{"type":46,"value":1104},"The subcommand never raises — read ",{"type":41,"tag":67,"props":1106,"children":1108},{"className":1107},[],[1109],{"type":46,"value":1110},"result.ok",{"type":46,"value":1112}," to determine outcome.",{"type":41,"tag":267,"props":1114,"children":1115},{},[1116,1127],{"type":41,"tag":127,"props":1117,"children":1118},{},[1119,1125],{"type":41,"tag":67,"props":1120,"children":1122},{"className":1121},[],[1123],{"type":46,"value":1124},"result.ok: true",{"type":46,"value":1126}," → setup is complete; the user can ask analytics questions.",{"type":41,"tag":127,"props":1128,"children":1129},{},[1130,1136,1138,1143],{"type":41,"tag":67,"props":1131,"children":1133},{"className":1132},[],[1134],{"type":46,"value":1135},"result.ok: false",{"type":46,"value":1137}," → suggest the ",{"type":41,"tag":67,"props":1139,"children":1141},{"className":1140},[],[1142],{"type":46,"value":629},{"type":46,"value":1144}," account-test workflow for detailed diagnostics.",{"type":41,"tag":55,"props":1146,"children":1148},{"id":1147},"post-setup-explore-your-data",[1149],{"type":46,"value":1150},"Post-Setup: Explore Your Data",{"type":41,"tag":49,"props":1152,"children":1153},{},[1154],{"type":46,"value":1155},"Once authenticated, these slash commands help orient the user:",{"type":41,"tag":267,"props":1157,"children":1158},{},[1159,1174,1184,1194],{"type":41,"tag":127,"props":1160,"children":1161},{},[1162,1167,1169],{"type":41,"tag":67,"props":1163,"children":1165},{"className":1164},[],[1166],{"type":46,"value":629},{"type":46,"value":1168}," project-list workflow — discover all accessible projects via ",{"type":41,"tag":67,"props":1170,"children":1172},{"className":1171},[],[1173],{"type":46,"value":447},{"type":41,"tag":127,"props":1175,"children":1176},{},[1177,1182],{"type":41,"tag":67,"props":1178,"children":1180},{"className":1179},[],[1181],{"type":46,"value":629},{"type":46,"value":1183}," session workflow — see active account \u002F project \u002F workspace",{"type":41,"tag":127,"props":1185,"children":1186},{},[1187,1192],{"type":41,"tag":67,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":46,"value":629},{"type":46,"value":1193}," project-use workflow — switch to a different project",{"type":41,"tag":127,"props":1195,"children":1196},{},[1197,1202],{"type":41,"tag":67,"props":1198,"children":1200},{"className":1199},[],[1201],{"type":46,"value":629},{"type":46,"value":1203}," target-add workflow — save a named cursor position",{"type":41,"tag":49,"props":1205,"children":1206},{},[1207],{"type":46,"value":1208},"The user can also construct a Workspace targeting a specific account \u002F project \u002F\nworkspace directly:",{"type":41,"tag":84,"props":1210,"children":1213},{"className":1211,"code":1212,"language":18,"meta":89,"style":89},"language-python shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import mixpanel_headless as mp\n\nws = mp.Workspace()                                  # default session\nws = mp.Workspace(account=\"team\")                    # named account\nws = mp.Workspace(project=\"67890\")                   # explicit project (active account)\nws = mp.Workspace(account=\"team\", project=\"67890\")   # both axes\nws.use(project=\"98765\").events()                     # in-session switch (no re-auth)\n",[1214],{"type":41,"tag":67,"props":1215,"children":1216},{"__ignoreMap":89},[1217,1225,1234,1242,1250,1259,1268],{"type":41,"tag":95,"props":1218,"children":1219},{"class":97,"line":98},[1220],{"type":41,"tag":95,"props":1221,"children":1222},{},[1223],{"type":46,"value":1224},"import mixpanel_headless as mp\n",{"type":41,"tag":95,"props":1226,"children":1227},{"class":97,"line":695},[1228],{"type":41,"tag":95,"props":1229,"children":1231},{"emptyLinePlaceholder":1230},true,[1232],{"type":46,"value":1233},"\n",{"type":41,"tag":95,"props":1235,"children":1236},{"class":97,"line":725},[1237],{"type":41,"tag":95,"props":1238,"children":1239},{},[1240],{"type":46,"value":1241},"ws = mp.Workspace()                                  # default session\n",{"type":41,"tag":95,"props":1243,"children":1244},{"class":97,"line":755},[1245],{"type":41,"tag":95,"props":1246,"children":1247},{},[1248],{"type":46,"value":1249},"ws = mp.Workspace(account=\"team\")                    # named account\n",{"type":41,"tag":95,"props":1251,"children":1253},{"class":97,"line":1252},5,[1254],{"type":41,"tag":95,"props":1255,"children":1256},{},[1257],{"type":46,"value":1258},"ws = mp.Workspace(project=\"67890\")                   # explicit project (active account)\n",{"type":41,"tag":95,"props":1260,"children":1262},{"class":97,"line":1261},6,[1263],{"type":41,"tag":95,"props":1264,"children":1265},{},[1266],{"type":46,"value":1267},"ws = mp.Workspace(account=\"team\", project=\"67890\")   # both axes\n",{"type":41,"tag":95,"props":1269,"children":1271},{"class":97,"line":1270},7,[1272],{"type":41,"tag":95,"props":1273,"children":1274},{},[1275],{"type":46,"value":1276},"ws.use(project=\"98765\").events()                     # in-session switch (no re-auth)\n",{"type":41,"tag":49,"props":1278,"children":1279},{},[1280],{"type":41,"tag":1281,"props":1282,"children":1283},"em",{},[1284,1286,1293,1295,1301],{"type":46,"value":1285},"The mixpanelyst skill auto-triggers on analytics questions. For the analytical frameworks that guide investigations, see ",{"type":41,"tag":1287,"props":1288,"children":1290},"a",{"href":1289},"..\u002Fmixpanelyst\u002Freferences\u002Fanalytical-frameworks.md",[1291],{"type":46,"value":1292},"analytical-frameworks.md",{"type":46,"value":1294},". For the complete Python API, see ",{"type":41,"tag":1287,"props":1296,"children":1298},{"href":1297},"..\u002Fmixpanelyst\u002Freferences\u002Fpython-api.md",[1299],{"type":46,"value":1300},"python-api.md",{"type":46,"value":352},{"type":41,"tag":1303,"props":1304,"children":1305},"style",{},[1306],{"type":46,"value":1307},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1309,"total":1514},[1310,1331,1354,1371,1387,1406,1425,1441,1457,1471,1483,1498],{"slug":1311,"name":1311,"fn":1312,"description":1313,"org":1314,"tags":1315,"stars":1328,"repoUrl":1329,"updatedAt":1330},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1316,1319,1322,1325],{"name":1317,"slug":1318,"type":15},"Documents","documents",{"name":1320,"slug":1321,"type":15},"Healthcare","healthcare",{"name":1323,"slug":1324,"type":15},"Insurance","insurance",{"name":1326,"slug":1327,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":1332,"name":1332,"fn":1333,"description":1334,"org":1335,"tags":1336,"stars":1351,"repoUrl":1352,"updatedAt":1353},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1337,1340,1342,1345,1348],{"name":1338,"slug":1339,"type":15},".NET","dotnet",{"name":1341,"slug":1332,"type":15},"ASP.NET Core",{"name":1343,"slug":1344,"type":15},"Blazor","blazor",{"name":1346,"slug":1347,"type":15},"C#","csharp",{"name":1349,"slug":1350,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":1355,"name":1355,"fn":1356,"description":1357,"org":1358,"tags":1359,"stars":1351,"repoUrl":1352,"updatedAt":1370},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1360,1363,1366,1369],{"name":1361,"slug":1362,"type":15},"Apps SDK","apps-sdk",{"name":1364,"slug":1365,"type":15},"ChatGPT","chatgpt",{"name":1367,"slug":1368,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":1372,"name":1372,"fn":1373,"description":1374,"org":1375,"tags":1376,"stars":1351,"repoUrl":1352,"updatedAt":1386},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1377,1380,1383],{"name":1378,"slug":1379,"type":15},"API Development","api-development",{"name":1381,"slug":1382,"type":15},"CLI","cli",{"name":1384,"slug":1385,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":1388,"name":1388,"fn":1389,"description":1390,"org":1391,"tags":1392,"stars":1351,"repoUrl":1352,"updatedAt":1405},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1393,1396,1399,1402],{"name":1394,"slug":1395,"type":15},"Cloudflare","cloudflare",{"name":1397,"slug":1398,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1400,"slug":1401,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1403,"slug":1404,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":1407,"name":1407,"fn":1408,"description":1409,"org":1410,"tags":1411,"stars":1351,"repoUrl":1352,"updatedAt":1424},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1412,1415,1418,1421],{"name":1413,"slug":1414,"type":15},"Productivity","productivity",{"name":1416,"slug":1417,"type":15},"Project Management","project-management",{"name":1419,"slug":1420,"type":15},"Strategy","strategy",{"name":1422,"slug":1423,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":1426,"name":1426,"fn":1427,"description":1428,"org":1429,"tags":1430,"stars":1351,"repoUrl":1352,"updatedAt":1440},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1431,1434,1436,1439],{"name":1432,"slug":1433,"type":15},"Design","design",{"name":1435,"slug":1426,"type":15},"Figma",{"name":1437,"slug":1438,"type":15},"Frontend","frontend",{"name":1367,"slug":1368,"type":15},"2026-04-12T05:06:47.939943",{"slug":1442,"name":1442,"fn":1443,"description":1444,"org":1445,"tags":1446,"stars":1351,"repoUrl":1352,"updatedAt":1456},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1447,1448,1451,1452,1453],{"name":1432,"slug":1433,"type":15},{"name":1449,"slug":1450,"type":15},"Design System","design-system",{"name":1435,"slug":1426,"type":15},{"name":1437,"slug":1438,"type":15},{"name":1454,"slug":1455,"type":15},"UI Components","ui-components","2026-05-10T05:59:52.971881",{"slug":1458,"name":1458,"fn":1459,"description":1460,"org":1461,"tags":1462,"stars":1351,"repoUrl":1352,"updatedAt":1470},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1463,1464,1465,1468,1469],{"name":1432,"slug":1433,"type":15},{"name":1449,"slug":1450,"type":15},{"name":1466,"slug":1467,"type":15},"Documentation","documentation",{"name":1435,"slug":1426,"type":15},{"name":1437,"slug":1438,"type":15},"2026-05-16T06:07:47.821474",{"slug":1472,"name":1472,"fn":1473,"description":1474,"org":1475,"tags":1476,"stars":1351,"repoUrl":1352,"updatedAt":1482},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1477,1478,1479,1480,1481],{"name":1432,"slug":1433,"type":15},{"name":1435,"slug":1426,"type":15},{"name":1437,"slug":1438,"type":15},{"name":1454,"slug":1455,"type":15},{"name":1349,"slug":1350,"type":15},"2026-05-16T06:07:40.583615",{"slug":1484,"name":1484,"fn":1485,"description":1486,"org":1487,"tags":1488,"stars":1351,"repoUrl":1352,"updatedAt":1497},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1489,1492,1493,1496],{"name":1490,"slug":1491,"type":15},"Animation","animation",{"name":1384,"slug":1385,"type":15},{"name":1494,"slug":1495,"type":15},"Creative","creative",{"name":1432,"slug":1433,"type":15},"2026-05-02T05:31:48.48485",{"slug":1499,"name":1499,"fn":1500,"description":1501,"org":1502,"tags":1503,"stars":1351,"repoUrl":1352,"updatedAt":1513},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1504,1505,1506,1509,1512],{"name":1494,"slug":1495,"type":15},{"name":1432,"slug":1433,"type":15},{"name":1507,"slug":1508,"type":15},"Image Generation","image-generation",{"name":1510,"slug":1511,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675,{"items":1516,"total":1629},[1517,1533,1549,1561,1579,1597,1617],{"slug":1518,"name":1518,"fn":1519,"description":1520,"org":1521,"tags":1522,"stars":22,"repoUrl":23,"updatedAt":24},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1523,1526,1529,1532],{"name":1524,"slug":1525,"type":15},"Accessibility","accessibility",{"name":1527,"slug":1528,"type":15},"Charts","charts",{"name":1530,"slug":1531,"type":15},"Data Visualization","data-visualization",{"name":1432,"slug":1433,"type":15},{"slug":1534,"name":1534,"fn":1535,"description":1536,"org":1537,"tags":1538,"stars":22,"repoUrl":23,"updatedAt":1548},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1539,1542,1545],{"name":1540,"slug":1541,"type":15},"Agents","agents",{"name":1543,"slug":1544,"type":15},"Browser Automation","browser-automation",{"name":1546,"slug":1547,"type":15},"Testing","testing","2026-04-06T18:41:03.44016",{"slug":1550,"name":1550,"fn":1551,"description":1552,"org":1553,"tags":1554,"stars":22,"repoUrl":23,"updatedAt":1560},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1555,1556,1559],{"name":1543,"slug":1544,"type":15},{"name":1557,"slug":1558,"type":15},"Local Development","local-development",{"name":1546,"slug":1547,"type":15},"2026-04-06T18:41:17.526867",{"slug":1562,"name":1562,"fn":1563,"description":1564,"org":1565,"tags":1566,"stars":22,"repoUrl":23,"updatedAt":1578},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1567,1568,1569,1572,1575],{"name":1540,"slug":1541,"type":15},{"name":1400,"slug":1401,"type":15},{"name":1570,"slug":1571,"type":15},"SDK","sdk",{"name":1573,"slug":1574,"type":15},"Serverless","serverless",{"name":1576,"slug":1577,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":1580,"name":1580,"fn":1581,"description":1582,"org":1583,"tags":1584,"stars":22,"repoUrl":23,"updatedAt":1596},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1585,1586,1589,1592,1593],{"name":1437,"slug":1438,"type":15},{"name":1587,"slug":1588,"type":15},"React","react",{"name":1590,"slug":1591,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":1454,"slug":1455,"type":15},{"name":1594,"slug":1595,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":1598,"name":1598,"fn":1599,"description":1600,"org":1601,"tags":1602,"stars":22,"repoUrl":23,"updatedAt":1616},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1603,1606,1609,1612,1615],{"name":1604,"slug":1605,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1607,"slug":1608,"type":15},"Cost Optimization","cost-optimization",{"name":1610,"slug":1611,"type":15},"LLM","llm",{"name":1613,"slug":1614,"type":15},"Performance","performance",{"name":1594,"slug":1595,"type":15},"2026-04-06T18:40:44.377464",{"slug":1618,"name":1618,"fn":1619,"description":1620,"org":1621,"tags":1622,"stars":22,"repoUrl":23,"updatedAt":1628},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1623,1624,1627],{"name":1607,"slug":1608,"type":15},{"name":1625,"slug":1626,"type":15},"Database","database",{"name":1610,"slug":1611,"type":15},"2026-04-06T18:41:08.513425",600]