Skip to main content Skills Marketplace Descubre y explora habilidades de IA creadas por la comunidad.
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Copiar promptMostrar detalles del prompt Un comando directo omite el prompt de revisión. Revisa el origen antes de ejecutarlo.
npx skills add https://github.com/ForceInjection/domain-driven-design-skills --skill larkEl comando permanece en una sola línea. Desplázate horizontalmente para revisarlo antes de copiarlo.
¿Prefieres una copia local? Descarga los archivos que SkillsMP tiene disponibles ahora.
Descargar Zip Descargando... Conduct deep academic research for philosophy, neuroscience, cognitive science, and theoretical computer science (computability, complexity, AI theory, logic). Use when user asks to: research academic topics, find scholarly papers, conduct literature reviews, analyze citations, synthesize research findings, explore philosophical arguments, investigate consciousness/cognition, study computability/decidability/Turing machines, or analyze academic debates. Triggers on: 'research papers', 'literature review', 'academic sources', 'scholarly articles', 'philosophy of mind', 'computability theory', 'neuroscience studies', 'find papers on', 'what does the research say'.
Ocupaciones relacionadas SOC
Basado en la clasificación ocupacional SOC
Explorador de archivos
2 archivos name lark description Lark/Feishu API integration for messaging, group management, contacts, and calendar. Use this skill to send messages, manage chats, query contacts, and sync calendar events with Lark/Feishu. vm0_secrets ["LARK_APP_SECRET"] vm0_vars ["LARK_APP_ID"]
Lark (Feishu) API
Complete Lark/Feishu integration for enterprise collaboration, including messaging, group management, contacts, and calendar.
When to Use
Send automated notifications to users or groups
Build interactive bot workflows
Manage group chats and members
Query contacts and organization structure
Sync calendar events and schedules
Integrate Lark with other systems
Prerequisites
Set the following environment variables:
export LARK_APP_ID=cli_xxxxx
export LARK_APP_SECRET=xxxxx
Get your credentials from: https://open.larkoffice.com/
Required Permissions
Enable these API scopes in your Lark app:
im:message - Send and read messages
im:chat - Manage group chats
contact:user.base:readonly - Read contacts
calendar:calendar - Manage calendars
Token Management Lark uses tenant access tokens that expire after 2 hours. Use this helper to get or refresh the token:
get_lark_token () {
local token_file="/tmp/lark_token.json"
local current_time=$(date +%s)
if [ -f "$token_file " ]; then
local expire_time=$(jq -r '.expire_time // 0' "$token_file " 2>/dev/null || echo "0" )
if [ "$current_time " -lt "$expire_time " ]; then
jq -r '.tenant_access_token' "$token_file "
return 0
fi
fi
local response=$(curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
-H "Content-Type: application/json" \
-d "{\"app_id\": \"${LARK_APP_ID} \", \"app_secret\": \"${LARK_APP_SECRET} \"}" )
local code=$(echo "$response " | jq -r '.code // -1' )
if [ "$code " != "0" ]; then
echo "Error: $(echo "$response " | jq -r '.msg') " >&2
return 1
fi
local expire=$(echo "$response " | jq -r '.expire' )
local expire_time=$((current_time + expire - 300 ))
echo "$response " | jq ". + {expire_time: $expire_time }" > "$token_file "
jq -r '.tenant_access_token' "$token_file "
}
TOKEN=$(get_lark_token)
Or get token directly without caching:
TOKEN=$(bash -c 'curl -s -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
-H "Content-Type: application/json" \
-d "{\"app_id\": \"${LARK_APP_ID}\", \"app_secret\": \"${LARK_APP_SECRET}\"}"' | jq -r '.tenant_access_token' )
Examples
1. Authentication - Get Access Token Get and display tenant access token:
Write to /tmp/lark_request.json:
{
"app_id" : "${LARK_APP_ID}" ,
"app_secret" : "${LARK_APP_SECRET}"
}
bash -c 'curl -X POST "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal" \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json'
2. Messaging - Send Messages
Send Text Message to User Write to /tmp/lark_request.json:
{
"receive_id" : "ou_xxx" ,
"msg_type" : "text" ,
"content" : "{\"text\": \"Hello World\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Send Text Message to Group Chat Write to /tmp/lark_request.json:
{
"receive_id" : "oc_xxx" ,
"msg_type" : "text" ,
"content" : "{\"text\": \"Group message\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Send Rich Text (Post) Message Write to /tmp/lark_request.json:
{
"receive_id" : "ou_xxx" ,
"msg_type" : "post" ,
"content" : "{\"zh_cn\": {\"title\": \"Title\", \"content\": [[{\"tag\": \"text\", \"text\": \"Content\"}]]}}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Send Interactive Card Message Write to /tmp/lark_request.json:
{
"receive_id" : "oc_xxx" ,
"msg_type" : "interactive" ,
"content" : "{\"header\": {\"title\": {\"tag\": \"plain_text\", \"content\": \"Alert\"}}, \"elements\": [{\"tag\": \"div\", \"text\": {\"tag\": \"plain_text\", \"content\": \"Message\"}}]}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Reply to Message Write to /tmp/lark_request.json:
{
"msg_type" : "text" ,
"content" : "{\"text\": \"Reply content\"}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages/om_xxx/reply" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Get Chat History TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/im/v1/messages?container_id_type=chat&container_id=oc_xxx&page_size=20" \
-H "Authorization: Bearer ${TOKEN} "
3. Chat Management - Group Operations
Create Group Chat Write to /tmp/lark_request.json:
{
"name" : "Project Team" ,
"description" : "Project discussion group" ,
"user_id_list" : [ "ou_xxx" , "ou_yyy" ]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/chats?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
List All Chats TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/im/v1/chats" \
-H "Authorization: Bearer ${TOKEN} "
Get Chat Info TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/im/v1/chats/oc_xxx" \
-H "Authorization: Bearer ${TOKEN} "
Add Members to Chat Write to /tmp/lark_request.json:
{
"id_list" : [ "ou_xxx" , "ou_yyy" ]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/chats/oc_xxx/members?member_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Remove Members from Chat Write to /tmp/lark_request.json:
{
"id_list" : [ "ou_xxx" ]
}
TOKEN=$(get_lark_token)
curl -X DELETE "https://open.feishu.cn/open-apis/im/v1/chats/oc_xxx/members?member_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
4. Contacts - Directory Queries
Get User Info TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/contact/v3/users/ou_xxx?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} "
Search Users Write to /tmp/lark_request.json:
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/contact/v3/users/search?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
List Departments TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/contact/v3/departments?parent_department_id=0" \
-H "Authorization: Bearer ${TOKEN} "
Get Department Members TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/contact/v3/users/find_by_department?department_id=od_xxx&user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} "
5. Calendar - Schedule Management
List Calendars TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/calendar/v4/calendars" \
-H "Authorization: Bearer ${TOKEN} "
Create Calendar Write to /tmp/lark_request.json:
{
"summary" : "Project Calendar" ,
"description" : "Calendar for project events"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/calendar/v4/calendars" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Create Calendar Event Note: Replace <calendar_id> with an actual calendar ID from List Calendars API.
TOKEN=$(get_lark_token)
START_TS=$(date -d "2025-01-15T10:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T10:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-15T11:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T11:00:00+08:00" +%s)
cat > /tmp/lark_request.json <<EOF
{
"summary": "Team Meeting",
"description": "Weekly sync",
"start_time": {"timestamp": "${START_TS}"},
"end_time": {"timestamp": "${END_TS}"}
}
EOF
curl -X POST "https://open.feishu.cn/open-apis/calendar/v4/calendars/<calendar_id>/events" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
List Calendar Events TOKEN=$(get_lark_token)
START_TS=$(date -d "2025-01-01T00:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-01T00:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-31T23:59:59+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-31T23:59:59+08:00" +%s)
curl -X GET "https://open.feishu.cn/open-apis/calendar/v4/calendars/<calendar_id>/events?start_time=${START_TS} &end_time=${END_TS} " \
-H "Authorization: Bearer ${TOKEN} "
6. Bot Information
Get Bot Info TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/bot/v3/info" \
-H "Authorization: Bearer ${TOKEN} "
Workflows
Send System Alert to Group Write to /tmp/lark_request.json:
{
"receive_id" : "oc_xxx" ,
"msg_type" : "interactive" ,
"content" : "{\"header\": {\"title\": {\"tag\": \"plain_text\", \"content\": \"System Alert\"}, \"template\": \"red\"}, \"elements\": [{\"tag\": \"div\", \"text\": {\"tag\": \"lark_md\", \"content\": \"**Error:** Service down\"}}]}"
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=chat_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Create Team Group with Members Write to /tmp/lark_request.json:
{
"name" : "Q1 Project" ,
"description" : "Q1 project discussion" ,
"user_id_list" : [ "ou_abc" , "ou_def" , "ou_ghi" ]
}
TOKEN=$(get_lark_token)
curl -X POST "https://open.feishu.cn/open-apis/im/v1/chats?user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Query Organization Structure TOKEN=$(get_lark_token)
curl -X GET "https://open.feishu.cn/open-apis/contact/v3/departments?parent_department_id=0" \
-H "Authorization: Bearer ${TOKEN} " | jq '.data.items[] | {id: .department_id, name: .name}'
curl -X GET "https://open.feishu.cn/open-apis/contact/v3/users/find_by_department?department_id=od_xxx&user_id_type=open_id" \
-H "Authorization: Bearer ${TOKEN} " | jq '.data.items[] | {id: .user_id, name: .name}'
Schedule a Meeting TOKEN=$(get_lark_token)
START_TS=$(date -d "2025-01-20T09:00:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-20T09:00:00+08:00" +%s)
END_TS=$(date -d "2025-01-20T10:30:00+08:00" +%s 2>/dev/null || date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-20T10:30:00+08:00" +%s)
cat > /tmp/lark_request.json <<EOF
{
"summary": "Sprint Planning",
"description": "Sprint 5 planning session",
"start_time": {"timestamp": "${START_TS}"},
"end_time": {"timestamp": "${END_TS}"}
}
EOF
curl -X POST "https://open.feishu.cn/open-apis/calendar/v4/calendars/<calendar_id>/events" \
-H "Authorization: Bearer ${TOKEN} " \
-H "Content-Type: application/json" \
-d @/tmp/lark_request.json
Message Types Reference Type msg_type content Format Text text{"text": "message"}Rich Text post{"zh_cn": {"title": "...", "content": [...]}}Image image{"image_key": "img_xxx"}Card interactive{"header": {...}, "elements": [...]}
ID Types Reference ID Type Description Example open_idUser open ID (default) ou_xxxuser_idUser ID abc123union_idUnion ID across apps on_xxxemailUser email address user@example.comchat_idGroup chat ID oc_xxx
Guidelines
Token Management : Tokens expire after 2 hours. Use the get_lark_token helper function for automatic caching and refresh.
Rate Limits : Lark has rate limits per app. Add delays for bulk operations to avoid hitting limits.
ID Types : Use open_id for most user operations. Use chat_id when targeting group chats.
Card Builder : Design complex interactive cards using Lark Card Builder: https://open.larkoffice.com/tool/cardbuilder
Error Handling : Check the code field in responses. 0 means success, non-zero indicates an error.
Content Escaping : Message content must be JSON-escaped when passed as string. Use jq to build complex payloads:
CONTENT=$(jq -n --arg text "Hello" '{text: $text}' )
curl ... -d "{\"content\": \"$(echo $CONTENT | jq -c .) \"}"
Date Conversion : Calendar events require Unix timestamps. Use date command with appropriate flags for your OS:
Linux: date -d "2025-01-15T10:00:00+08:00" +%s
macOS: date -j -f "%Y-%m-%dT%H:%M:%S%z" "2025-01-15T10:00:00+08:00" +%s
API Reference