Repository navigation
en plugin dev directory structure
This document introduces the standard directory structure and file organization specifications for LangBot plugins, helping developers create compliant plugins.
A standard LangBot plugin should follow this directory structure:
MyPlugin/
├── manifest.yaml # Plugin manifest file (required)
├── main.py # Plugin main entry file (required)
├── README.md # English plugin documentation (required)
├── readme/ # Multilingual README directory (optional)
│ ├── README_zh_Hans.md # Simplified Chinese documentation
│ ├── README_ja_JP.md # Japanese documentation
│ └── README_zh_Hant.md # Traditional Chinese documentation (optional)
├── assets/ # Resource files directory
│ ├── icon.svg # Plugin icon (recommended)
│ └── ... # Other resource files
├── components/ # Components directory
│ ├── event_listener/ # Event listener components
│ ├── commands/ # Command components
│ └── tools/ # Tool components
├── requirements.txt # Python dependencies (optional)
└── config/ # Configuration directory (optional)
LangBot plugins support multilingual README documentation to provide localized plugin descriptions for users in different languages.
Important Specifications:
-
Root README.md (Required)- Must be written in English
- Serves as the plugin's default documentation
- Used as fallback when requested language version doesn't exist
-
readme/ Directory (Optional)- Used to store non-English README documents
- File naming format:
README_{language_code}.md
According to RFC 4646 standard, LangBot currently supports the following language codes:
| Language | Language Code | Filename | Location |
|---|---|---|---|
| English |
en or en_US
|
README.md |
Plugin root directory |
| Simplified Chinese | zh_Hans |
README_zh_Hans.md |
readme/ directory |
| Traditional Chinese | zh_Hant |
README_zh_Hant.md |
readme/ directory |
| Japanese | ja_JP |
README_ja_JP.md |
readme/ directory |
| Vietnamese | vi_VN |
README_vi_VN.md |
readme/ directory |
| Thai | th_TH |
README_th_TH.md |
readme/ directory |
| Spanish | es_ES |
README_es_ES.md |
readme/ directory |
MyPlugin/
├── README.md # ✅ English version (required, in root)
└── readme/ # ✅ Multilingual directory
├── README_zh_Hans.md # ✅ Simplified Chinese
├── README_ja_JP.md # ✅ Japanese
└── README_zh_Hant.md # ✅ Traditional Chinese
❌ Wrong: Placing English README in readme/ directory
MyPlugin/
├── readme/
│ ├── README_en.md # ❌ Wrong: English should not be in readme/
│ └── README_zh_Hans.md
❌ Wrong: Root README.md contains non-English content
# MyPlugin
This is a plugin...
这是一个插件... # ❌ Wrong: Root README.md should only contain EnglishWhen a user requests a README in a specific language, LangBot will search in the following order:
- Try to read
readme/README_{language_code}.md - If not found, fall back to root
README.md(English version)
Examples:
- User requests Simplified Chinese (
zh_Hans)- → Look for
readme/README_zh_Hans.md - → If not found, return
README.md(English version)
- → Look for
- User requests Japanese (
ja_JP)- → Look for
readme/README_ja_JP.md - → If not found, return
README.md(English version)
- → Look for
The assets/ directory is used to store plugin static resource files.
Recommended Structure:
assets/
├── icon.svg # Plugin icon (SVG format recommended)
├── example.png # Example image
├── screenshot1.png # Screenshot
└── logo.png # Logo image
Icon Specifications:
- Recommended to use
icon.svgas plugin icon - Supported formats:
.svg,.png,.jpg,.jpeg,.gif - Recommended size: At least 256x256 pixels
- Reference in
manifest.yaml:icon: assets/icon.svg
In README documentation, you can use relative paths to reference images in the assets/ directory:
# MyPlugin

Note: After uploading plugins to LangBot Space, resource files will be automatically processed and hosted, and images will display correctly when users view the README.
Plugin functionality is implemented through components, which should be organized by type in the components/ directory:
components/
├── event_listener/ # Event listeners
│ ├── on_message.py
│ └── on_message.yaml
├── commands/ # Commands
│ ├── hello.py
│ └── hello.yaml
└── tools/ # Tools
├── search.py
└── search.yaml
For detailed component development specifications, please refer to: Adding Components
The plugin manifest file manifest.yaml is the core configuration file, containing plugin metadata, configuration items, component lists, and other information.
For detailed instructions, please refer to: Complete Plugin Configuration Information
If the plugin requires additional Python dependencies, create a requirements.txt file in the root directory:
requests>=2.28.0
beautifulsoup4>=4.11.0
pillow>=9.0.0
Note: LangBot will automatically install dependencies listed in requirements.txt when installing the plugin.
- Basic Tutorial - Learn how to create your first plugin
- Complete Plugin Configuration Information - Configure manifest.yaml
- Adding Components - Develop plugin components
- Publish to Marketplace - Distribute your plugin
Automatically synchronized from langbot-app/langbot-docs.
简体中文
指南
开发者
- 插件开发
- 插件 SDK API
- 核心开发
文章
- 浏览
- 产品动态
- 技术解析
- 教程与集成
- 公告
API 参考
- Service API
English
Guides
- Quick Start
- Installation
-
Configure Bots
- Bots
- Discord
- Telegram
- Slack
- Mattermost
- LINE
- Web Page Bot
- HTTP Bot
- KOOK
- Feishu
- DingTalk
- WeChat Official Account
- QQ (OneBot v11)
- Satori (QQ & Multi-Platform)
- QQ Official Bot
- WeCom (Enterprise WeChat)
- AI Configuration
- Advanced Operations
- Using Plugins
Developers
-
Plugin Development
- Plugin Development Tutorial
- Completing Plugin Configuration Information
- Plugin Directory Structure
- Component Development
- Code Style Guide
- Certified plugins and shared runtime
- Publish Plugin
- Migration Guide
- Plugin SDK API
- Core Development
Articles
- Browse
- Product Updates
- Engineering
-
Tutorials & Integrations
- LangTARS: Open-Source AI Agent for Remote PC Control — Works with Dify, n8n & 10+ Messaging Platforms
- How to Connect DeepSeek R1 to WeChat, Discord & Telegram in 5 Minutes (FREE)
- Deploy Your Own AI Bot to Discord, Telegram & WeChat in 5 Minutes
- Finally Got My Dify Agent Working in Discord, Telegram and Slack
- How I Built a Multi-Platform AI Bot with Langflow's Drag-and-Drop Workflows
- How I Built a Multi-Platform AI Chatbot with n8n and LangBot
- LangBot 4.6.0 External Knowledge Base Tutorial: Integrating Dify with LangBot for RAG-powered Conversations
- Announcements
API Reference
- Service API
Other pages
日本語
ガイド
開発者
- プラグイン開発
- プラグイン SDK API
- コア開発
記事
- 一覧
- 製品アップデート
- エンジニアリング
-
チュートリアルと連携
- LangTARS:Dify・n8n と連携するオープンソース PC 操作 Agent
- DeepSeek R1 を WeChat・Discord・Telegram に5分で接続する方法
- AI Bot を Discord・Telegram・WeChat に5分でデプロイ
- Dify Agent を Discord・Telegram・Slack で動かす
- Langflow のドラッグ&ドロップでマルチプラットフォーム AI Bot を構築
- n8n と LangBot でマルチプラットフォーム AI Chatbot を構築
- LangBot 4.6.0 外部ナレッジベース入門:Dify と連携した RAG 会話
- お知らせ
API リファレンス
- Service API