Koishi is developed based on TypeScript, supports mainstream chat platforms, is cross-platform, has a rich community ecosystem, and is very user-friendly out of the box.

Experience

Installation

Since Docker is supported, let’s run it directly.

docker run -p 5140:5140 -e TZ=Asia/Shanghai --restart=always --name koishi koishijs/koishi 

Once completed, access it at http://宿主机地址:5140

Login

Install the gocqhttp plugin and run it

gocqhttp plugin

Configure the adapter-onebot plugin.

Enter the selfid, but you might see an error about the login being unsuccessful.

The protocol does not support QR code login

It’s recommended to install Koishi locally and change the protocol in device.json to 2 (QQ Watch mode).

Modify the protocol

Start adapter-onebot and use QR code login.

QQ scan code login

Then upload your local device.json and session.token to the corresponding directory on the server. Restart adapter-onebot and you should see a successful login.

Login successful

Add a user in the sandbox and send help to test if the bot is working correctly.

Functional test is normal

Dependencies

Many future plugins will depend on ffmpeg, so let’s install it in advance.

Install on Host Machine

sudo apt-get install ffmpeg

Install in Container

docker exec -it -u root koishi /bin/sh
apk update
apk add yasm
apk add ffmpeg

Plugins

Plugin Market

Plugin Market

package.json

Here’s my package.json for reference

package.json
{
  "name": "@koishijs/boilerplate",
  "version": "1.9.0",
  "private": true,
  "files": [
    ".env",
    "koishi.yml"
  ],
  "license": "AGPL-3.0",
  "scripts": {
    "start": "koishi start"
  },
  "dependencies": {
    "@ifrank/koishi-plugin-xibao": "1.2.1",
    "@koishijs/plugin-adapter-discord": "3.8.6",
    "@koishijs/plugin-adapter-kook": "3.10.2",
    "@koishijs/plugin-adapter-lark": "2.1.3",
    "@koishijs/plugin-adapter-line": "1.1.1",
    "@koishijs/plugin-adapter-matrix": "3.4.0",
    "@koishijs/plugin-adapter-onebot": "5.7.4",
    "@koishijs/plugin-adapter-telegram": "3.8.1",
    "@koishijs/plugin-adapter-wecom": "1.0.0",
    "@koishijs/plugin-admin": "1.4.0",
    "@koishijs/plugin-analytics": "1.0.4",
    "@koishijs/plugin-auth": "4.1.1",
    "@koishijs/plugin-bind": "1.4.2",
    "@koishijs/plugin-commands": "3.2.2",
    "@koishijs/plugin-config": "2.3.1",
    "@koishijs/plugin-console": "5.13.2",
    "@koishijs/plugin-database-sqlite": "3.5.6",
    "@koishijs/plugin-dataview": "2.3.1",
    "@koishijs/plugin-explorer": "1.4.5",
    "@koishijs/plugin-help": "2.3.0",
    "@koishijs/plugin-hmr": "1.2.1",
    "@koishijs/plugin-insight": "3.4.1",
    "@koishijs/plugin-inspect": "1.1.2",
    "@koishijs/plugin-locales": "2.4.0",
    "@koishijs/plugin-logger": "2.3.2",
    "@koishijs/plugin-market": "2.2.10",
    "@koishijs/plugin-rate-limit": "1.3.3",
    "@koishijs/plugin-sandbox": "3.1.10",
    "@koishijs/plugin-status": "7.1.3",
    "@misaka-bot/koishi-plugin-github-trending": "0.0.3",
    "@rinkuto/koishi-plugin-pixiv": "1.1.7",
    "koishi": "4.14.2",
    "koishi-plugin-abbreviation": "1.0.0",
    "koishi-plugin-assets-local": "3.1.0",
    "koishi-plugin-bangumi": "1.0.0",
    "koishi-plugin-color": "1.0.2",
    "koishi-plugin-couplet": "1.1.0",
    "koishi-plugin-crazy-thursday": "1.0.4",
    "koishi-plugin-cron": "2.0.5",
    "koishi-plugin-custom-welcome-message": "1.1.5",
    "koishi-plugin-dailygames": "1.4.0",
    "koishi-plugin-davinci-003": "6.1.1",
    "koishi-plugin-desktop": "0.0.4",
    "koishi-plugin-epic-get-free-game": "1.0.12",
    "koishi-plugin-furbot": "1.0.1",
    "koishi-plugin-gameinfo": "1.1.1",
    "koishi-plugin-gameinfo-plus": "1.0.1",
    "koishi-plugin-gamenews": "1.3.2",
    "koishi-plugin-gamewallpaper-byripple": "1.0.1",
    "koishi-plugin-gk-api": "0.0.1",
    "koishi-plugin-gocqhttp": "3.8.0",
    "koishi-plugin-gocqhttp-dev": "1.1.1-dev-0.1.0",
    "koishi-plugin-hitokoto": "2.1.5",
    "koishi-plugin-i-ching-joker": "1.0.1",
    "koishi-plugin-imagify": "0.0.2",
    "koishi-plugin-javbus": "1.0.9",
    "koishi-plugin-jrrp": "1.1.1",
    "koishi-plugin-markdown": "1.1.1",
    "koishi-plugin-moebgm": "2.0.1",
    "koishi-plugin-music": "2.2.2",
    "koishi-plugin-news": "0.1.0",
    "koishi-plugin-og": "1.1.1",
    "koishi-plugin-puppeteer": "3.5.0",
    "koishi-plugin-qrcode": "2.1.2",
    "koishi-plugin-recall": "1.3.0",
    "koishi-plugin-releasegame": "1.0.1",
    "koishi-plugin-remake": "1.0.3",
    "koishi-plugin-repeater": "1.0.1",
    "koishi-plugin-screenshot": "1.0.4",
    "koishi-plugin-seniverse-weather": "1.0.1",
    "koishi-plugin-shindan-maker": "1.4.0",
    "koishi-plugin-status-pro": "1.1.7",
    "koishi-plugin-steam-trading": "1.2.6",
    "koishi-plugin-tarot-divination": "1.0.0",
    "koishi-plugin-tc-sst": "0.0.4",
    "koishi-plugin-tencent-tts": "0.0.1",
    "koishi-plugin-theme-vanilla": "1.0.6",
    "koishi-plugin-today-in-history": "1.0.6",
    "koishi-plugin-translator-baidu": "1.1.2",
    "koishi-plugin-verifier": "1.1.1",
    "koishi-plugin-whateat-pic": "1.1.4"
  }
}

davinci-003

Integrates with OpenAI (ChatGPT-3.5 / ChatGPT-4) and comes with over 400 pre-set personalities.

Settings

davinci-003 Settings Page

davinci-003 Feature Showcase

epic-get-free-game

Fetches information about free games from Epic Games.

epic-get-free-game Settings Page

epic-get-free-game Feature Showcase

gameinfo-plus

Queries historical lowest prices of games in China.

gameinfo-plus Settings Page

gameinfo-plus Feature Showcase

news

Daily news broadcast.

news Settings Page

news Feature Showcase

whateat-pic

A pictorial recipe generator.

whateat-pic Settings Page

whateat-pic Feature Showcase 1

whateat-pic Feature Showcase 2

tarot-divination

Tarot card divination.

tarot-divination Feature Showcase

crazy-thursday

Randomly retrieves humorous Crazy Thursday slogans.

crazy-thursday Feature Showcase

There are many more practical and fun plugins, but I won’t list them all here.