中文导读
OAuth Helper 是一套面向一人公司的通用 playbook,帮助你用更少的人力完成更稳的增长、交付与决策。
概览
Automate OAuth login with Telegram confirmation. Supports 7 major providers. Supported Providers ProviderStatusDetection DomainGoogle✅accounts.google.comApple✅appleid.apple.comMicrosoft✅login.microsoftonline.com, login.live.comGitHub✅github.com/login/oauthDiscord✅discord.com/oauth2WeChat✅open.weixin.qq.comQQ✅graph.qq.com Prerequisites Clawd browser logged into the OAuth providers (one-time setup) Telegram channel configured Core Workflow Flow A: Login Page with Multiple OAuth Options
When user requests to login to a website:
- Open website login page
- Scan page for available OAuth buttons
- Send Telegram message:
- "🔐 [Site] supports these login methods:
- 1️⃣ Google
- 2️⃣ Apple
- 3️⃣ GitHub
- Reply with number to choose"
- Wait for user reply (60s timeout)
- Click the selected OAuth button
- Enter Flow B
- Flow B: OAuth Authorization Page
- When on an OAuth provider's page:
- Detect OAuth page type (by URL)
- Extract target site info
- Send Telegram: "🔐 [Site] requests [Provider] login. Confirm? Reply yes"
- Wait for "yes" (60s timeout)
- Execute provider-specific click sequence
- Wait for redirect back to original site
- Send: "✅ Login successful!"
- Detection Patterns
- URL patterns:
- accounts.google.com/o/oauth2
- accounts.google.com/signin/oauth
- accounts.google.com/v3/signin
- Apple
- URL patterns:
- appleid.apple.com/auth/authorize
- appleid.apple.com/auth/oauth2
- Microsoft
- URL patterns:
- login.microsoftonline.com/common/oauth2
- login.microsoftonline.com/consumers
- login.live.com/oauth20
- GitHub
- URL patterns:
- github.com/login/oauth/authorize
- github.com/login
- github.com/sessions/two-factor
- Discord
- URL patterns:
- discord.com/oauth2/authorize
- discord.com/login
- discord.com/api/oauth2
- URL patterns:
- open.weixin.qq.com/connect/qrconnect
- open.weixin.qq.com/connect/oauth2
- URL patterns:
- graph.qq.com/oauth2.0/authorize
- ssl.xui.ptlogin2.qq.com
- ui.ptlogin2.qq.com
- Click Sequences by Provider
- Account selector: [data-identifier], .JDAKTe
- Auth buttons: button:has-text("Allow"), button:has-text("Continue")
- Apple
- Email input: input[type="email"], #account_name_text_field
- Password: input[type="password"], #password_text_field
- Continue: button#sign-in, button:has-text("Continue")
- Trust device: button:has-text("Trust")
- Microsoft
- Account selector: .table-row[data-test-id]
- Email input: input[name="loginfmt"]
- Password: input[name="passwd"]
- Next: button#idSIButton9
- Accept: button#idBtn_Accept
- GitHub
- Email: input#login_field
- Password: input#password
- Sign in: input[type="submit"]
- Authorize: button[name="authorize"]
- 2FA: input#app_totp
- Discord
- Email: input[name="email"]
- Password: input[name="password"]
- Login: button[type="submit"]
- Authorize: button:has-text("Authorize")
- Method: QR code scan
- Screenshot QR code to user
- Wait for mobile scan confirmation
- Detect page redirect
- Method: QR code or password login
- QR: Screenshot to user
- Password mode:
- Switch: a:has-text("密码登录")
- Username: input#u
- Password: input#p
- Login: input#login_button
- OAuth Button Detection
- Scan login pages for these selectors:
- ProviderSelectorsCommon TextGoogle[data-provider="google"], .google-btn"Continue with Google"Apple[data-provider="apple"], .apple-btn"Sign in with Apple"Microsoft[data-provider="microsoft"]"Sign in with Microsoft"GitHub[data-provider="github"]"Continue with GitHub"Discord[data-provider="discord"]"Login with Discord"WeChat.wechat-btn, img[src="wechat"]"WeChat Login"QQ.qq-btn, img[src="qq"]"QQ Login"
- One-Time Setup
- Login to each provider in clawd browser:
browser action=navigate profile=clawd url=https://accounts.google.com
Apple
browser action=navigate profile=clawd url=https://appleid.apple.com
Microsoft
browser action=navigate profile=clawd url=https://login.live.com
GitHub
browser action=navigate profile=clawd url=https://github.com/login
Discord
browser action=navigate profile=clawd url=https://discord.com/login
WeChat/QQ - Use QR scan, no pre-login needed
Error Handling No "yes" reply → Cancel and notify user 2FA required → Prompt user to enter code manually QR timeout → Re-screenshot new QR code Login failed → Screenshot and send to user for debugging Usage Example User: Login to Kaggle for me
Agent:
- Navigate to kaggle.com/account/login
- Detect Google/Facebook/Yahoo options
- Send: "🔐 Kaggle supports:
- 1️⃣ Google
- 2️⃣ Facebook
- 3️⃣ Yahoo
- Reply number to choose"
- User replies: 1
- Click Google login
- Detect Google OAuth page
- Send: "🔐 Kaggle requests Google login. Confirm? Reply yes"
- User replies: yes
- Select account, click Continue
- Send: "✅ Logged into Kaggle!"
- Version History
- v1.0.0 - Initial release with 7 OAuth providers
SKILL.md 原文件
预览原始 SKILL.md. 下面可以直接查看完整原文。可滚动阅读、检查结构,再下载精确的 SKILL.md 原文件。
# oauth-helper
OAuth Helper
Automate OAuth login with Telegram confirmation. Supports 7 major providers.
Supported Providers
ProviderStatusDetection DomainGoogle✅accounts.google.comApple✅appleid.apple.comMicrosoft✅login.microsoftonline.com, login.live.comGitHub✅github.com/login/oauthDiscord✅discord.com/oauth2WeChat✅open.weixin.qq.comQQ✅graph.qq.com
Prerequisites
Clawd browser logged into the OAuth providers (one-time setup)
Telegram channel configured
Core Workflow
Flow A: Login Page with Multiple OAuth Options
When user requests to login to a website:
1. Open website login page
2. Scan page for available OAuth buttons
3. Send Telegram message:
"🔐 [Site] supports these login methods:
1️⃣ Google
2️⃣ Apple
3️⃣ GitHub
Reply with number to choose"
4. Wait for user reply (60s timeout)
5. Click the selected OAuth button
6. Enter Flow B
Flow B: OAuth Authorization Page
When on an OAuth provider's page:
1. Detect OAuth page type (by URL)
2. Extract target site info
3. Send Telegram: "🔐 [Site] requests [Provider] login. Confirm? Reply yes"
4. Wait for "yes" (60s timeout)
5. Execute provider-specific click sequence
6. Wait for redirect back to original site
7. Send: "✅ Login successful!"
Detection Patterns
Google
URL patterns:
- accounts.google.com/o/oauth2
- accounts.google.com/signin/oauth
- accounts.google.com/v3/signin
Apple
URL patterns:
- appleid.apple.com/auth/authorize
- appleid.apple.com/auth/oauth2
Microsoft
URL patterns:
- login.microsoftonline.com/common/oauth2
- login.microsoftonline.com/consumers
- login.live.com/oauth20
GitHub
URL patterns:
- github.com/login/oauth/authorize
- github.com/login
- github.com/sessions/two-factor
Discord
URL patterns:
- discord.com/oauth2/authorize
- discord.com/login
- discord.com/api/oauth2
WeChat
URL patterns:
- open.weixin.qq.com/connect/qrconnect
- open.weixin.qq.com/connect/oauth2
QQ
URL patterns:
- graph.qq.com/oauth2.0/authorize
- ssl.xui.ptlogin2.qq.com
- ui.ptlogin2.qq.com
Click Sequences by Provider
Google
Account selector: [data-identifier], .JDAKTe
Auth buttons: button:has-text("Allow"), button:has-text("Continue")
Apple
Email input: input[type="email"], #account_name_text_field
Password: input[type="password"], #password_text_field
Continue: button#sign-in, button:has-text("Continue")
Trust device: button:has-text("Trust")
Microsoft
Account selector: .table-row[data-test-id]
Email input: input[name="loginfmt"]
Password: input[name="passwd"]
Next: button#idSIButton9
Accept: button#idBtn_Accept
GitHub
Email: input#login_field
Password: input#password
Sign in: input[type="submit"]
Authorize: button[name="authorize"]
2FA: input#app_totp
Discord
Email: input[name="email"]
Password: input[name="password"]
Login: button[type="submit"]
Authorize: button:has-text("Authorize")
WeChat
Method: QR code scan
- Screenshot QR code to user
- Wait for mobile scan confirmation
- Detect page redirect
QQ
Method: QR code or password login
QR: Screenshot to user
Password mode:
- Switch: a:has-text("密码登录")
- Username: input#u
- Password: input#p
- Login: input#login_button
OAuth Button Detection
Scan login pages for these selectors:
ProviderSelectorsCommon TextGoogle[data-provider="google"], .google-btn"Continue with Google"Apple[data-provider="apple"], .apple-btn"Sign in with Apple"Microsoft[data-provider="microsoft"]"Sign in with Microsoft"GitHub[data-provider="github"]"Continue with GitHub"Discord[data-provider="discord"]"Login with Discord"WeChat.wechat-btn, img[src*="wechat"]"WeChat Login"QQ.qq-btn, img[src*="qq"]"QQ Login"
One-Time Setup
Login to each provider in clawd browser:
# Google
browser action=navigate profile=clawd url=https://accounts.google.com
# Apple
browser action=navigate profile=clawd url=https://appleid.apple.com
# Microsoft
browser action=navigate profile=clawd url=https://login.live.com
# GitHub
browser action=navigate profile=clawd url=https://github.com/login
# Discord
browser action=navigate profile=clawd url=https://discord.com/login
# WeChat/QQ - Use QR scan, no pre-login needed
Error Handling
No "yes" reply → Cancel and notify user
2FA required → Prompt user to enter code manually
QR timeout → Re-screenshot new QR code
Login failed → Screenshot and send to user for debugging
Usage Example
User: Login to Kaggle for me
Agent:
1. Navigate to kaggle.com/account/login
2. Detect Google/Facebook/Yahoo options
3. Send: "🔐 Kaggle supports:
1️⃣ Google
2️⃣ Facebook
3️⃣ Yahoo
Reply number to choose"
4. User replies: 1
5. Click Google login
6. Detect Google OAuth page
7. Send: "🔐 Kaggle requests Google login. Confirm? Reply yes"
8. User replies: yes
9. Select account, click Continue
10. Send: "✅ Logged into Kaggle!"
Version History
v1.0.0 - Initial release with 7 OAuth providers
预览原始 SKILL.md. 下面可以直接查看完整原文。可滚动阅读、检查结构,再下载精确的 SKILL.md 原文件。
# oauth-helper
OAuth Helper
Automate OAuth login with Telegram confirmation. Supports 7 major providers.
Supported Providers
ProviderStatusDetection DomainGoogle✅accounts.google.comApple✅appleid.apple.comMicrosoft✅login.microsoftonline.com, login.live.comGitHub✅github.com/login/oauthDiscord✅discord.com/oauth2WeChat✅open.weixin.qq.comQQ✅graph.qq.com
Prerequisites
Clawd browser logged into the OAuth providers (one-time setup)
Telegram channel configured
Core Workflow
Flow A: Login Page with Multiple OAuth Options
When user requests to login to a website:
1. Open website login page
2. Scan page for available OAuth buttons
3. Send Telegram message:
"🔐 [Site] supports these login methods:
1️⃣ Google
2️⃣ Apple
3️⃣ GitHub
Reply with number to choose"
4. Wait for user reply (60s timeout)
5. Click the selected OAuth button
6. Enter Flow B
Flow B: OAuth Authorization Page
When on an OAuth provider's page:
1. Detect OAuth page type (by URL)
2. Extract target site info
3. Send Telegram: "🔐 [Site] requests [Provider] login. Confirm? Reply yes"
4. Wait for "yes" (60s timeout)
5. Execute provider-specific click sequence
6. Wait for redirect back to original site
7. Send: "✅ Login successful!"
Detection Patterns
Google
URL patterns:
- accounts.google.com/o/oauth2
- accounts.google.com/signin/oauth
- accounts.google.com/v3/signin
Apple
URL patterns:
- appleid.apple.com/auth/authorize
- appleid.apple.com/auth/oauth2
Microsoft
URL patterns:
- login.microsoftonline.com/common/oauth2
- login.microsoftonline.com/consumers
- login.live.com/oauth20
GitHub
URL patterns:
- github.com/login/oauth/authorize
- github.com/login
- github.com/sessions/two-factor
Discord
URL patterns:
- discord.com/oauth2/authorize
- discord.com/login
- discord.com/api/oauth2
WeChat
URL patterns:
- open.weixin.qq.com/connect/qrconnect
- open.weixin.qq.com/connect/oauth2
QQ
URL patterns:
- graph.qq.com/oauth2.0/authorize
- ssl.xui.ptlogin2.qq.com
- ui.ptlogin2.qq.com
Click Sequences by Provider
Google
Account selector: [data-identifier], .JDAKTe
Auth buttons: button:has-text("Allow"), button:has-text("Continue")
Apple
Email input: input[type="email"], #account_name_text_field
Password: input[type="password"], #password_text_field
Continue: button#sign-in, button:has-text("Continue")
Trust device: button:has-text("Trust")
Microsoft
Account selector: .table-row[data-test-id]
Email input: input[name="loginfmt"]
Password: input[name="passwd"]
Next: button#idSIButton9
Accept: button#idBtn_Accept
GitHub
Email: input#login_field
Password: input#password
Sign in: input[type="submit"]
Authorize: button[name="authorize"]
2FA: input#app_totp
Discord
Email: input[name="email"]
Password: input[name="password"]
Login: button[type="submit"]
Authorize: button:has-text("Authorize")
WeChat
Method: QR code scan
- Screenshot QR code to user
- Wait for mobile scan confirmation
- Detect page redirect
QQ
Method: QR code or password login
QR: Screenshot to user
Password mode:
- Switch: a:has-text("密码登录")
- Username: input#u
- Password: input#p
- Login: input#login_button
OAuth Button Detection
Scan login pages for these selectors:
ProviderSelectorsCommon TextGoogle[data-provider="google"], .google-btn"Continue with Google"Apple[data-provider="apple"], .apple-btn"Sign in with Apple"Microsoft[data-provider="microsoft"]"Sign in with Microsoft"GitHub[data-provider="github"]"Continue with GitHub"Discord[data-provider="discord"]"Login with Discord"WeChat.wechat-btn, img[src*="wechat"]"WeChat Login"QQ.qq-btn, img[src*="qq"]"QQ Login"
One-Time Setup
Login to each provider in clawd browser:
# Google
browser action=navigate profile=clawd url=https://accounts.google.com
# Apple
browser action=navigate profile=clawd url=https://appleid.apple.com
# Microsoft
browser action=navigate profile=clawd url=https://login.live.com
# GitHub
browser action=navigate profile=clawd url=https://github.com/login
# Discord
browser action=navigate profile=clawd url=https://discord.com/login
# WeChat/QQ - Use QR scan, no pre-login needed
Error Handling
No "yes" reply → Cancel and notify user
2FA required → Prompt user to enter code manually
QR timeout → Re-screenshot new QR code
Login failed → Screenshot and send to user for debugging
Usage Example
User: Login to Kaggle for me
Agent:
1. Navigate to kaggle.com/account/login
2. Detect Google/Facebook/Yahoo options
3. Send: "🔐 Kaggle supports:
1️⃣ Google
2️⃣ Facebook
3️⃣ Yahoo
Reply number to choose"
4. User replies: 1
5. Click Google login
6. Detect Google OAuth page
7. Send: "🔐 Kaggle requests Google login. Confirm? Reply yes"
8. User replies: yes
9. Select account, click Continue
10. Send: "✅ Logged into Kaggle!"
Version History
v1.0.0 - Initial release with 7 OAuth providers
评论与讨论
添加评论