README_EN.MD

February 23, 2026 · View on GitHub

Project Logo

中文 | English | 日本語

A bot plugin for LLM chat services with multi-model integration, extensibility, and various output formats.

npm npm node version github top language

Telegram QQ doc Ask DeepWiki

Project Status: 1.0 Official Release (Slow development, preparing for v2 version)

📸 Screenshots

PresetAgent Mode & Streaming OutputImage Rendering
presetplugincode

✨ Features

  • 🚀 Highly extensible (LangChain & Koishi APIs)
  • 🎭 Custom conversation presets
  • 🛡️ Rate limiting & blacklist system
  • 🎨 Multi-format output (text, voice, image, mixed)
  • 🧠 Context-aware with long-term memory
  • 🔀 Three modes: chat, browsing, agent
  • 🔒 Content moderation via Koishi censor

📝 Roadmap

  • Room-based conversation system
  • Content moderation
  • TTS support (via vits service)
  • Image rendering for replies
  • Multi-model integration
  • Preset system
  • Conversation import/export (abandoned)
  • v1 refactoring
  • Streaming responses
  • Image multi-modal input support
  • MCP Protocol Client Support
  • i18n support

🚀 Quick Start

Install the plugin directly in Koishi without editing any configuration files. For details, see our docs.

🔌 Supported Models

Model/PlatformIntegrationFeatures
OpenAIOfficial APICustomizable, Agent/browsing modes
Azure OpenAIOfficial APISimilar to OpenAI
Google GeminiOfficial APIFast, outperforms GPT-3.5
Claude APIOfficial APILarge context, often beats GPT-3.5
DeepseekOfficial APIDomestic renowned model
Tongyi QianwenOfficial APIFree quota available
DoubaoLocal Client, Official API AccessModel developed by ByteDance, offers free quota
ZhipuOfficial APIFree tokens for new users
Xunfei SparkOfficial APIFree quota for new users
Wenxin YiyanOfficial APIBaidu's model
HunyuanOfficial APITencent's model
OllamaSelf-hostedOpen-source, CPU/GPU support
RWKVSelf-hostedOpen-source model

Web search support:

  • Google (API)
  • Bing (API & Web)
  • DuckDuckGO (Lite)
  • Tavily (API)

🎭 Presets

From 1.0.0-alpha.10, we use YAML for more customizable presets. Default preset: catgirl.yml

Preset folder: <koishi_dir>/data/chathub/presets

For more info, see preset system docs.

🔧 Development

Clone the repo:

# yarn
yarn clone ChatLunaLab/chatluna
# npm
npm run clone ChatLunaLab/chatluna

Update tsconfig.json:

{
  "extends": "./tsconfig.base",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "koishi-plugin-chatluna-*": ["external/chatluna/packages/*/src"]
    }
  }
}

Build the project:

# yarn
yarn workspace @root/chatluna-koishi build
# npm
npm run build -w @root/chatluna-koishi

Start development with yarn dev or npm run dev.

Note: HMR may not be fully compatible. If issues occur, rebuild and restart.

🆘 Contributing

We need help with:

  • Web UI
  • HTTP Server
  • Project Documentation

PRs and discussions are welcome!

👥 Contributors

Alt

Star History Chart

📢 Usage Notice

Developed by ChatLunaLab.

ChatLuna is an LLM-based chatbot framework. We collaborate with the open-source community to advance LLM technology. Users must comply with open-source agreements and avoid using this project for potentially harmful purposes or unevaluated services.

This project doesn't provide AI services directly. Users must obtain API access from AI service providers.

Users are responsible for complying with local laws and using locally available AI services.

The project isn't responsible for algorithm-generated results. All results and operations are the user's responsibility.

Users configure their own data storage. The project doesn't provide direct data storage.

The project isn't liable for user-caused data security issues, public opinion risks, or model misuse.

🙏 Credits

Koishi - A cross-platform, extensible, high-performance Node.js chatbot framework.

AstrBot - A one-stop Agentic Python framework for personal and group chat assistants, multi-platform bot deployment.

Thanks to these open-source projects for inspiration:

koishi-plugin-openai

chathub