
Agent Testing Bot Channels
FreeEnd-to-end verification for chat bot channels.
Free · Opens the source repo
What Agent Testing Bot Channels does
The Agent Testing Bot Channels skill is designed to facilitate end-to-end testing of chat bots across various native applications such as Discord, Slack, Telegram, WeChat, Lark, QQ, and iMessage on macOS. By leveraging the capabilities of the generic agent-testing skill, this extension allows developers to verify the functionality of their bots directly within the real chat environments where they will operate. The skill operates through a structured process that consists of planning, executing, and finishing, ensuring a comprehensive testing approach.
This skill utilizes native macOS automation tools like osascript and the iMessage bridge to interact with the chat applications. Each platform is supported by a dedicated driver script that follows a consistent interface, making it easy to send messages, navigate to contacts, and capture screenshots of the results. This approach ensures that the testing is thorough and reflects the actual user experience in these applications.
Developers and designers who are building chat bots will find this skill particularly useful for validating their implementations in real-world scenarios. By using this skill, they can confirm that their bots are functioning correctly in the environments they are intended for, which is crucial for delivering a seamless user experience. The skill provides documentation for each platform, detailing activation, navigation, and verification processes, which aids in streamlining the testing workflow.
However, it is important to note that this skill is macOS-specific and cannot be run headless or in cloud environments. Additionally, proper permissions for screen recording must be configured to ensure that the testing outputs are captured correctly, as any issues with permissions can result in unusable test evidence. This skill is ideal for developers focused on bot development within the specified chat applications and environments.
When to use it
Use this skill when you need to perform end-to-end testing of chat bots in native messaging applications on macOS.
When not to use it
Do not use this skill for testing in non-macOS environments or for applications that do not support native automation via osascript.
What you can build with it
Testing a Discord Bot
Use this skill to verify that your Discord bot responds correctly to messages and commands in the actual Discord app.
Validating a Slack Integration
Ensure that your Slack bot can send messages and interact with users as expected by running tests directly in the Slack application.
End-to-End Testing for WeChat Bots
Test your WeChat bot's functionality by automating message sending and verifying responses in the native WeChat app.
How to install Agent Testing Bot Channels
View source1. Install with the skills CLI
npx skills add lobehub/lobehub/agent-testing-bot --agent claude-code2. Or install it manually
Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.
Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs
Inside SKILL.md
Written by lobehubAgent Testing — Bot Channels (LobeHub project skill)
This skill extends the generic agent-testing skill (installed alongside at
../agent-testing/) to the bot-channel surfaces. It does NOT replace the core
process: the same three phases apply —
PLAN (Steps 0–2) → EXECUTE (Steps 3–6) → FINISH (Step 7)
— and the same report + publish pipeline (result.json → report-init.sh →
lh acceptance run ingest … --source agent-testing). Read the generic skill's
SKILL.md for target grounding, the living logs, the Phase-1 approval gate, the
report format, and teardown. This file only adds the bot-channel surface.
For LobeHub environment/auth/probe specifics (dev server, seeded account, ports),
the adapter is .agents/acceptance/PROJECT.md.
When this surface applies
| Change scope | Surface | Why |
|---|---|---|
| Bot channels (Discord / WeChat / Lark / …) | Native app via osascript / bridge | Only way to exercise the real channel end-to-end |
Route here only when the behavior under test is a bot channel. For CLI / Web / Electron changes, use the generic skill's surfaces.
Platforms
Each platform folder has an index.md (activation, navigation, send-message,
verification snippets) and a test-<platform>-bot.sh driver.
| Platform | Guide | Quick switcher |
|---|---|---|
| Discord | discord/index.md | Cmd+K |
| Slack | slack/index.md | Cmd+K |
| Telegram | telegram/index.md | Cmd+F |
| WeChat / 微信 | wechat/index.md | Cmd+F |
| Lark / 飞书 | lark/index.md | Cmd+K |
| qq/index.md | Cmd+F | |
| iMessage | imessage/index.md | bridge (no osascript) |
Shared driver contract
Every osascript platform script shares one interface:
./$PLATFORM/test-$PLATFORM-bot.sh $CHANNEL_OR_CONTACT $MESSAGE [$WAIT_SECONDS] [$SCREENSHOT_PATH]
The script activates the app, navigates to the channel/contact, sends the
message, waits, and screenshots the result window (via the generic skill's
../agent-testing/scripts/capture-app-window.sh). iMessage is the exception: it
uses a BlueBubbles bridge, not osascript — see imessage/index.md.
osascript prerequisites
The osascript platforms drive real macOS apps (activate, keystroke, click, read accessibility, screenshot). Read the generic skill's general macOS-automation reference before a first bot run: ../agent-testing/references/osascript.md. The target native app must already be running and logged in.
Screen-recording gate (macOS-only)
Bot evidence is captured with OS-level screencapture (through
capture-app-window.sh), NOT CDP — so it comes out entirely black when macOS
Screen Recording (TCC) permission is missing OR the display is asleep / locked /
on a screensaver. Gate BEFORE any bot capture:
./.agents/skills/agent-testing/scripts/check-screen-recording.sh # exit 0 = OS capture will work
Keep the display awake for the whole capture session (caffeinate -dimsu &, kill
when done). Because this surface depends on OS capture and native macOS apps,
bot channels are macOS-only — they do not run headless / in cloud.
Frequently asked questions about Agent Testing Bot Channels
Similar skills
WinMD API Search
Easily find and explore Windows desktop APIs.
WebMCPify
Transform any web app into an agent-ready platform.
Phoenix Tracing
Instrument LLM applications with OpenInference tracing.
Foundry Hosted Agent CopilotKit
Guidance for developing agentic web apps on Azure.
Power Automate Foundation
Connect AI agents to Power Automate seamlessly.
Power Automate Flow Builder
Efficiently build and deploy Power Automate flows programmatically.
