@ascegu/teamily 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +106 -0
- package/index.ts +17 -0
- package/package.json +53 -0
package/README.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
# Teamily Channel Plugin for OpenClaw
|
|
2
|
+
|
|
3
|
+
This plugin integrates Teamily Server (based on OpenIM) with OpenClaw, allowing you to use OpenClaw as a bot in your self-hosted team messaging platform.
|
|
4
|
+
|
|
5
|
+
## Teamily Server
|
|
6
|
+
|
|
7
|
+
Teamily is a team instant messaging server based on OpenIM open-source platform. For more information about OpenIM, visit: https://github.com/openimsdk/open-im-server
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
openclaw plugins install @openclaw/teamily
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Configuration
|
|
16
|
+
|
|
17
|
+
### Server Configuration
|
|
18
|
+
|
|
19
|
+
Configure your Teamily server connection:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
openclaw channel configure teamily
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Required server settings:
|
|
26
|
+
- `platformUrl`: Teamily platform URL (default: `http://localhost:10002`)
|
|
27
|
+
- `apiURL`: Teamily REST API URL (default: `http://localhost:10002`)
|
|
28
|
+
- `wsURL`: Teamily WebSocket URL (default: `ws://localhost:10001`)
|
|
29
|
+
|
|
30
|
+
### Bot Account Configuration
|
|
31
|
+
|
|
32
|
+
Configure a bot user account:
|
|
33
|
+
|
|
34
|
+
- `userID`: User ID for the bot account
|
|
35
|
+
- `token`: User token for authentication
|
|
36
|
+
- `nickname`: (optional) Display nickname
|
|
37
|
+
- `faceURL`: (optional) Avatar URL
|
|
38
|
+
|
|
39
|
+
### Example Configuration
|
|
40
|
+
|
|
41
|
+
```yaml
|
|
42
|
+
channels:
|
|
43
|
+
teamily:
|
|
44
|
+
enabled: true
|
|
45
|
+
server:
|
|
46
|
+
platformUrl: http://localhost:10002
|
|
47
|
+
apiURL: http://localhost:10002
|
|
48
|
+
wsURL: ws://localhost:10001
|
|
49
|
+
accounts:
|
|
50
|
+
default:
|
|
51
|
+
userID: "your-bot-user-id"
|
|
52
|
+
token: "your-bot-token"
|
|
53
|
+
nickname: "OpenClaw Bot"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## Usage
|
|
57
|
+
|
|
58
|
+
### Send a Message to a User
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
openclaw message send teamily:user:userID "Hello!"
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Send a Message to a Group
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
openclaw message send teamily:group:groupID "Hello group!"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Send Media
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
openclaw message send teamily:user:userID --media /path/to/image.jpg
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Setting Up Teamily
|
|
77
|
+
|
|
78
|
+
### 1. Start Teamily Server
|
|
79
|
+
|
|
80
|
+
Follow the [OpenIM Quick Start](https://docs.openim.io/guides/gettingStarted/introduction) guide to deploy the server (Teamily is based on OpenIM).
|
|
81
|
+
|
|
82
|
+
### 2. Create a Bot User
|
|
83
|
+
|
|
84
|
+
Use the Teamily management API to create a bot user account and obtain its user ID and token.
|
|
85
|
+
|
|
86
|
+
### 3. Configure OpenClaw
|
|
87
|
+
|
|
88
|
+
Configure the Teamily channel with your server details and bot credentials.
|
|
89
|
+
|
|
90
|
+
## Features
|
|
91
|
+
|
|
92
|
+
- ✅ Direct messaging
|
|
93
|
+
- ✅ Group messaging
|
|
94
|
+
- ✅ Text messages
|
|
95
|
+
- ✅ Media messages (images, videos, audio, files)
|
|
96
|
+
- ✅ WebSocket real-time message monitoring
|
|
97
|
+
- ✅ Automatic reconnection
|
|
98
|
+
- ✅ Connection health checks
|
|
99
|
+
|
|
100
|
+
## Supported API Versions
|
|
101
|
+
|
|
102
|
+
This plugin is designed to work with OpenIM API v2/v3 (which Teamily is based on). Please refer to the official OpenIM documentation for API details: https://docs.openim.io
|
|
103
|
+
|
|
104
|
+
## License
|
|
105
|
+
|
|
106
|
+
This plugin is part of OpenClaw and follows the same license terms.
|
package/index.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { OpenClawPluginApi } from "openclaw/plugin-sdk";
|
|
2
|
+
import { emptyPluginConfigSchema } from "openclaw/plugin-sdk";
|
|
3
|
+
import { teamilyPlugin } from "./src/channel.js";
|
|
4
|
+
import { setTeamilyRuntime } from "./src/runtime.js";
|
|
5
|
+
|
|
6
|
+
const plugin = {
|
|
7
|
+
id: "teamily",
|
|
8
|
+
name: "Teamily",
|
|
9
|
+
description: "Teamily channel plugin",
|
|
10
|
+
configSchema: emptyPluginConfigSchema(),
|
|
11
|
+
register(api: OpenClawPluginApi) {
|
|
12
|
+
setTeamilyRuntime(api.runtime);
|
|
13
|
+
api.registerChannel({ plugin: teamilyPlugin });
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default plugin;
|
package/package.json
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ascegu/teamily",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "OpenClaw Teamily channel plugin - Team instant messaging server integration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "index.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"*.ts",
|
|
9
|
+
"*.js",
|
|
10
|
+
"*.json",
|
|
11
|
+
"README.md"
|
|
12
|
+
],
|
|
13
|
+
"keywords": [
|
|
14
|
+
"openclaw",
|
|
15
|
+
"plugin",
|
|
16
|
+
"channel",
|
|
17
|
+
"teamily",
|
|
18
|
+
"openim",
|
|
19
|
+
"messaging",
|
|
20
|
+
"team",
|
|
21
|
+
"communication"
|
|
22
|
+
],
|
|
23
|
+
"author": "ascegu",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"repository": {
|
|
26
|
+
"type": "git",
|
|
27
|
+
"url": "git+https://github.com/ascegu/openclaw.git",
|
|
28
|
+
"directory": "extensions/teamily"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"zod": "^4.3.6"
|
|
32
|
+
},
|
|
33
|
+
"openclaw": {
|
|
34
|
+
"extensions": [
|
|
35
|
+
"./index.ts"
|
|
36
|
+
],
|
|
37
|
+
"channel": {
|
|
38
|
+
"id": "teamily",
|
|
39
|
+
"label": "Teamily",
|
|
40
|
+
"selectionLabel": "Teamily (self-hosted)",
|
|
41
|
+
"docsPath": "/channels/teamily",
|
|
42
|
+
"docsLabel": "teamily",
|
|
43
|
+
"blurb": "Team instant messaging server",
|
|
44
|
+
"order": 75,
|
|
45
|
+
"quickstartAllowFrom": true
|
|
46
|
+
},
|
|
47
|
+
"install": {
|
|
48
|
+
"npmSpec": "@ascegu/teamily",
|
|
49
|
+
"localPath": "extensions/teamily",
|
|
50
|
+
"defaultChoice": "npm"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|