一键导入
social-auth
Manage OAuth2 authorization for social media platforms (Twitter/X, LinkedIn, etc.). Authorize, check status, refresh, and revoke tokens.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Manage OAuth2 authorization for social media platforms (Twitter/X, LinkedIn, etc.). Authorize, check status, refresh, and revoke tokens.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Authoritative design discipline for WeftOS surfaces — tokens, composer-primitive usage, surface archetypes, empty/loading/offline contract, a11y floor, and OOB stock-desktop manifest. Use whenever creating, reviewing, or modifying a TOML surface fixture, the egui theming layer, or any user-visible WeftOS pane. Codifies docs/DESIGN.md and provides scaffold + audit scripts.
Authoritative Plane work-tracker discipline for WeftOS / clawft. Use whenever you create, claim, finish, or defer a meaningful unit of work, or when triaging audits / TODOs / FIXMEs / orphans into Plane work items. Codifies the lifecycle (Backlog → Todo → In Progress → Done | Cancelled), the cycle taxonomy (0.7.x must-ship, 0.8.x / 0.9.x / 1.0.x deferred), and the HTTP API workaround for the partially-broken MCP server.
Deploy Fumadocs site to Vercel at weftos.weavelogic.ai (always run after docs/src changes)
Generate rustdoc API reference and deploy to weftos.weavelogic.ai/api
Build, test, publish, and deploy WeftOS across all channels (GitHub Releases, crates.io, npm, Docker, Homebrew)
Route tasks to external agents via MCP (preferred) or CLI fallback. LightLLM translation layer with intelligent routing based on task complexity, cost, and agent capabilities.
| name | social-auth |
| description | Manage OAuth2 authorization for social media platforms (Twitter/X, LinkedIn, etc.). Authorize, check status, refresh, and revoke tokens. |
| version | 1.0.0 |
| variables | ["platform","action"] |
| allowed-tools | ["Bash","Read","Write"] |
| user-invocable | true |
| argument-hint | <platform> <action> (e.g., twitter authorize) |
You manage OAuth2 tokens for social media platforms through clawft's OAuth2
plugin. You translate user requests into weft tool CLI commands targeting the
oauth2_authorize, oauth2_callback, oauth2_refresh, and rest_request
tools.
| Platform | Provider Config Name | Token File |
|---|---|---|
| Twitter/X | twitter | ~/.clawft/tokens/twitter.json |
linkedin | ~/.clawft/tokens/linkedin.json |
New platforms can be added by configuring an OAuth2 provider in
~/.clawft/config.json under oauth2.providers.<name>.
Begin the authorization code flow for a platform. Returns a URL the user must open in their browser.
weft tool oauth2_authorize --provider {{platform}}
After the user authorizes in the browser, they will be redirected to the
callback URL. Capture the code and state parameters:
weft tool oauth2_callback --provider {{platform}} --code "<code>" --state "<state>"
This exchanges the auth code for tokens and stores them at
~/.clawft/tokens/{{platform}}.json.
Check whether a valid token exists for a platform.
# Read the token file directly
cat ~/.clawft/tokens/{{platform}}.json 2>/dev/null
Report:
expires_at to current epoch).Do NOT display the actual token values to the user. Only report metadata.
Refresh an expired access token using the stored refresh token.
weft tool oauth2_refresh --provider {{platform}}
If no refresh token is available, inform the user they need to re-authorize.
Revoke all tokens for a platform. This makes an API call to the provider's revocation endpoint (if supported) and then deletes the local token file.
For Twitter/X:
weft tool rest_request --provider twitter --method POST \
--url "https://api.x.com/2/oauth2/revoke" \
--body '{"token": "<access_token>", "client_id": "<client_id>"}'
Then remove the local token file:
rm ~/.clawft/tokens/{{platform}}.json
Before authorizing, the user must have a provider configured in
~/.clawft/config.json. Example for Twitter:
{
"oauth2": {
"providers": {
"twitter": {
"preset": "custom",
"client_id": "YOUR_CLIENT_ID",
"client_secret_ref": { "env_var": "TWITTER_CLIENT_SECRET" },
"auth_url": "https://twitter.com/i/oauth2/authorize",
"token_url": "https://api.x.com/2/oauth2/token",
"scopes": ["tweet.read", "tweet.write", "users.read", "bookmark.read", "bookmark.write", "offline.access"],
"redirect_uri": "http://localhost:8085/callback"
}
}
}
}
If the provider config is missing, guide the user through creating it. Never
hardcode or ask for the client_secret directly -- it must be referenced via
an environment variable through client_secret_ref.
authorize.authorize.client_secret_ref with env vars.~/.clawft/tokens/.