QuickWork is a Raycast extension for sending structured messages to a Feishu group as a user identity (not bot identity), with automatic token refresh.
Qwcommand for fast sending in Raycast search bar- Input format:
正文 #前缀- Example:
今天同步了版本进展 #日报
- Example:
- If
#前缀is omitted, QuickWork reuses the last prefix automatically - Final sent format stays:
前缀:正文 - User OAuth authorization flow with local callback capture
- Auto refresh for
access_tokenusingrefresh_token - Retry once on
99991679by forcing token refresh
Send a message to the configured Feishu group.
Input examples:
- First time (set prefix):
完成了接口联调 #日报 - Next times (reuse prefix):
今天修复了3个线上问题
Open Feishu OAuth page and automatically capture the authorization callback code.
QuickWork then exchanges tokens and stores latest auth state in local storage.
Configure in Raycast extension preferences:
Feishu App IDFeishu App SecretFeishu User Refresh TokenFeishu OAuth Redirect URIFeishu Chat ID
Use a localhost callback URI and keep it consistent in both places:
- Feishu Open Platform app settings
- QuickWork preference:
Feishu OAuth Redirect URI
Recommended value:
http://127.0.0.1:14520/feishu-callback
Recommended user scopes:
offline_accessim:chat:readim:message
npm install
npm run devUseful checks:
npm run lint
npm test
npm run build- Close old authorization tabs
- Run
Authorize Feishuonce and complete that same opened page - Do not reuse an old auth URL from previous runs
- Ensure required user scopes are enabled and published in Feishu app
- Re-authorize user after scope changes
- Use single-input pattern correctly:
- Set once:
正文 #前缀 - Reuse later:
正文
- Set once:
- Rotate exposed
app_secret,access_token, andrefresh_tokenimmediately - Avoid committing secrets into code or logs