[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ENKFDQ20RB69ZH49PTF0KD":3,"skill-same:01M6ENKFDQ20RB69ZH49PTF0KD":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6ENKFDQ20RB69ZH49PTF0KD","email-notify",null,"Send SMTP email notifications after Codex completes a task. Use when one Codex or Claude run is finished, or when you need to notify on task completion with device name, project name, status, and summary via email.","ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcaopulan\u002Femail-notify\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37],"email","notify","email notify","codex","status","run","notifications","use","device","task","summary","project","name","via","2026-11-10 10:12:30",false,"---\nname: email-notify\ndescription: Send SMTP email notifications after Codex completes a task. Use when one Codex or Claude run is finished, or when you need to notify on task completion with device name, project name, status, and summary via email.\n---\n\n# Email Notify\n\n## Overview\n\nSend an email notification after each Codex task. Use the helper script to resolve the project name and send via SMTP.\n\n## User Preparation\n\n### 1) Configure environment variables\n\nAdd the following lines to `~\u002F.bashrc` (Linux) or `~\u002F.zshrc` (macOS):\n\n```\nexport CODEX_MACHINE_NAME=\"Machine-name\" # e.g., Macbook\nexport CODEX_EMAIL_SMTP_HOST=\"smtp.example.com\"\nexport CODEX_EMAIL_SMTP_PORT=\"587\"\nexport CODEX_EMAIL_USERNAME=\"user@example.com\"\nexport CODEX_EMAIL_PASSWORD=\"...\"\nexport CODEX_EMAIL_FROM=\"user@example.com\"\nexport CODEX_EMAIL_TO=\"recipient1@example.com,recipient2@example.com\"\nexport CODEX_EMAIL_USE_TLS=\"false\" # true\u002Ffalse, default false\nexport CODEX_EMAIL_USE_SSL=\"true\" # true\u002Ffalse, default true\n```\n\nIf your SMTP server does not require auth, leave `CODEX_EMAIL_USERNAME` and `CODEX_EMAIL_PASSWORD` unset.\nSet `CODEX_EMAIL_USE_SSL` to `true` for SMTPS (typically port 465) and `CODEX_EMAIL_USE_TLS` to `true` for STARTTLS.\nDo not set both `CODEX_EMAIL_USE_TLS` and `CODEX_EMAIL_USE_SSL` to `true`.\n\n### 2) Add instruction in project AGENTS.md\n\nFor example, add this instruction to AGENTS.md:\n> Use skill email-notify to notify users when each agent run is finished or when any notifications would be sent to users.\n\n## Workflow\n\n### 1) Provide a project name source (optional)\n\n- To override the folder name, define a project name in `AGENTS.md` using one of:\n  - YAML frontmatter: `project_name: My Project` (or `name:`)\n  - A plain line: `Project Name: My Project`\n- If no name is found, the script uses the project folder name.\n\n### 2) Send the notification at task completion\n\n- Generate a short task title (3-8 words).\n- Pick an execution status: `success`, `failed`, `partial`, `blocked`, etc.\n- Write a brief result summary; avoid secrets.\n\nRun:\n\n```bash\npython3 ~\u002F.codex\u002Fskills\u002Femail-notify\u002Fscripts\u002Fsend_email_notification.py \\\n  --task-title \"...\" \\\n  --status \"success\" \\\n  --summary \"...\" \\\n  --project-name \"...\"\n```\n\n## Resources\n\n- `scripts\u002Fsend_email_notification.py`: Send the email notification and resolve the project name.\n","# Email Notify\n\n## Overview\n\nSend an email notification after each Codex task. Use the helper script to resolve the project name and send via SMTP.\n\n## User Preparation\n\n### 1) Configure environment variables\n\nAdd the following lines to `~\u002F.bashrc` (Linux) or `~\u002F.zshrc` (macOS):\n\n```\nexport CODEX_MACHINE_NAME=\"Machine-name\" # e.g., Macbook\nexport CODEX_EMAIL_SMTP_HOST=\"smtp.example.com\"\nexport CODEX_EMAIL_SMTP_PORT=\"587\"\nexport CODEX_EMAIL_USERNAME=\"user@example.com\"\nexport CODEX_EMAIL_PASSWORD=\"...\"\nexport CODEX_EMAIL_FROM=\"user@example.com\"\nexport CODEX_EMAIL_TO=\"recipient1@example.com,recipient2@example.com\"\nexport CODEX_EMAIL_USE_TLS=\"false\" # true\u002Ffalse, default false\nexport CODEX_EMAIL_USE_SSL=\"true\" # true\u002Ffalse, default true\n```\n\nIf your SMTP server does not require auth, leave `CODEX_EMAIL_USERNAME` and `CODEX_EMAIL_PASSWORD` unset.\nSet `CODEX_EMAIL_USE_SSL` to `true` for SMTPS (typically port 465) and `CODEX_EMAIL_USE_TLS` to `true` for STARTTLS.\nDo not set both `CODEX_EMAIL_USE_TLS` and `CODEX_EMAIL_USE_SSL` to `true`.\n\n### 2) Add instruction in project AGENTS.md\n\nFor example, add this instruction to AGENTS.md:\n> Use skill email-notify to notify users when each agent run is finished or when any notifications would be sent to users.\n\n## Workflow\n\n### 1) Provide a project name source (optional)\n\n- To override the folder name, define a project name in `AGENTS.md` using one of:\n  - YAML frontmatter: `project_name: My Project` (or `name:`)\n  - A plain line: `Project Name: My Project`\n- If no name is found, the script uses the project folder name.\n\n### 2) Send the notification at task completion\n\n- Generate a short task title (3-8 words).\n- Pick an execution status: `success`, `failed`, `partial`, `blocked`, etc.\n- Write a brief result summary; avoid secrets.\n\nRun:\n\n```bash\npython3 ~\u002F.codex\u002Fskills\u002Femail-notify\u002Fscripts\u002Fsend_email_notification.py \\\n  --task-title \"...\" \\\n  --status \"success\" \\\n  --summary \"...\" \\\n  --project-name \"...\"\n```\n\n## Resources\n\n- `scripts\u002Fsend_email_notification.py`: Send the email notification and resolve the project name.\n",{"name":5,"description":7},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Faiskillstore\u002Fmarketplace\u002Fcaopulan\u002Femail-notify",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill email-notify",{"tool":58,"command":59},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill email-notify",{"tool":61,"command":62},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill email-notify","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcaopulan\u002Femail-notify\u002FSKILL.md",true,[66,72],{"path":67,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":71},"scripts\u002Fsend_email_notification.py","SCRIPT","脚本",6684,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcaopulan\u002Femail-notify\u002Fscripts\u002Fsend_email_notification.py",{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"skill-report.json","REFERENCE","参考文档",8926,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Faiskillstore\u002Fmarketplace\u002Fcaopulan\u002Femail-notify\u002Fskill-report.json",[79,91,101,110,116,123],{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":87,"publishedAt":38},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[88,89,90],"model","model hierarchy","model hierarchy skill",{"skillNo":92,"name":93,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":97,"publishedAt":38},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[96],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},[98,99,100],"MCP","zoom","zoom mcp",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":38},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[107,108,109,99],"sdk","zoom apps sdk","apps",{"skillNo":111,"name":112,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":38},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[112],{"skillNo":117,"name":118,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":122,"publishedAt":38},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[121],{"categoryNo":85,"categoryName":86,"taxonomyType":21,"taxonomyTypeDesc":22},[118],{"skillNo":124,"name":125,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":38},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[125]]