<!-- markdownlint-disable -->

<div align="center">
<img src="https://kotori.js.org/favicon.svg" width="200px" height="200px" alt="logo"/>

# KotoriBot

[Quick Start](https://kotori.js.org/base/)
[Dev Guide](https://kotori.js.org/guide/)
[API Reference](https://kotori.js.org/api/)

[![Build](https://github.com/kotorijs/kotori/actions/workflows/build.yml/badge.svg)](https://github.com/kotorijs/kotori/actions/workflows/build.yml)
![GitHub last commit (by committer)](https://img.shields.io/github/last-commit/biyuehu/biyuehu)
![GitHub commit activity (branch)](https://img.shields.io/github/commit-activity/t/kotorijs/kotori/master)
[![License](https://img.shields.io/badge/license-BCU-fe0000)](https://github.com/iceagenb/ban-chinaman-using)
![npm](https://img.shields.io/npm/v/kotori-bot)
[![wakatime](https://wakatime.com/badge/user/018dc603-712a-4205-a226-d4c9ccd0d02b/project/018dc605-aa92-43d3-b2a7-ed9829c0212e.svg)](https://wakatime.com/badge/user/018dc603-712a-4205-a226-d4c9ccd0d02b/project/018dc605-aa92-43d3-b2a7-ed9829c0212e)
![OneBot 11](https://img.shields.io/badge/OneBot-11-black?logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAABwCAMAAADxPgR5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAxQTFRF////29vbr6+vAAAAk1hCcwAAAAR0Uk5T////AEAqqfQAAAKcSURBVHja7NrbctswDATQXfD//zlpO7FlmwAWIOnOtNaTM5JwDMa8E+PNFz7g3waJ24fviyDPgfhz8fHP39cBcBL9KoJbQUxjA2iYqHL3FAnvzhL4GtVNUcoSZe6eSHizBcK5LL7dBr2AUZlev1ARRHCljzRALIEog6H3U6bCIyqIZdAT0eBuJYaGiJaHSjmkYIZd+qSGWAQnIaz2OArVnX6vrItQvbhZJtVGB5qX9wKqCMkb9W7aexfCO/rwQRBzsDIsYx4AOz0nhAtWu7bqkEQBO0Pr+Ftjt5fFCUEbm0Sbgdu8WSgJ5NgH2iu46R/o1UcBXJsFusWF/QUaz3RwJMEgngfaGGdSxJkE/Yg4lOBryBiMwvAhZrVMUUvwqU7F05b5WLaUIN4M4hRocQQRnEedgsn7TZB3UCpRrIJwQfqvGwsg18EnI2uSVNC8t+0QmMXogvbPg/xk+Mnw/6kW/rraUlvqgmFreAA09xW5t0AFlHrQZ3CsgvZm0FbHNKyBmheBKIF2cCA8A600aHPmFtRB1XvMsJAiza7LpPog0UJwccKdzw8rdf8MyN2ePYF896LC5hTzdZqxb6VNXInaupARLDNBWgI8spq4T0Qb5H4vWfPmHo8OyB1ito+AysNNz0oglj1U955sjUN9d41LnrX2D/u7eRwxyOaOpfyevCWbTgDEoilsOnu7zsKhjRCsnD/QzhdkYLBLXjiK4f3UWmcx2M7PO21CKVTH84638NTplt6JIQH0ZwCNuiWAfvuLhdrcOYPVO9eW3A67l7hZtgaY9GZo9AFc6cryjoeFBIWeU+npnk/nLE0OxCHL1eQsc1IciehjpJv5mqCsjeopaH6r15/MrxNnVhu7tmcslay2gO2Z1QfcfX0JMACG41/u0RrI9QAAAABJRU5ErkJggg==)

</div>

---

Kotori is a chatbot framework that is **cross-platform, decoupled, and modern** in nature. It runs on the Node.js environment and is developed in TypeScript.

---

## 🚀 Summary

"Kotori" is a Japanese word meaning "ことり(little bird)" and pronounced `/kotolɪ/`. It is named after the Key game "Rewrite" and the main female character in the game: kanbe Kotori (神戸（かんべ） 小鳥（ことり）). By using Kotori, you can quickly build a multi-platform, powerful chatbot application with different modules to extend its functionality, play styles, and personalization. At the same time, Kotori provides a Cli for module development and Kotori second-level development.

### Advantage

- **Cross-platform**
  Thanks to the modular design, you can implement different features and chat platform integrations through writing modules

- **Decoupled**
  Based on the control inversion and aspect-oriented programming (AOP) principles, Kotori reduces code redundancy and complexity

- **Modern**
  Kotori uses modern ECMAScript syntax and powerful ReScript and TypeScript type support

### 🧊 Supports

#### Developing Language

- ReScript
- TypeScript
- JavaScript

#### Platform

- QQ (based on Tencent's official API)
- QQ (based on [OneBot11 Standard](https://onebot.dev/))
- CMD command line
- Slack
- Telegram
- Email
- Discord
- MinecraftBedrock (based on WebSocket)

#### Will support:

- Kook
- WeChat
- Line
- What's App
- DingTalk

#### Data

- LevelDb

## 📖 Documentation

- [Kotori Docs](https://kotori.js.org/)
