@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.
Files changed (3) hide show
  1. package/README.md +106 -0
  2. package/index.ts +17 -0
  3. 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
+ }