Dingtalk Channel Connect logo

Dingtalk Channel Connect

OrganizationPopular
agentscope-ai
dingtalk_channel_connect

Use a headed browser to automatically complete DingTalk channel integration for QwenPaw. Applicable when the user mentions DingTalk, developer console, Client ID, Client Secret, bot, Stream mode, binding or configuring a channel. Supports pausing when a login page is detected and resuming after the user logs in.

Overview

Publisheragentscope-ai
RepositoryQwenPaw
Skill namedingtalk_channel_connect
Stars
35.6K
Forks
3.2K
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by agentscope-ai on GitHub. Read the source before you install it.

Installation

Install the Dingtalk Channel Connect AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/agentscope-ai/QwenPaw/tree/main/src/qwenpaw/agents/skills/dingtalk_channel-en
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/agentscope-ai/QwenPaw.git /tmp/QwenPaw
mkdir -p .claude/skills
cp -r /tmp/QwenPaw/src/qwenpaw/agents/skills/dingtalk_channel-en .claude/skills/dingtalk_channel_connect
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Dingtalk Channel Connect in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Dingtalk Channel Connect on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Dingtalk Channel Connect is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

DingTalk Channel Auto-Connect (Headed Browser)

This skill automates the creation of a DingTalk application and the binding of a QwenPaw channel using a headed browser.

Mandatory Rules

  1. Must launch in headed browser mode:
json
{"action": "start", "headed": true}
  1. Must pause when a login gate is encountered:

    • If the page displays a login screen (e.g., login prompt, QR code login, phone/password login), stop automated operations immediately.
    • Clearly prompt the user to log in manually first, then wait for the user to reply with "logged in / continue".
    • Do not proceed with subsequent steps until the user confirms.
  2. Any application configuration change only takes effect after creating a new version and publishing:

    • After configuring bot-related information, you must publish the bot.
    • Whether creating a new application or modifying application information (name, description, icon, bot configuration, etc.), you must perform "create new version + publish" at the end.
    • Do not claim the configuration is active if publishing has not been completed.

Pre-Execution Confirmation (Must Do First)

Before starting automated clicks, initiate a "configuration confirmation" with the user, clearly informing them of customizable fields, image specifications, and default values. Use the following structured confirmation:

  1. Allow the user to customize the following fields:

    • Application name
    • Application description
    • Bot icon image URL or local path
    • Bot message preview image URL or local path
  2. Clearly state the image specifications (prominently):

    • Bot icon: JPG/PNG only, 240*240px or larger, 1:1 ratio, under 2MB, no rounded corners.
    • Bot message preview image: format png/jpeg/jpg, no more than 2MB.
  3. Clearly state the default values (used automatically if the user does not specify):

    • Application name: QwenPaw
    • Application description: Your personal assistant
    • Bot icon: https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png
    • Bot message preview image: https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png
  4. If the user provides no custom values, you must first explicitly reply:

    • "All default settings will be used (QwenPaw / Your personal assistant / default images). Proceeding now."

Image Upload Strategy (Both link and path are supported)

  1. If the user provides a local path, use it directly for upload.
  2. If the user provides an image link, download it to a local temporary file first, then upload.
  3. The upload action sequence must be:
    • First click the page upload entry (to trigger the chooser)
    • Then call file_upload with the local path array (paths_json)
  4. If the upload fails due to image specification mismatch (dimensions, ratio, size, format):
    • Immediately pause automation
    • Clearly ask the user to manually upload a compliant image
    • After the user confirms "uploaded / continue", resume from the current step

Practical Upload Tips

  1. The paths_json of file_upload must be a "JSON string array" -- note the escaping:
json
{
  "action": "file_upload",
  "paths_json": "[\"xxx.png\"]",
  "frame_selector": "iframe[src*=\"/fe/app?isHideOuterFrame=true\"]"
}
  1. If the page is within an iframe, prefer including frame_selector; otherwise the upload control may not be found or the chooser may not trigger.

  2. You must click the upload entry before calling file_upload; calling it directly will result in:

    • No chooser. Click upload then file_upload.
  3. Common structural features of the bot icon area that can be used for locating elements (examples; these may appear as Chinese UI labels in the DingTalk console):

    • text: "* 机器人图标" (Bot Icon)
    • button: "使用应用图标" (Use App Icon)
    • button: "avatar" (usually contains img "avatar" inside)
  4. When the snapshot shows both "使用应用图标" ("Use App Icon") and "avatar", prefer clicking the avatar button to trigger the upload, then call file_upload.

Automation Flow

Step 1: Open the DingTalk Developer Console

  1. Launch the browser in headed mode (headed: true)
  2. Navigate to https://open-dev.dingtalk.com/
  3. Call snapshot to check if login is required

If login is required, pause with the following message:

Login to the DingTalk Developer Console is required. I have paused automated operations. Please complete the login in the opened browser. Reply "continue" when done, and I will resume from the current page.

Step 2: Create an Internal Enterprise Application

After the user confirms login, continue:

  1. Navigate to the creation path:
    • Application Development -> Internal Enterprise Applications -> DingTalk Applications -> Create Application
  2. Fill in the application information (prefer user-customized values, otherwise use defaults):
    • Application name: default QwenPaw
    • Application description: default Your personal assistant
  3. Save and create the application

If the page text or structure does not match expectations, re-run snapshot and relocate elements based on visible text semantics.

Step 3: Add Bot Capability and Publish

  1. Click Add Application Capability under Application Capabilities, find Bot and add it
  2. Toggle the switch button on the right side of Bot Configuration to enabled
  3. Fill in Bot Name, Bot Brief, and Bot Description
  4. Upload the Bot Icon (user-customized or default image):
    • Click the image below the bot icon label
    • Default image URL: https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png
    • If it is a link, download to local first, then upload
    • If the image does not meet specifications, pause and ask the user to manually upload a compliant image before continuing
  5. Upload the Bot Message Preview Image (user-customized or default image):
    • Click the image below the bot message preview image label
    • Default image URL: https://img.alicdn.com/imgextra/i4/O1CN01M0iyHF1FVNzM9qjC0_!!6000000000492-2-tps-254-254.png
    • If it is a link, download to local first, then upload
    • If the image does not meet specifications, pause and ask the user to manually upload a compliant image before continuing
  6. Confirm that the message receiving mode is set to Stream Mode (the Chinese UI may display Stream 模式)
  7. Select Publish; a further confirmation dialog will appear -- select publish. Note: you must publish the bot before proceeding to the next step

Step 4: Create Version and Publish

  1. Navigate to Application Release -> Version Management & Release
  2. Create a new version (required after every configuration change)
  3. Fill in the version description; set the application visibility scope to all employees
  4. Follow the page prompts to complete publishing; a new dialog will appear -- select confirm publish
  5. Only after seeing the successful publication status may you proceed with subsequent steps or tell the user "the configuration is now active"

Step 5: Obtain Credentials

  1. Navigate to Basic Information -> Credentials & Basic Info
  2. Inform the user that the Client ID (AppKey) and Client Secret (AppSecret) are on this page. Do not make changes proactively; guide the user to bind them on their own

QwenPaw Binding Methods

After obtaining the credentials, guide the user to choose one of the following methods:

  1. Console frontend configuration:

    • In the QwenPaw console, go to Control -> Channels -> DingTalk
    • Enter the Client ID and Client Secret
  2. Configuration file method:

json
"dingtalk": {
  "enabled": true,
  "bot_prefix": "[BOT]",
  "client_id": "Your Client ID",
  "client_secret": "Your Client Secret"
}

Path: ~/.qwenpaw/config.json, under channels.dingtalk.

Credential Delivery Requirements (Mandatory)

  1. The agent is only responsible for guiding the user to the credentials page, obtaining and displaying the Client ID and the actual Client Secret.
  2. The agent must not proactively modify the console configuration or ~/.qwenpaw/config.json.
  3. You must instruct the user to fill in the credentials manually using one of the following two methods:
    • Console frontend: Control -> Channels -> DingTalk
    • Configuration file: edit the channels.dingtalk field in ~/.qwenpaw/config.json

Browser Tool Usage Pattern

Execute in the following order by default:

  1. start with headed: true
  2. open
  3. snapshot
  4. click / type / select_option / press_key as needed
  5. frequent snapshot after page transitions
  6. stop when done

Stability and Recovery Strategy

  • Prefer using the ref from the latest snapshot; only use selector when necessary.
  • After each critical click or navigation, use a short wait (wait_for) and immediately re-run snapshot.
  • If the session expires or re-login is required mid-flow, pause again and wait for the user to log in before continuing from the current step.
  • If automation is blocked by tenant permissions or admin approval, clearly describe the blocker and ask the user to manually complete that step before resuming.

Frequently asked questions

What does the Dingtalk Channel Connect AI skill do?

Use a headed browser to automatically complete DingTalk channel integration for QwenPaw. Applicable when the user mentions DingTalk, developer console, Client ID, Client Secret, bot, Stream mode, binding or configuring a channel. Supports pausing when a login page is detected and resuming after the user logs in.

Why use Dingtalk Channel Connect on TypingMind?

Because you install it once and use it with any model. Dingtalk Channel Connect is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Dingtalk Channel Connect in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/agentscope-ai/QwenPaw/tree/main/src/qwenpaw/agents/skills/dingtalk_channel-en. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Dingtalk Channel Connect?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Dingtalk Channel Connect?

As many as you like. As long as a model supports skills, you can use Dingtalk Channel Connect with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Dingtalk Channel Connect AI skill free?

Yes. It is published on GitHub by agentscope-ai under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇