fengming 0.2.2 → 0.2.3
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 +78 -450
- package/package.json +113 -109
package/README.md
CHANGED
|
@@ -1,499 +1,127 @@
|
|
|
1
|
-
# 🦞 FengMing —
|
|
1
|
+
# 🦞 FengMing — 个人 AI 助手
|
|
2
2
|
|
|
3
3
|
<p align="center">
|
|
4
|
-
|
|
5
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/fengming-logo-text-dark.svg">
|
|
6
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/fengming-logo-text.svg" alt="FengMing" width="500">
|
|
7
|
-
</picture>
|
|
4
|
+
<strong>你的本地 AI 助手,跑在你自己的设备上。</strong>
|
|
8
5
|
</p>
|
|
9
6
|
|
|
10
7
|
<p align="center">
|
|
11
|
-
<
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
<p align="center">
|
|
15
|
-
<a href="https://github.com/fengming/fengming/actions/workflows/ci.yml?branch=main"><img src="https://img.shields.io/github/actions/workflow/status/fengming/fengming/ci.yml?branch=main&style=for-the-badge" alt="CI status"></a>
|
|
16
|
-
<a href="https://github.com/fengming/fengming/releases"><img src="https://img.shields.io/github/v/release/fengming/fengming?include_prereleases&style=for-the-badge" alt="GitHub release"></a>
|
|
17
|
-
<a href="https://discord.gg/clawd"><img src="https://img.shields.io/discord/1456350064065904867?label=Discord&logo=discord&logoColor=white&color=5865F2&style=for-the-badge" alt="Discord"></a>
|
|
8
|
+
<a href="https://github.com/24K06/FengMing"><img src="https://img.shields.io/badge/GitHub-24K06%2FFengMing-181717?logo=github&style=for-the-badge" alt="GitHub"></a>
|
|
9
|
+
<a href="https://gitee.com/lv06/fengming"><img src="https://img.shields.io/badge/Gitee-lv06%2Ffengming-C71D23?logo=gitee&style=for-the-badge" alt="Gitee"></a>
|
|
10
|
+
<a href="https://www.npmjs.com/package/fengming"><img src="https://img.shields.io/npm/v/fengming?color=CB3837&logo=npm&style=for-the-badge" alt="npm"></a>
|
|
18
11
|
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge" alt="MIT License"></a>
|
|
19
12
|
</p>
|
|
20
13
|
|
|
21
|
-
**FengMing**
|
|
22
|
-
It answers you on the channels you already use. It can speak and listen on macOS/iOS/Android, and can render a live Canvas you control. The Gateway is just the control plane — the product is the assistant.
|
|
23
|
-
|
|
24
|
-
If you want a personal, single-user assistant that feels local, fast, and always-on, this is it.
|
|
25
|
-
|
|
26
|
-
Supported channels include: WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, IRC, Microsoft Teams, Matrix, Feishu, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, Zalo Personal, WeChat, QQ, WebChat.
|
|
27
|
-
|
|
28
|
-
[Website](https://fengming.ai) · [Docs](https://docs.fengming.ai) · [Vision](VISION.md) · [Third-party notices](THIRD_PARTY_NOTICES.md) · [DeepWiki](https://deepwiki.com/fengming/fengming) · [Getting Started](https://docs.fengming.ai/start/getting-started) · [Updating](https://docs.fengming.ai/install/updating) · [Showcase](https://docs.fengming.ai/start/showcase) · [FAQ](https://docs.fengming.ai/help/faq) · [Onboarding](https://docs.fengming.ai/start/wizard) · [Nix](https://github.com/fengming/nix-fengming) · [Docker](https://docs.fengming.ai/install/docker) · [Discord](https://discord.gg/clawd)
|
|
29
|
-
|
|
30
|
-
New install? Start here: [Getting started](https://docs.fengming.ai/start/getting-started)
|
|
31
|
-
|
|
32
|
-
Preferred setup: run `fengming onboard` in your terminal.
|
|
33
|
-
FengMing Onboard guides you step by step through setting up the gateway, workspace, channels, and skills. It is the recommended CLI setup path and works on **macOS, Linux, and Windows (via WSL2; strongly recommended)**.
|
|
34
|
-
Works with npm, pnpm, or bun.
|
|
35
|
-
|
|
36
|
-
## Sponsors
|
|
37
|
-
|
|
38
|
-
<table>
|
|
39
|
-
<tr>
|
|
40
|
-
<td align="center" width="16.66%">
|
|
41
|
-
<a href="https://openai.com/">
|
|
42
|
-
<picture>
|
|
43
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/openai-light.svg">
|
|
44
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/openai.svg" alt="OpenAI" height="28">
|
|
45
|
-
</picture>
|
|
46
|
-
</a>
|
|
47
|
-
</td>
|
|
48
|
-
<td align="center" width="16.66%">
|
|
49
|
-
<a href="https://github.com/">
|
|
50
|
-
<picture>
|
|
51
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/github-light.svg">
|
|
52
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/github.svg" alt="GitHub" height="28">
|
|
53
|
-
</picture>
|
|
54
|
-
</a>
|
|
55
|
-
</td>
|
|
56
|
-
<td align="center" width="16.66%">
|
|
57
|
-
<a href="https://www.nvidia.com/">
|
|
58
|
-
<picture>
|
|
59
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/nvidia.svg">
|
|
60
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/nvidia-dark.svg" alt="NVIDIA" height="28">
|
|
61
|
-
</picture>
|
|
62
|
-
</a>
|
|
63
|
-
</td>
|
|
64
|
-
<td align="center" width="16.66%">
|
|
65
|
-
<a href="https://vercel.com/">
|
|
66
|
-
<picture>
|
|
67
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/vercel-light.svg">
|
|
68
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/vercel.svg" alt="Vercel" height="24">
|
|
69
|
-
</picture>
|
|
70
|
-
</a>
|
|
71
|
-
</td>
|
|
72
|
-
<td align="center" width="16.66%">
|
|
73
|
-
<a href="https://blacksmith.sh/">
|
|
74
|
-
<picture>
|
|
75
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/blacksmith-light.svg">
|
|
76
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/blacksmith.svg" alt="Blacksmith" height="28">
|
|
77
|
-
</picture>
|
|
78
|
-
</a>
|
|
79
|
-
</td>
|
|
80
|
-
<td align="center" width="16.66%">
|
|
81
|
-
<a href="https://www.convex.dev/">
|
|
82
|
-
<picture>
|
|
83
|
-
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/convex-light.svg">
|
|
84
|
-
<img src="https://raw.githubusercontent.com/fengming/fengming/main/docs/assets/sponsors/convex.svg" alt="Convex" height="24">
|
|
85
|
-
</picture>
|
|
86
|
-
</a>
|
|
87
|
-
</td>
|
|
88
|
-
</tr>
|
|
89
|
-
</table>
|
|
90
|
-
|
|
91
|
-
**Subscriptions (OAuth):**
|
|
92
|
-
|
|
93
|
-
- **[OpenAI](https://openai.com/)** (ChatGPT/Codex)
|
|
94
|
-
|
|
95
|
-
Model note: while many providers and models are supported, prefer a current flagship model from the provider you trust and already use. See [Onboarding](https://docs.fengming.ai/start/wizard).
|
|
96
|
-
|
|
97
|
-
## Install (recommended)
|
|
98
|
-
|
|
99
|
-
Runtime: **Node 24 (recommended) or Node 22.19+**.
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npm install -g fengming@latest
|
|
103
|
-
# or: pnpm add -g fengming@latest
|
|
104
|
-
|
|
105
|
-
fengming onboard --install-daemon
|
|
106
|
-
```
|
|
14
|
+
**FengMing** 是基于 [OpenClaw](https://github.com/openclaw/openclaw) Fork 的国内优化版本,面向中文用户,专注于你真正需要的功能。
|
|
107
15
|
|
|
108
|
-
|
|
16
|
+
## 🎯 支持
|
|
109
17
|
|
|
110
|
-
|
|
18
|
+
| 类别 | 支持项 |
|
|
19
|
+
|------|--------|
|
|
20
|
+
| **消息渠道** | QQ、飞书、微信 |
|
|
21
|
+
| **模型提供商** | 豆包 (BytePlus)、通义千问 (Qwen)、混元 (Tencent) |
|
|
22
|
+
| **运行环境** | Linux (推荐 WSL2)、Windows |
|
|
111
23
|
|
|
112
|
-
|
|
24
|
+
## 📦 安装
|
|
113
25
|
|
|
114
|
-
|
|
26
|
+
**环境要求:Node.js >= 22.16.0**
|
|
115
27
|
|
|
116
|
-
|
|
28
|
+
### 方式一:npm 全局安装
|
|
117
29
|
|
|
118
30
|
```bash
|
|
119
|
-
|
|
120
|
-
fengming gateway
|
|
31
|
+
npm install -g fengming
|
|
32
|
+
fengming gateway install
|
|
33
|
+
fengming gateway start
|
|
121
34
|
```
|
|
122
35
|
|
|
123
|
-
|
|
36
|
+
### 方式二:一键安装脚本
|
|
124
37
|
|
|
125
38
|
```bash
|
|
126
|
-
fengming
|
|
127
|
-
fengming gateway --port 18789 --verbose
|
|
39
|
+
curl -fsSL https://gitee.com/lv06/fengming/raw/master/scripts/install.sh | bash
|
|
128
40
|
```
|
|
129
41
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
```bash
|
|
133
|
-
# Send a message
|
|
134
|
-
fengming message send --target +1234567890 --message "Hello from FengMing"
|
|
135
|
-
|
|
136
|
-
# Talk to the assistant (optionally deliver back to any connected channel: WhatsApp/Telegram/Slack/Discord/Google Chat/Signal/iMessage/IRC/Microsoft Teams/Matrix/Feishu/LINE/Mattermost/Nextcloud Talk/Nostr/Synology Chat/Tlon/Twitch/Zalo/Zalo Personal/WeChat/QQ/WebChat)
|
|
137
|
-
fengming agent --message "Ship checklist" --thinking high
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
Upgrading? [Updating guide](https://docs.fengming.ai/install/updating) (and run `fengming doctor`).
|
|
141
|
-
|
|
142
|
-
Models config + CLI: [Models](https://docs.fengming.ai/concepts/models). Auth profile rotation + fallbacks: [Model failover](https://docs.fengming.ai/concepts/model-failover).
|
|
143
|
-
|
|
144
|
-
## Security defaults (DM access)
|
|
145
|
-
|
|
146
|
-
FengMing connects to real messaging surfaces. Treat inbound DMs as **untrusted input**.
|
|
147
|
-
|
|
148
|
-
Full security guide: [Security](https://docs.fengming.ai/gateway/security).
|
|
149
|
-
Before remote exposure, use the [Gateway exposure runbook](https://docs.fengming.ai/gateway/security/exposure-runbook).
|
|
150
|
-
|
|
151
|
-
Default behavior on Telegram/WhatsApp/Signal/iMessage/Microsoft Teams/Discord/Google Chat/Slack:
|
|
152
|
-
|
|
153
|
-
- **DM pairing** (`dmPolicy="pairing"` / `channels.discord.dmPolicy="pairing"` / `channels.slack.dmPolicy="pairing"`; legacy: `channels.discord.dm.policy`, `channels.slack.dm.policy`): unknown senders receive a short pairing code and the bot does not process their message.
|
|
154
|
-
- Approve with: `fengming pairing approve <channel> <code>` (then the sender is added to a local allowlist store).
|
|
155
|
-
- Public inbound DMs require an explicit opt-in: set `dmPolicy="open"` and include `"*"` in the channel allowlist (`allowFrom` / `channels.discord.allowFrom` / `channels.slack.allowFrom`; legacy: `channels.discord.dm.allowFrom`, `channels.slack.dm.allowFrom`).
|
|
156
|
-
|
|
157
|
-
Run `fengming doctor` to surface risky/misconfigured DM policies.
|
|
158
|
-
|
|
159
|
-
## Highlights
|
|
160
|
-
|
|
161
|
-
- **[Local-first Gateway](https://docs.fengming.ai/gateway)** — single control plane for sessions, channels, tools, and events.
|
|
162
|
-
- **[Multi-channel inbox](https://docs.fengming.ai/channels)** — WhatsApp, Telegram, Slack, Discord, Google Chat, Signal, iMessage, IRC, Microsoft Teams, Matrix, Feishu, LINE, Mattermost, Nextcloud Talk, Nostr, Synology Chat, Tlon, Twitch, Zalo, Zalo Personal, WeChat, QQ, WebChat, macOS, iOS/Android.
|
|
163
|
-
- **[Multi-agent routing](https://docs.fengming.ai/gateway/configuration)** — route inbound channels/accounts/peers to isolated agents (workspaces + per-agent sessions).
|
|
164
|
-
- **[Voice Wake](https://docs.fengming.ai/nodes/voicewake) + [Talk Mode](https://docs.fengming.ai/nodes/talk)** — wake words on macOS/iOS and continuous voice on Android (ElevenLabs + system TTS fallback).
|
|
165
|
-
- **[Live Canvas](https://docs.fengming.ai/platforms/mac/canvas)** — agent-driven visual workspace with [A2UI](https://docs.fengming.ai/platforms/mac/canvas#canvas-a2ui).
|
|
166
|
-
- **[First-class tools](https://docs.fengming.ai/tools)** — browser, canvas, nodes, cron, sessions, and Discord/Slack actions.
|
|
167
|
-
- **[Companion apps](https://docs.fengming.ai/platforms/macos)** — macOS menu bar app + iOS/Android [nodes](https://docs.fengming.ai/nodes).
|
|
168
|
-
- **[Onboarding](https://docs.fengming.ai/start/wizard) + [skills](https://docs.fengming.ai/tools/skills)** — onboarding-driven setup with bundled/managed/workspace skills.
|
|
169
|
-
|
|
170
|
-
## Security model (important)
|
|
171
|
-
|
|
172
|
-
- Default: tools run on the host for the `main` session, so the agent has full access when it is just you.
|
|
173
|
-
- Group/channel safety: set `agents.defaults.sandbox.mode: "non-main"` to run non-`main` sessions inside sandboxes. Docker is the default sandbox backend; SSH and OpenShell backends are also available.
|
|
174
|
-
- Typical sandbox default: allow `bash`, `process`, `read`, `write`, `edit`, `sessions_list`, `sessions_history`, `sessions_send`, `sessions_spawn`; deny `browser`, `canvas`, `nodes`, `cron`, `discord`, `gateway`.
|
|
175
|
-
- Before exposing anything remotely, read [Security](https://docs.fengming.ai/gateway/security), [Gateway exposure runbook](https://docs.fengming.ai/gateway/security/exposure-runbook), [Sandboxing](https://docs.fengming.ai/gateway/sandboxing), and [Configuration](https://docs.fengming.ai/gateway/configuration).
|
|
176
|
-
|
|
177
|
-
## Operator quick refs
|
|
178
|
-
|
|
179
|
-
- Chat commands: `/status`, `/new`, `/reset`, `/compact`, `/think <level>`, `/verbose on|off`, `/trace on|off`, `/usage off|tokens|full`, `/restart`, `/activation mention|always`
|
|
180
|
-
- Session tools: `sessions_list`, `sessions_history`, `sessions_send`
|
|
181
|
-
- Skills registry: [ClawHub](https://clawhub.ai)
|
|
182
|
-
- Architecture overview: [Architecture](https://docs.fengming.ai/concepts/architecture)
|
|
183
|
-
|
|
184
|
-
## Docs by goal
|
|
185
|
-
|
|
186
|
-
- New here: [Getting started](https://docs.fengming.ai/start/getting-started), [Onboarding](https://docs.fengming.ai/start/wizard), [Updating](https://docs.fengming.ai/install/updating)
|
|
187
|
-
- Channel setup: [Channels index](https://docs.fengming.ai/channels), [WhatsApp](https://docs.fengming.ai/channels/whatsapp), [Telegram](https://docs.fengming.ai/channels/telegram), [Discord](https://docs.fengming.ai/channels/discord), [Slack](https://docs.fengming.ai/channels/slack)
|
|
188
|
-
- Apps + nodes: [macOS](https://docs.fengming.ai/platforms/macos), [iOS](https://docs.fengming.ai/platforms/ios), [Android](https://docs.fengming.ai/platforms/android), [Nodes](https://docs.fengming.ai/nodes)
|
|
189
|
-
- Config + security: [Configuration](https://docs.fengming.ai/gateway/configuration), [Security](https://docs.fengming.ai/gateway/security), [Exposure runbook](https://docs.fengming.ai/gateway/security/exposure-runbook), [Sandboxing](https://docs.fengming.ai/gateway/sandboxing)
|
|
190
|
-
- Remote + web: [Gateway](https://docs.fengming.ai/gateway), [Remote access](https://docs.fengming.ai/gateway/remote), [Tailscale](https://docs.fengming.ai/gateway/tailscale), [Web surfaces](https://docs.fengming.ai/web)
|
|
191
|
-
- Tools + automation: [Tools](https://docs.fengming.ai/tools), [Skills](https://docs.fengming.ai/tools/skills), [Cron jobs](https://docs.fengming.ai/automation/cron-jobs), [Webhooks](https://docs.fengming.ai/automation/webhook), [Gmail Pub/Sub](https://docs.fengming.ai/automation/gmail-pubsub)
|
|
192
|
-
- Internals: [Architecture](https://docs.fengming.ai/concepts/architecture), [Agent](https://docs.fengming.ai/concepts/agent), [Session model](https://docs.fengming.ai/concepts/session), [Gateway protocol](https://docs.fengming.ai/reference/rpc)
|
|
193
|
-
- Troubleshooting: [Channel troubleshooting](https://docs.fengming.ai/channels/troubleshooting), [Logging](https://docs.fengming.ai/logging), [Docs home](https://docs.fengming.ai)
|
|
194
|
-
|
|
195
|
-
## Apps (optional)
|
|
42
|
+
安装完成后网关默认运行在 `http://127.0.0.1:19712`。
|
|
196
43
|
|
|
197
|
-
|
|
44
|
+
## ⚙️ 配置
|
|
198
45
|
|
|
199
|
-
|
|
46
|
+
配置文件:`~/.fengming/fengming.json`
|
|
200
47
|
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
48
|
+
```json5
|
|
49
|
+
{
|
|
50
|
+
agent: {
|
|
51
|
+
model: "qwen/deepseek-v4",
|
|
52
|
+
},
|
|
53
|
+
gateway: {
|
|
54
|
+
port: 19712,
|
|
55
|
+
auth: { mode: "none" }
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
```
|
|
207
59
|
|
|
208
|
-
|
|
60
|
+
默认 `auth.mode: "none"`(仅本机访问),适合个人使用。
|
|
209
61
|
|
|
210
|
-
|
|
62
|
+
## 🚀 快速开始
|
|
211
63
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
64
|
+
```bash
|
|
65
|
+
# 启动网关
|
|
66
|
+
fengming gateway start
|
|
215
67
|
|
|
216
|
-
|
|
68
|
+
# 查看状态
|
|
69
|
+
fengming gateway status
|
|
217
70
|
|
|
218
|
-
|
|
71
|
+
# 发送消息
|
|
72
|
+
fengming message send --target <目标> --message "你好"
|
|
219
73
|
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
74
|
+
# 和助手对话
|
|
75
|
+
fengming agent --message "帮我查一下天气"
|
|
76
|
+
```
|
|
223
77
|
|
|
224
|
-
##
|
|
78
|
+
## 📁 项目结构
|
|
225
79
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
80
|
+
```
|
|
81
|
+
~/.fengming/
|
|
82
|
+
├── fengming.json # 主配置
|
|
83
|
+
├── workspace/ # Agent 工作区
|
|
84
|
+
│ ├── AGENTS.md # Agent 行为规则
|
|
85
|
+
│ ├── SOUL.md # 人设定义
|
|
86
|
+
│ └── MEMORY.md # 长期记忆
|
|
87
|
+
└── skills/ # 技能包
|
|
88
|
+
```
|
|
230
89
|
|
|
231
|
-
|
|
90
|
+
## 🔧 从源码构建
|
|
232
91
|
|
|
233
92
|
```bash
|
|
234
|
-
git clone https://github.com/
|
|
235
|
-
cd
|
|
93
|
+
git clone https://github.com/24K06/FengMing.git
|
|
94
|
+
cd FengMing
|
|
236
95
|
|
|
237
96
|
pnpm install
|
|
238
|
-
|
|
239
|
-
# First run only (or after resetting local FengMing config/workspace)
|
|
240
|
-
pnpm fengming setup
|
|
241
|
-
|
|
242
|
-
# Optional: prebuild Control UI before first startup
|
|
243
|
-
pnpm ui:build
|
|
244
|
-
|
|
245
|
-
# Dev loop (auto-reload on source/config changes)
|
|
246
|
-
pnpm gateway:watch
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
If you need a built `dist/` from the checkout (for Node, packaging, or release validation), run:
|
|
250
|
-
|
|
251
|
-
```bash
|
|
252
97
|
pnpm build
|
|
253
98
|
pnpm ui:build
|
|
254
99
|
```
|
|
255
100
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
Note: `pnpm fengming ...` runs TypeScript directly (via `tsx`). `pnpm build` produces `dist/` for running via Node / the packaged `fengming` binary, while `pnpm gateway:watch` rebuilds the runtime on demand during the dev loop.
|
|
101
|
+
> ⚠️ Windows 上构建可能因内存不足失败,建议在 WSL2 ext4 文件系统下构建。
|
|
259
102
|
|
|
260
|
-
##
|
|
103
|
+
## 📄 命令参考
|
|
261
104
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
105
|
+
| 命令 | 说明 |
|
|
106
|
+
|------|------|
|
|
107
|
+
| `fengming gateway start` | 启动网关 |
|
|
108
|
+
| `fengming gateway stop` | 停止网关 |
|
|
109
|
+
| `fengming gateway status` | 网关状态 |
|
|
110
|
+
| `fengming gateway install` | 注册为系统服务 |
|
|
111
|
+
| `fengming agent --message <msg>` | 发送消息给助手 |
|
|
112
|
+
| `fengming message send --target <t> --message <m>` | 发送消息到渠道 |
|
|
113
|
+
| `fengming onboard` | 初始化配置向导 |
|
|
265
114
|
|
|
266
|
-
|
|
267
|
-
Details: [Development channels](https://docs.fengming.ai/install/development-channels).
|
|
115
|
+
## 🌐 仓库
|
|
268
116
|
|
|
269
|
-
|
|
117
|
+
- **GitHub(主仓库)**:https://github.com/24K06/FengMing
|
|
118
|
+
- **Gitee(国内镜像)**:https://gitee.com/lv06/fengming
|
|
119
|
+
- **npm**:https://www.npmjs.com/package/fengming
|
|
270
120
|
|
|
271
|
-
|
|
272
|
-
- Injected prompt files: `AGENTS.md`, `SOUL.md`, `TOOLS.md`.
|
|
273
|
-
- Skills: `~/.fengming/workspace/skills/<skill>/SKILL.md`.
|
|
121
|
+
## 🙏 致谢
|
|
274
122
|
|
|
275
|
-
|
|
123
|
+
FengMing 基于 [OpenClaw](https://github.com/openclaw/openclaw) 构建,感谢原作者的出色工作。
|
|
276
124
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
```json5
|
|
280
|
-
{
|
|
281
|
-
agent: {
|
|
282
|
-
model: "<provider>/<model-id>",
|
|
283
|
-
},
|
|
284
|
-
}
|
|
285
|
-
```
|
|
125
|
+
## 📜 许可证
|
|
286
126
|
|
|
287
|
-
[
|
|
288
|
-
|
|
289
|
-
## Star History
|
|
290
|
-
|
|
291
|
-
[](https://www.star-history.com/#fengming/fengming&type=date&legend=top-left)
|
|
292
|
-
|
|
293
|
-
## Molty
|
|
294
|
-
|
|
295
|
-
FengMing was built for **Molty**, a space lobster AI assistant. 🦞
|
|
296
|
-
by Peter Steinberger and the community.
|
|
297
|
-
|
|
298
|
-
- [fengming.ai](https://fengming.ai)
|
|
299
|
-
- [soul.md](https://soul.md)
|
|
300
|
-
- [steipete.me](https://steipete.me)
|
|
301
|
-
- [@fengming](https://x.com/fengming)
|
|
302
|
-
|
|
303
|
-
## Community
|
|
304
|
-
|
|
305
|
-
See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines, maintainers, and how to submit PRs.
|
|
306
|
-
AI/vibe-coded PRs welcome! 🤖
|
|
307
|
-
|
|
308
|
-
Special thanks to [Mario Zechner](https://mariozechner.at/) for his support and for
|
|
309
|
-
[pi-mono](https://github.com/earendil-works/pi-mono).
|
|
310
|
-
Special thanks to Adam Doppelt for the lobster.bot domain.
|
|
311
|
-
|
|
312
|
-
Thanks to all clawtributors:
|
|
313
|
-
|
|
314
|
-
<!-- clawtributors:start -->
|
|
315
|
-
|
|
316
|
-
[](https://github.com/steipete) [](https://github.com/vincentkoc) [](https://github.com/Takhoffman) [](https://github.com/obviyus) [](https://github.com/gumadeiras) [](https://github.com/mbelinky) [](https://github.com/vignesh07) [](https://github.com/joshavant) [](https://github.com/scoootscooob) [](https://github.com/jacobtomlinson)
|
|
317
|
-
[](https://github.com/shakkernerd) [](https://github.com/sebslight) [](https://github.com/tyler6204) [](https://github.com/ngutman) [](https://github.com/thewilloftheshadow) [](https://github.com/Sid-Qin) [](https://github.com/mcaxtr) [](https://github.com/eleqtrizit) [](https://github.com/BunsDev) [](https://github.com/cpojer)
|
|
318
|
-
[](https://github.com/Glucksberg) [](https://github.com/osolmaz) [](https://github.com/bmendonca3) [](https://github.com/jalehman) [](https://github.com/huntharo) [](https://github.com/neeravmakwana) [](https://github.com/openperf) [](https://github.com/joshp123) [](https://github.com/pgondhi987) [](https://github.com/altaywtf)
|
|
319
|
-
[](https://github.com/quotentiroler) [](https://github.com/liuxiaopai-ai) [](https://github.com/rodrigouroz) [](https://github.com/frankekn) [](https://github.com/drobison00) [](https://github.com/zerone0x) [](https://github.com/onutc) [](https://github.com/ademczuk) [](https://github.com/ImLukeF) [](https://github.com/hydro13)
|
|
320
|
-
[](https://github.com/hxy91819) [](https://github.com/coygeek) [](https://github.com/dutifulbob) [](https://github.com/sliverp) [](https://github.com/0xRaini) [](https://github.com/robbyczgw-cla) [](https://github.com/joelnishanth) [](https://github.com/echoVic) [](https://github.com/sallyom) [](https://github.com/yinghaosang)
|
|
321
|
-
[](https://github.com/BradGroux) [](https://github.com/christianklotz) [](https://github.com/odysseus0) [](https://github.com/hclsys) [](https://github.com/byungsker) [](https://github.com/pashpashpash) [](https://github.com/stakeswky) [![github-actions[bot]](https://avatars.githubusercontent.com/in/15368?v=4&s=48)](https://github.com/apps/github-actions) [](https://github.com/xinhuagu) [](https://github.com/MonkeyLeeT)
|
|
322
|
-
[](https://github.com/100yenadmin) [](https://github.com/mcinteerj) [](https://github.com/samzong) [](https://github.com/chilu18) [](https://github.com/darkamenosa) [](https://github.com/widingmarcus-cyber) [](https://github.com/cgdusek) [](https://github.com/Lukavyi) [](https://github.com/davidrudduck) [](https://github.com/VACInc)
|
|
323
|
-
[](https://github.com/MoerAI) [](https://github.com/velvet-shark) [](https://github.com/HenryLoenwind) [](https://github.com/omarshahine) [](https://github.com/bohdanpodvirnyi) [](https://github.com/VeriteIgiraneza) [](https://github.com/akramcodez) [](https://github.com/Kaneki-x) [](https://github.com/aether-ai-agent) [](https://github.com/joaohlisboa)
|
|
324
|
-
[](https://github.com/MaudeBot) [](https://github.com/davidguttman) [](https://github.com/justinhuangcode) [](https://github.com/lml2468) [](https://github.com/wirjo) [](https://github.com/iHildy) [](https://github.com/mudrii) [](https://github.com/advaitpaliwal) [](https://github.com/czekaj) [](https://github.com/dlauer)
|
|
325
|
-
[](https://github.com/Solvely-Colin) [](https://github.com/feiskyer) [](https://github.com/brandonwise) [](https://github.com/conroywhitney) [](https://github.com/mneves75) [](https://github.com/jaydenfyi) [](https://github.com/davemorin) [](https://github.com/joeykrug) [](https://github.com/kevinWangSheng) [](https://github.com/pejmanjohn)
|
|
326
|
-
[](https://github.com/Lanfei) [](https://github.com/liuy) [](https://github.com/lc0rp) [](https://github.com/teconomix) [](https://github.com/omair445) [](https://github.com/dorukardahan) [](https://github.com/mmaps) [](https://github.com/tobiasbischoff) [](https://github.com/adhitShet) [](https://github.com/pandego)
|
|
327
|
-
[](https://github.com/bradleypriest) [](https://github.com/bjesuiter) [](https://github.com/grp06) [](https://github.com/shadril238) [](https://github.com/kesku) [](https://github.com/YuriNachos) [](https://github.com/vrknetha) [](https://github.com/smartprogrammer93) [](https://github.com/Nachx639) [](https://github.com/jnMetaCode)
|
|
328
|
-
[](https://github.com/Phineas1500) [](https://github.com/dingn42) [](https://github.com/geekhuashan) [](https://github.com/Nanako0129) [](https://github.com/AytuncYildizli) [](https://github.com/BruceMacD) [](https://github.com/jjjojoj) [](https://github.com/mvanhorn) [](https://github.com/bugkill3r) [](https://github.com/rahthakor)
|
|
329
|
-
[](https://github.com/GodsBoy) [](https://github.com/SARAMALI15792) [](https://github.com/radek-paclt) [](https://github.com/Elarwei001) [](https://github.com/ingyukoh) [](https://github.com/SnowSky1) [](https://github.com/lewiswigmore) [](https://github.com/solavrc) [](https://github.com/aldoeliacim) [](https://github.com/jrusz)
|
|
330
|
-
[](https://github.com/tonydehnke) [](https://github.com/roshanasingh4) [](https://github.com/zssggle-rgb) [](https://github.com/adam91holt) [](https://github.com/graysurf) [](https://github.com/xadenryan) [](https://github.com/sfo2001) [](https://github.com/orlyjamie) [](https://github.com/hsrvc) [](https://github.com/tomsun28)
|
|
331
|
-
[](https://github.com/BillChirico) [](https://github.com/carrotRakko) [](https://github.com/ranausmanai) [](https://github.com/arkyu2077) [](https://github.com/hoyyeva) [](https://github.com/luoyanglang) [](https://github.com/sibbl) [](https://github.com/gregmousseau) [](https://github.com/sahilsatralkar) [](https://github.com/akoscz)
|
|
332
|
-
[](https://github.com/rrenamed) [](https://github.com/YuzuruS) [](https://github.com/Marvae) [](https://github.com/mitchmcalister) [](https://github.com/juanpablodlc) [](https://github.com/shtse8) [](https://github.com/thebenignhacker) [](https://github.com/nimbleenigma) [](https://github.com/Linux2010) [](https://github.com/shichangs)
|
|
333
|
-
[](https://github.com/efe-arv) [](https://github.com/hsiaoa) [](https://github.com/nabbilkhan) [](https://github.com/ayanesakura) [](https://github.com/lupuletic) [](https://github.com/polooooo) [](https://github.com/xaeon2026) [](https://github.com/shrey150) [](https://github.com/taw0002) [](https://github.com/dinakars777)
|
|
334
|
-
[](https://github.com/giulio-leone) [](https://github.com/nyanjou) [](https://github.com/meaningfool) [](https://github.com/kunalk16) [](https://github.com/ide-rea) [](https://github.com/JonathanJing) [](https://github.com/yelog) [](https://github.com/markmusson) [](https://github.com/kiranvk-2011) [](https://github.com/Sathvik-Chowdary-Veerapaneni)
|
|
335
|
-
[](https://github.com/rogerdigital) [](https://github.com/artwalker) [](https://github.com/azade-c) [](https://github.com/chinar-amrutkar) [](https://github.com/maxsumrall) [](https://github.com/Minidoracat) [](https://github.com/unisone) [](https://github.com/ly85206559) [](https://github.com/theSamPadilla) [](https://github.com/AnonO6)
|
|
336
|
-
[](https://github.com/afurm) [](https://github.com/jwchmodx) [](https://github.com/leszekszpunar) [](https://github.com/Mrseenz) [](https://github.com/Yida-Dev) [](https://github.com/kesor) [](https://github.com/mazhe-nerd) [](https://github.com/buerbaumer) [](https://github.com/magimetal) [](https://github.com/patelhiren)
|
|
337
|
-
[](https://github.com/BinHPdev) [](https://github.com/RyanLee-Dev) [](https://github.com/cathrynlavery) [](https://github.com/al3mart) [](https://github.com/JustYannicc) [](https://github.com/AbhisekBasu1) [](https://github.com/dbhurley) [](https://github.com/mpz4life) [](https://github.com/tmimmanuel) [](https://github.com/JustasMonkev)
|
|
338
|
-
[](https://github.com/simantak-dabhade) [](https://github.com/NicholasSpisak) [](https://github.com/natefikru) [](https://github.com/dunamismax) [](https://github.com/simonemacario) [](https://github.com/ENCHIGO) [](https://github.com/xingsy97) [](https://github.com/emonty) [](https://github.com/jadilson12) [](https://github.com/kirisame-wang)
|
|
339
|
-
[](https://github.com/mathiasnagler) [](https://github.com/Oceanswave) [](https://github.com/gumclaw) [](https://github.com/RichardCao) [](https://github.com/MKV21) [](https://github.com/petter-b) [](https://github.com/CodeForgeNet) [](https://github.com/johnsonshi) [](https://github.com/durenzidu) [](https://github.com/dougvk)
|
|
340
|
-
[](https://github.com/Whoaa512) [](https://github.com/zimeg) [](https://github.com/TsekaLuk) [](https://github.com/Ryan-Haines) [](https://github.com/uf-hy) [](https://github.com/Daanvdplas) [](https://github.com/bittoby) [](https://github.com/xuhao1) [](https://github.com/Lucenx9) [](https://github.com/HeMuling)
|
|
341
|
-
[](https://github.com/AaronLuo00) [](https://github.com/YUJIE2002) [](https://github.com/DhruvBhatia0) [](https://github.com/divanoli) [](https://github.com/derbronko) [](https://github.com/rubyrunsstuff) [](https://github.com/rabsef-bicrym) [](https://github.com/IVY-AI-gif) [](https://github.com/pvtclawn) [](https://github.com/stephenschoettler)
|
|
342
|
-
[](https://github.com/minupla) [](https://github.com/xzq-xu) [](https://github.com/mousberg) [](https://github.com/arifahmedjoy) [](https://github.com/harhogefoo) [](https://github.com/2233admin) [](https://github.com/ameno-) [](https://github.com/battman21) [](https://github.com/bcherny) [](https://github.com/bobashopcashier)
|
|
343
|
-
[](https://github.com/dguido) [](https://github.com/druide67) [](https://github.com/guirguispierre) [](https://github.com/jzakirov) [](https://github.com/loganprit) [](https://github.com/martinfrancois) [](https://github.com/neo1027144-creator) [](https://github.com/RealKai42) [](https://github.com/schumilin) [](https://github.com/shuofengzhang)
|
|
344
|
-
[](https://github.com/solstead) [](https://github.com/hengm3467) [](https://github.com/chziyue) [](https://github.com/jameslcowan) [](https://github.com/scifantastic) [](https://github.com/ryan-crabbe) [](https://github.com/alexfilatov) [](https://github.com/Luckymingxuan) [](https://github.com/Hollychou924) [](https://github.com/badlogic)
|
|
345
|
-
[](https://github.com/hnykda) [](https://github.com/dbachelder) [](https://github.com/heavenlost) [](https://github.com/shad0wca7) [](https://github.com/jared596) [](https://github.com/kiranjd) [](https://github.com/Mellowambience) [](https://github.com/KimGLee) [](https://github.com/seheepeak) [](https://github.com/TSavo)
|
|
346
|
-
[](https://github.com/mcrolly) [](https://github.com/dashed) [](https://github.com/Shuai-DaiDai) [](https://github.com/suboss87) [](https://github.com/emanuelst) [](https://github.com/magendary) [](https://github.com/PeterShanxin) [](https://github.com/j2h4u) [](https://github.com/bsormagec) [](https://github.com/mjamiv)
|
|
347
|
-
[](https://github.com/aerolalit) [](https://github.com/jessy2027) [](https://github.com/buddyh) [](https://github.com/aaron-he-zhu) [](https://github.com/hhhhao28) [](https://github.com/benostein) [](https://github.com/LyleLiu666) [](https://github.com/pingren) [](https://github.com/popomore) [](https://github.com/Dithilli)
|
|
348
|
-
[](https://github.com/fal3) [](https://github.com/mkbehr) [](https://github.com/mteam88) [](https://github.com/gupsammy) [](https://github.com/gut-puncture) [](https://github.com/garnetlyx) [](https://github.com/miloudbelarebia) [](https://github.com/Protocol-zero-0) [](https://github.com/pvoo) [](https://github.com/patrick-yingxi-pan)
|
|
349
|
-
[](https://github.com/ptahdunbar) [](https://github.com/keepitmello) [](https://github.com/artuskg) [](https://github.com/Anandesh-Sharma) [](https://github.com/zidongdesign) [](https://github.com/Innocent-children) [](https://github.com/El-Fitz) [](https://github.com/arthurbr11) [](https://github.com/jackheuberger) [](https://github.com/serkonyc)
|
|
350
|
-
[](https://github.com/guxu11) [](https://github.com/hyojin) [](https://github.com/jeann2013) [](https://github.com/jogelin) [](https://github.com/rmorse) [](https://github.com/scz2011) [](https://github.com/andyliu) [](https://github.com/benithors) [](https://github.com/xiwuqi) [](https://github.com/TigerInYourDream)
|
|
351
|
-
[](https://github.com/aaronagent) [](https://github.com/TonyDerek-dot) [](https://github.com/Zitzak) [](https://github.com/ruypang) [](https://github.com/stainlu) [](https://github.com/OpenCils) [](https://github.com/stefangalescu) [](https://github.com/sp-hk2ldn) [](https://github.com/MikeORed) [](https://github.com/graciegould)
|
|
352
|
-
[](https://github.com/cash-echo-bot) [](https://github.com/visionik) [](https://github.com/WalterSumbon) [](https://github.com/SubtleSpark) [](https://github.com/krizpoon) [](https://github.com/rodbland2021) [](https://github.com/thomasxm) [](https://github.com/sar618) [](https://github.com/fagemx) [](https://github.com/daymade)
|
|
353
|
-
[](https://github.com/tysoncung) [](https://github.com/pycckuu) [](https://github.com/omniwired) [](https://github.com/connorshea) [](https://github.com/bonald) [](https://github.com/BeeSting50) [](https://github.com/nachoiacovino) [](https://github.com/zhumengzhu) [](https://github.com/Vitalcheffe) [](https://github.com/zhoulongchao77)
|
|
354
|
-
[](https://github.com/navarrotech) [](https://github.com/CommanderCrowCode) [](https://github.com/paceyw) [](https://github.com/Aftabbs) [](https://github.com/Alex-Alaniz) [](https://github.com/jarvis-medmatic) [](https://github.com/tomron87) [](https://github.com/day253) [](https://github.com/Jaaneek) [](https://github.com/AnCoSONG)
|
|
355
|
-
[](https://github.com/ziomancer) [](https://github.com/shayan919293) [](https://github.com/edwluo) [](https://github.com/rjchien728) [](https://github.com/TinyTb) [](https://github.com/No898) [](https://github.com/ianderrington) [](https://github.com/L-U-C-K-Y) [](https://github.com/peschee) [](https://github.com/Kepler2024)
|
|
356
|
-
[](https://github.com/julianengel) [](https://github.com/markfietje) [](https://github.com/dakshaymehta) [](https://github.com/DavidNitZ) [](https://github.com/dominicnunez) [](https://github.com/danielwanwx) [](https://github.com/hongsw) [](https://github.com/Youyou972) [](https://github.com/boris721) [](https://github.com/damoahdominic)
|
|
357
|
-
[](https://github.com/dan-dr) [](https://github.com/doodlewind) [](https://github.com/kkarimi) [](https://github.com/brokemac79) [](https://github.com/ozbillwang) [](https://github.com/ravyg) [](https://github.com/jasonhargrove) [](https://github.com/BrianWang1990) [](https://github.com/hackersifu) [](https://github.com/Fologan)
|
|
358
|
-
[](https://github.com/AnonAmit) [](https://github.com/v1p0r) [](https://github.com/ajay99511) [](https://github.com/Iranb) [](https://github.com/yhyatt) [](https://github.com/codexGW) [](https://github.com/ShaunTsai) [](https://github.com/papago2355) [](https://github.com/cdorsey) [](https://github.com/tda1017)
|
|
359
|
-
[](https://github.com/0xJonHoldsCrypto) [](https://github.com/akyourowngames) [![clawdinator[bot]](https://avatars.githubusercontent.com/in/2607181?v=4&s=48)](https://github.com/apps/clawdinator) [](https://github.com/koala73) [](https://github.com/sircrumpet) [](https://github.com/thesomewhatyou) [](https://github.com/zats) [](https://github.com/duqaXxX) [](https://github.com/Joly0) [](https://github.com/hannasdev)
|
|
360
|
-
[](https://github.com/jlowin) [](https://github.com/peetzweg) [](https://github.com/adao-max) [](https://github.com/tumf) [](https://github.com/Huntterxx) [](https://github.com/nk1tz) [](https://github.com/lidamao633) [](https://github.com/liebertar) [](https://github.com/CornBrother0x) [](https://github.com/DukeDeSouth)
|
|
361
|
-
[](https://github.com/sahancava) [](https://github.com/CashWilliams) [](https://github.com/lumpinif) [](https://github.com/AdeboyeDN) [](https://github.com/Rohan5commit) [](https://github.com/srinivaspavan9) [](https://github.com/h0tp-ftw) [](https://github.com/neooriginal) [](https://github.com/Tianworld) [](https://github.com/Bermudarat)
|
|
362
|
-
[](https://github.com/asklee-klawd) [](https://github.com/yuting0624) [](https://github.com/constansino) [](https://github.com/ghsmc) [](https://github.com/ibrahimq21) [](https://github.com/irtiq7) [](https://github.com/kelvinCB) [](https://github.com/mitsuhiko) [](https://github.com/nohat) [](https://github.com/santiagomed)
|
|
363
|
-
[](https://github.com/suminhthanh) [](https://github.com/svkozak) [](https://github.com/zhangzhefang-github) [](https://github.com/HOYALIM) [](https://github.com/ping-Toven) [](https://github.com/0-CYBERDYNE-SYSTEMS-0) [](https://github.com/ylc0919) [](https://github.com/reed1898) [](https://github.com/ItsAditya-xyz) [](https://github.com/samrusani)
|
|
364
|
-
[](https://github.com/andyk-ms) [](https://github.com/18-RAJAT) [](https://github.com/cyb1278588254) [](https://github.com/zoherghadyali) [](https://github.com/manikv12) [](https://github.com/manueltarouca) [](https://github.com/GaosCode) [](https://github.com/pahdo) [](https://github.com/detecti1) [](https://github.com/JasonOA888)
|
|
365
|
-
[](https://github.com/sumukhj1219) [](https://github.com/bakhtiersizhaev) [](https://github.com/kyleok) [](https://github.com/AkashKobal) [](https://github.com/zhuisDEV) [](https://github.com/wu-tian807) [](https://github.com/vsabavat) [](https://github.com/kinfey) [](https://github.com/crimeacs) [](https://github.com/VibhorGautam)
|
|
366
|
-
[](https://github.com/John-Rood) [](https://github.com/velamints2) [](https://github.com/benjipeng) [](https://github.com/divisonofficer) [](https://github.com/Rahulkumar070) [](https://github.com/rockcent) [](https://github.com/Limitless2023) [](https://github.com/24601) [](https://github.com/awkoy) [](https://github.com/dawondyifraw)
|
|
367
|
-
[![google-labs-jules[bot]](https://avatars.githubusercontent.com/in/842251?v=4&s=48)](https://github.com/apps/google-labs-jules) [](https://github.com/henrino3) [](https://github.com/Kansodata) [](https://github.com/kaonash) [](https://github.com/p6l-richard) [](https://github.com/pi0) [](https://github.com/skainguyen1412) [](https://github.com/Starhappysh) [](https://github.com/xdanger) [](https://github.com/p3nchan)
|
|
368
|
-
[](https://github.com/scald) [](https://github.com/kashevk0) [](https://github.com/Yuandiaodiaodiao) [](https://github.com/doguabaris) [](https://github.com/ysqander) [](https://github.com/andranik-sahakyan) [](https://github.com/Wangnov) [](https://github.com/rixau) [](https://github.com/lisitan) [](https://github.com/kaizen403)
|
|
369
|
-
[](https://github.com/hirefrank) [](https://github.com/kennyklee) [](https://github.com/dddabtc) [](https://github.com/edincampara) [](https://github.com/fellanH) [](https://github.com/VarunChopra11) [](https://github.com/wangai-studio) [](https://github.com/sleontenko) [](https://github.com/yassine20011) [](https://github.com/ant1eicher)
|
|
370
|
-
[](https://github.com/ThomsenDrake) [](https://github.com/kakuteki) [](https://github.com/andreabadesso) [](https://github.com/chenxin-yan) [](https://github.com/cordx56) [](https://github.com/dvrshil) [](https://github.com/MarvinCui) [](https://github.com/Yeom-JinHo) [](https://github.com/17jmumford) [](https://github.com/KnHack)
|
|
371
|
-
[](https://github.com/SharoonSharif) [](https://github.com/orenyomtov) [](https://github.com/mattqdev) [](https://github.com/parkertoddbrooks) [](https://github.com/he-yufeng) [](https://github.com/Milofax) [](https://github.com/stevebot-alive) [](https://github.com/zhoulf1006) [](https://github.com/jrrcdev) [](https://github.com/feniix)
|
|
372
|
-
[](https://github.com/ZetiMente) [](https://github.com/QuantDeveloperUSA) [](https://github.com/alexstyl) [](https://github.com/ethanpalm) [](https://github.com/qkal) [](https://github.com/cygaar) [](https://github.com/U-C4N) [](https://github.com/jakobdylanc) [](https://github.com/antons) [](https://github.com/austinm911)
|
|
373
|
-
[](https://github.com/mahmoudashraf93) [](https://github.com/philipp-spiess) [](https://github.com/pkrmf) [](https://github.com/joshrad-dev) [](https://github.com/factnest365-ops) [](https://github.com/yingchunbai) [](https://github.com/aj47) [](https://github.com/Alg0rix) [](https://github.com/futhgar) [](https://github.com/YonganZhang)
|
|
374
|
-
[](https://github.com/remusao) [](https://github.com/danballance) [](https://github.com/GHesericsu) [](https://github.com/kimitaka) [](https://github.com/itsjling) [](https://github.com/RayBB) [](https://github.com/lutr0) [](https://github.com/claude) [](https://github.com/angrybirddd) [](https://github.com/fabianwilliams)
|
|
375
|
-
[](https://github.com/haoruilee) [](https://github.com/8BlT) [](https://github.com/atalovesyou) [](https://github.com/erikpr1994) [](https://github.com/jonasjancarik) [](https://github.com/longmaba) [](https://github.com/mitschabaude-bot) [](https://github.com/thesash) [](https://github.com/rdev) [](https://github.com/easternbloc)
|
|
376
|
-
[](https://github.com/chrisrodz) [](https://github.com/gabriel-trigo) [](https://github.com/manmal) [](https://github.com/neist) [](https://github.com/wes-davis) [](https://github.com/ManuelHettich) [](https://github.com/sktbrd) [](https://github.com/larlyssa) [](https://github.com/pcty-nextgen-service-account) [](https://github.com/Syhids)
|
|
377
|
-
[](https://github.com/tmchow) [](https://github.com/mgratch) [](https://github.com/xtao) [](https://github.com/JackyWay) [](https://github.com/j1philli) [](https://github.com/T5-AndyML) [](https://github.com/huohua-dev) [](https://github.com/imfing) [](https://github.com/RandyVentures) [](https://github.com/marcodd23)
|
|
378
|
-
[](https://github.com/Iamadig) [](https://github.com/humanwritten) [](https://github.com/robaxelsen) [](https://github.com/prathamdby) [](https://github.com/0oAstro) [](https://github.com/aaronn) [](https://github.com/afern247) [](https://github.com/Asleep123) [](https://github.com/dantelex) [](https://github.com/fcatuhe)
|
|
379
|
-
[](https://github.com/gtsifrikas) [](https://github.com/hrdwdmrbl) [](https://github.com/hugobarauna) [](https://github.com/jayhickey) [](https://github.com/jiulingyun) [](https://github.com/jdrhyne) [](https://github.com/jverdi) [](https://github.com/kitze) [](https://github.com/loukotal) [](https://github.com/minghinmatthewlam)
|
|
380
|
-
[](https://github.com/MSch) [](https://github.com/odrobnik) [](https://github.com/oswalpalash) [](https://github.com/ratulsarna) [](https://github.com/reeltimeapps) [](https://github.com/snopoke) [](https://github.com/sreekaransrinath) [](https://github.com/timkrase)
|
|
381
|
-
|
|
382
|
-
<!-- clawtributors:end -->
|
|
383
|
-
<!-- clawtributors:hidden:start
|
|
384
|
-
default-avatar-cache: hidden from the rendered wall because these users still use GitHub's default avatar
|
|
385
|
-
13otkmdr
|
|
386
|
-
aaronveklabs
|
|
387
|
-
adityashaw2
|
|
388
|
-
ai-reviewer-qs
|
|
389
|
-
alexyyyander
|
|
390
|
-
alphonse-arianee
|
|
391
|
-
amitbiswal007
|
|
392
|
-
bbblending
|
|
393
|
-
bbddbb1
|
|
394
|
-
bitfoundry-ai
|
|
395
|
-
bugkillerking
|
|
396
|
-
carlulsoe
|
|
397
|
-
charzhou
|
|
398
|
-
cheeeee
|
|
399
|
-
dalomeve
|
|
400
|
-
danielz1z
|
|
401
|
-
diaspar4u
|
|
402
|
-
dirbalak
|
|
403
|
-
djangonavarro220
|
|
404
|
-
dobbylorenzbot
|
|
405
|
-
drcrinkle
|
|
406
|
-
drickon
|
|
407
|
-
eddertalmor
|
|
408
|
-
eengad
|
|
409
|
-
efe-buken
|
|
410
|
-
eric-fr4
|
|
411
|
-
eronfan
|
|
412
|
-
evandance
|
|
413
|
-
extrasmall0
|
|
414
|
-
ezhikkk
|
|
415
|
-
fuller-stack-dev
|
|
416
|
-
fwhite13
|
|
417
|
-
gambletan
|
|
418
|
-
gejifeng
|
|
419
|
-
harrington-bot
|
|
420
|
-
heimdallstrategy
|
|
421
|
-
heyhudson
|
|
422
|
-
hougangdev
|
|
423
|
-
jamesgroat
|
|
424
|
-
jamtujest
|
|
425
|
-
jaymishra-source
|
|
426
|
-
joe2643
|
|
427
|
-
joetomasone
|
|
428
|
-
jonathanworks
|
|
429
|
-
jonisjongithub
|
|
430
|
-
jscaldwell55
|
|
431
|
-
julbarth
|
|
432
|
-
junjunjunbong
|
|
433
|
-
kirillshchetinin
|
|
434
|
-
kyohwang
|
|
435
|
-
lailoo
|
|
436
|
-
latitudeki5223
|
|
437
|
-
lawrence3699
|
|
438
|
-
liaosvcaf
|
|
439
|
-
livingghost
|
|
440
|
-
luijoc
|
|
441
|
-
lukeboyett
|
|
442
|
-
lurebat
|
|
443
|
-
mahanandhi
|
|
444
|
-
maple778
|
|
445
|
-
martingarramon
|
|
446
|
-
matthew19990919
|
|
447
|
-
moktamd
|
|
448
|
-
moltbot886
|
|
449
|
-
mujiannan
|
|
450
|
-
mukhtharcm
|
|
451
|
-
mylszd
|
|
452
|
-
natedenh
|
|
453
|
-
nicholascyh
|
|
454
|
-
nickhood1984
|
|
455
|
-
nico-hoff
|
|
456
|
-
nikus-pan
|
|
457
|
-
nonggialiang
|
|
458
|
-
oliviareid-svg
|
|
459
|
-
fengming-bot
|
|
460
|
-
pablohrcarvalho
|
|
461
|
-
patrick-barletta
|
|
462
|
-
pinghuachiu
|
|
463
|
-
private-peter
|
|
464
|
-
prospectore
|
|
465
|
-
rafaelreis-r
|
|
466
|
-
rexl2018
|
|
467
|
-
rexlunae
|
|
468
|
-
rhjoh
|
|
469
|
-
ronak-guliani
|
|
470
|
-
ryancontent
|
|
471
|
-
ryanngit
|
|
472
|
-
rybnikov
|
|
473
|
-
sandpile
|
|
474
|
-
sbking
|
|
475
|
-
shivamraut101
|
|
476
|
-
shuicici
|
|
477
|
-
slats24
|
|
478
|
-
slepybear
|
|
479
|
-
sline
|
|
480
|
-
socialnerd42069
|
|
481
|
-
solodmd
|
|
482
|
-
sudie-codes
|
|
483
|
-
sumleo
|
|
484
|
-
superman32432432
|
|
485
|
-
ted-developer
|
|
486
|
-
tempeste
|
|
487
|
-
theonejvo
|
|
488
|
-
tosh-hamburg
|
|
489
|
-
uli-will-code
|
|
490
|
-
w-sss
|
|
491
|
-
whiskyboy
|
|
492
|
-
wittam-01
|
|
493
|
-
xieyongliang
|
|
494
|
-
yassinebkr
|
|
495
|
-
yuna78
|
|
496
|
-
yuweuii
|
|
497
|
-
yxjsxy
|
|
498
|
-
zijiess
|
|
499
|
-
clawtributors:hidden:end -->
|
|
127
|
+
[MIT](LICENSE)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "fengming",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.3",
|
|
4
4
|
"description": "Multi-channel AI gateway with extensible messaging integrations",
|
|
5
5
|
"keywords": [],
|
|
6
6
|
"homepage": "https://github.com/fengming/fengming#readme",
|
|
@@ -1408,112 +1408,6 @@
|
|
|
1408
1408
|
"./extension-api": "./dist/extensionAPI.js",
|
|
1409
1409
|
"./cli-entry": "./fengming.mjs"
|
|
1410
1410
|
},
|
|
1411
|
-
"dependencies": {
|
|
1412
|
-
"@agentclientprotocol/sdk": "0.22.1",
|
|
1413
|
-
"@anthropic-ai/sdk": "0.98.0",
|
|
1414
|
-
"@clack/core": "1.3.1",
|
|
1415
|
-
"@clack/prompts": "1.4.0",
|
|
1416
|
-
"@earendil-works/pi-tui": "0.76.0",
|
|
1417
|
-
"@google/genai": "2.6.0",
|
|
1418
|
-
"@grammyjs/runner": "2.0.3",
|
|
1419
|
-
"@grammyjs/transformer-throttler": "1.2.1",
|
|
1420
|
-
"@homebridge/ciao": "1.3.9",
|
|
1421
|
-
"@lydell/node-pty": "1.2.0-beta.12",
|
|
1422
|
-
"@mistralai/mistralai": "2.2.5",
|
|
1423
|
-
"@modelcontextprotocol/sdk": "1.29.0",
|
|
1424
|
-
"@mozilla/readability": "0.6.0",
|
|
1425
|
-
"@openclaw/fs-safe": "0.3.0",
|
|
1426
|
-
"@openclaw/proxyline": "0.3.3",
|
|
1427
|
-
"@silvia-odwyer/photon-node": "0.3.4",
|
|
1428
|
-
"chalk": "5.6.2",
|
|
1429
|
-
"chokidar": "5.0.0",
|
|
1430
|
-
"clawpdf": "0.2.0",
|
|
1431
|
-
"commander": "14.0.3",
|
|
1432
|
-
"croner": "10.0.1",
|
|
1433
|
-
"cross-spawn": "7.0.6",
|
|
1434
|
-
"diff": "9.0.0",
|
|
1435
|
-
"dotenv": "17.4.2",
|
|
1436
|
-
"express": "5.2.1",
|
|
1437
|
-
"file-type": "22.0.1",
|
|
1438
|
-
"glob": "13.0.6",
|
|
1439
|
-
"grammy": "1.43.0",
|
|
1440
|
-
"highlight.js": "11.11.1",
|
|
1441
|
-
"hosted-git-info": "9.0.3",
|
|
1442
|
-
"ignore": "7.0.5",
|
|
1443
|
-
"jiti": "2.7.0",
|
|
1444
|
-
"json5": "2.2.3",
|
|
1445
|
-
"jszip": "3.10.1",
|
|
1446
|
-
"kysely": "0.29.2",
|
|
1447
|
-
"linkedom": "0.18.12",
|
|
1448
|
-
"minimatch": "10.2.5",
|
|
1449
|
-
"node-edge-tts": "1.2.10",
|
|
1450
|
-
"openai": "6.39.0",
|
|
1451
|
-
"partial-json": "0.1.7",
|
|
1452
|
-
"playwright-core": "1.60.0",
|
|
1453
|
-
"proper-lockfile": "4.1.2",
|
|
1454
|
-
"qrcode": "1.5.4",
|
|
1455
|
-
"quickjs-wasi": "3.0.0",
|
|
1456
|
-
"rastermill": "0.3.0",
|
|
1457
|
-
"tar": "7.5.15",
|
|
1458
|
-
"tree-sitter-bash": "0.25.1",
|
|
1459
|
-
"tslog": "4.10.2",
|
|
1460
|
-
"typebox": "1.1.38",
|
|
1461
|
-
"typescript": "6.0.3",
|
|
1462
|
-
"undici": "8.3.0",
|
|
1463
|
-
"web-push": "3.6.7",
|
|
1464
|
-
"web-tree-sitter": "0.26.9",
|
|
1465
|
-
"ws": "8.21.0",
|
|
1466
|
-
"yaml": "2.9.0",
|
|
1467
|
-
"zod": "4.4.3"
|
|
1468
|
-
},
|
|
1469
|
-
"devDependencies": {
|
|
1470
|
-
"@a2ui/lit": "0.10.0",
|
|
1471
|
-
"@copilotkit/aimock": "1.27.1",
|
|
1472
|
-
"@grammyjs/types": "3.27.3",
|
|
1473
|
-
"@lit-labs/signals": "0.3.0",
|
|
1474
|
-
"@lit/context": "1.1.6",
|
|
1475
|
-
"@mdx-js/mdx": "3.1.1",
|
|
1476
|
-
"@shikijs/core": "4.1.0",
|
|
1477
|
-
"@shikijs/engine-javascript": "4.1.0",
|
|
1478
|
-
"@shikijs/engine-oniguruma": "4.1.0",
|
|
1479
|
-
"@types/cross-spawn": "6.0.6",
|
|
1480
|
-
"@types/express": "5.0.6",
|
|
1481
|
-
"@types/hosted-git-info": "3.0.5",
|
|
1482
|
-
"@types/markdown-it": "14.1.2",
|
|
1483
|
-
"@types/node": "25.9.1",
|
|
1484
|
-
"@types/proper-lockfile": "4.1.4",
|
|
1485
|
-
"@types/ws": "8.18.1",
|
|
1486
|
-
"@typescript/native-preview": "7.0.0-dev.20260527.2",
|
|
1487
|
-
"@vitest/coverage-v8": "4.1.7",
|
|
1488
|
-
"esbuild": "0.28.0",
|
|
1489
|
-
"jscpd": "4.2.4",
|
|
1490
|
-
"jsdom": "29.1.1",
|
|
1491
|
-
"lit": "3.3.3",
|
|
1492
|
-
"oxfmt": "0.52.0",
|
|
1493
|
-
"oxlint": "1.67.0",
|
|
1494
|
-
"oxlint-tsgolint": "0.23.0",
|
|
1495
|
-
"shiki": "4.1.0",
|
|
1496
|
-
"signal-utils": "0.21.1",
|
|
1497
|
-
"tsdown": "0.22.0",
|
|
1498
|
-
"tsx": "4.22.3",
|
|
1499
|
-
"unrun": "0.3.0",
|
|
1500
|
-
"vitest": "4.1.7"
|
|
1501
|
-
},
|
|
1502
|
-
"optionalDependencies": {
|
|
1503
|
-
"sharp": "0.34.5",
|
|
1504
|
-
"sqlite-vec": "0.1.9"
|
|
1505
|
-
},
|
|
1506
|
-
"overrides": {
|
|
1507
|
-
"axios": "1.16.0",
|
|
1508
|
-
"fast-uri": "3.1.2",
|
|
1509
|
-
"follow-redirects": "1.16.0",
|
|
1510
|
-
"ip-address": "10.2.0",
|
|
1511
|
-
"node-domexception": "npm:@nolyfill/domexception@1.0.28",
|
|
1512
|
-
"uuid": "14.0.0"
|
|
1513
|
-
},
|
|
1514
|
-
"engines": {
|
|
1515
|
-
"node": ">=22.19.0"
|
|
1516
|
-
},
|
|
1517
1411
|
"scripts": {
|
|
1518
1412
|
"audit:seams": "node scripts/audit-seams.mjs",
|
|
1519
1413
|
"build": "node scripts/build-all.mjs",
|
|
@@ -1681,7 +1575,10 @@
|
|
|
1681
1575
|
"plugins:sync": "node --import tsx scripts/sync-plugin-versions.ts",
|
|
1682
1576
|
"plugins:sync:check": "node --import tsx scripts/sync-plugin-versions.ts --check",
|
|
1683
1577
|
"postinstall": "node scripts/postinstall-bundled-plugins.mjs",
|
|
1578
|
+
"postpack": "node scripts/package-changelog.mjs restore",
|
|
1684
1579
|
"preinstall": "node scripts/preinstall-package-manager-warning.mjs",
|
|
1580
|
+
"prepack": "node --import tsx scripts/fengming-prepack.ts",
|
|
1581
|
+
"prepare": "node scripts/prepare-git-hooks.mjs",
|
|
1685
1582
|
"prepush:ci": "bash scripts/prepush-ci.sh",
|
|
1686
1583
|
"probe:anthropic:prompt": "node --import tsx scripts/anthropic-prompt-probe.ts",
|
|
1687
1584
|
"prompt:snapshots:check": "node --import tsx scripts/generate-prompt-snapshots.ts --check",
|
|
@@ -1916,5 +1813,112 @@
|
|
|
1916
1813
|
"ui:i18n:sync": "node --import tsx scripts/control-ui-i18n.ts sync --write",
|
|
1917
1814
|
"ui:install": "node scripts/ui.js install",
|
|
1918
1815
|
"verify": "node scripts/verify.mjs"
|
|
1919
|
-
}
|
|
1920
|
-
|
|
1816
|
+
},
|
|
1817
|
+
"dependencies": {
|
|
1818
|
+
"@agentclientprotocol/sdk": "0.22.1",
|
|
1819
|
+
"@anthropic-ai/sdk": "0.98.0",
|
|
1820
|
+
"@clack/core": "1.3.1",
|
|
1821
|
+
"@clack/prompts": "1.4.0",
|
|
1822
|
+
"@earendil-works/pi-tui": "0.76.0",
|
|
1823
|
+
"@google/genai": "2.6.0",
|
|
1824
|
+
"@grammyjs/runner": "2.0.3",
|
|
1825
|
+
"@grammyjs/transformer-throttler": "1.2.1",
|
|
1826
|
+
"@homebridge/ciao": "1.3.9",
|
|
1827
|
+
"@lydell/node-pty": "1.2.0-beta.12",
|
|
1828
|
+
"@mistralai/mistralai": "2.2.5",
|
|
1829
|
+
"@modelcontextprotocol/sdk": "1.29.0",
|
|
1830
|
+
"@mozilla/readability": "0.6.0",
|
|
1831
|
+
"@openclaw/fs-safe": "0.3.0",
|
|
1832
|
+
"@openclaw/proxyline": "0.3.3",
|
|
1833
|
+
"@silvia-odwyer/photon-node": "0.3.4",
|
|
1834
|
+
"chalk": "5.6.2",
|
|
1835
|
+
"chokidar": "5.0.0",
|
|
1836
|
+
"clawpdf": "0.2.0",
|
|
1837
|
+
"commander": "14.0.3",
|
|
1838
|
+
"croner": "10.0.1",
|
|
1839
|
+
"cross-spawn": "7.0.6",
|
|
1840
|
+
"diff": "9.0.0",
|
|
1841
|
+
"dotenv": "17.4.2",
|
|
1842
|
+
"express": "5.2.1",
|
|
1843
|
+
"file-type": "22.0.1",
|
|
1844
|
+
"glob": "13.0.6",
|
|
1845
|
+
"grammy": "1.43.0",
|
|
1846
|
+
"highlight.js": "11.11.1",
|
|
1847
|
+
"hosted-git-info": "9.0.3",
|
|
1848
|
+
"ignore": "7.0.5",
|
|
1849
|
+
"jiti": "2.7.0",
|
|
1850
|
+
"json5": "2.2.3",
|
|
1851
|
+
"jszip": "3.10.1",
|
|
1852
|
+
"kysely": "0.29.2",
|
|
1853
|
+
"linkedom": "0.18.12",
|
|
1854
|
+
"minimatch": "10.2.5",
|
|
1855
|
+
"node-edge-tts": "1.2.10",
|
|
1856
|
+
"openai": "6.39.0",
|
|
1857
|
+
"partial-json": "0.1.7",
|
|
1858
|
+
"playwright-core": "1.60.0",
|
|
1859
|
+
"proper-lockfile": "4.1.2",
|
|
1860
|
+
"qrcode": "1.5.4",
|
|
1861
|
+
"quickjs-wasi": "3.0.0",
|
|
1862
|
+
"rastermill": "0.3.0",
|
|
1863
|
+
"tar": "7.5.15",
|
|
1864
|
+
"tree-sitter-bash": "0.25.1",
|
|
1865
|
+
"tslog": "4.10.2",
|
|
1866
|
+
"typebox": "1.1.38",
|
|
1867
|
+
"typescript": "6.0.3",
|
|
1868
|
+
"undici": "8.3.0",
|
|
1869
|
+
"web-push": "3.6.7",
|
|
1870
|
+
"web-tree-sitter": "0.26.9",
|
|
1871
|
+
"ws": "8.21.0",
|
|
1872
|
+
"yaml": "2.9.0",
|
|
1873
|
+
"zod": "4.4.3"
|
|
1874
|
+
},
|
|
1875
|
+
"devDependencies": {
|
|
1876
|
+
"@a2ui/lit": "0.10.0",
|
|
1877
|
+
"@copilotkit/aimock": "1.27.1",
|
|
1878
|
+
"@grammyjs/types": "3.27.3",
|
|
1879
|
+
"@lit-labs/signals": "0.3.0",
|
|
1880
|
+
"@lit/context": "1.1.6",
|
|
1881
|
+
"@mdx-js/mdx": "3.1.1",
|
|
1882
|
+
"@shikijs/core": "4.1.0",
|
|
1883
|
+
"@shikijs/engine-javascript": "4.1.0",
|
|
1884
|
+
"@shikijs/engine-oniguruma": "4.1.0",
|
|
1885
|
+
"@types/cross-spawn": "6.0.6",
|
|
1886
|
+
"@types/express": "5.0.6",
|
|
1887
|
+
"@types/hosted-git-info": "3.0.5",
|
|
1888
|
+
"@types/markdown-it": "14.1.2",
|
|
1889
|
+
"@types/node": "25.9.1",
|
|
1890
|
+
"@types/proper-lockfile": "4.1.4",
|
|
1891
|
+
"@types/ws": "8.18.1",
|
|
1892
|
+
"@typescript/native-preview": "7.0.0-dev.20260527.2",
|
|
1893
|
+
"@vitest/coverage-v8": "4.1.7",
|
|
1894
|
+
"esbuild": "0.28.0",
|
|
1895
|
+
"jscpd": "4.2.4",
|
|
1896
|
+
"jsdom": "29.1.1",
|
|
1897
|
+
"lit": "3.3.3",
|
|
1898
|
+
"oxfmt": "0.52.0",
|
|
1899
|
+
"oxlint": "1.67.0",
|
|
1900
|
+
"oxlint-tsgolint": "0.23.0",
|
|
1901
|
+
"shiki": "4.1.0",
|
|
1902
|
+
"signal-utils": "0.21.1",
|
|
1903
|
+
"tsdown": "0.22.0",
|
|
1904
|
+
"tsx": "4.22.3",
|
|
1905
|
+
"unrun": "0.3.0",
|
|
1906
|
+
"vitest": "4.1.7"
|
|
1907
|
+
},
|
|
1908
|
+
"optionalDependencies": {
|
|
1909
|
+
"sharp": "0.34.5",
|
|
1910
|
+
"sqlite-vec": "0.1.9"
|
|
1911
|
+
},
|
|
1912
|
+
"overrides": {
|
|
1913
|
+
"axios": "1.16.0",
|
|
1914
|
+
"fast-uri": "3.1.2",
|
|
1915
|
+
"follow-redirects": "1.16.0",
|
|
1916
|
+
"ip-address": "10.2.0",
|
|
1917
|
+
"node-domexception": "npm:@nolyfill/domexception@1.0.28",
|
|
1918
|
+
"uuid": "14.0.0"
|
|
1919
|
+
},
|
|
1920
|
+
"engines": {
|
|
1921
|
+
"node": ">=22.19.0"
|
|
1922
|
+
},
|
|
1923
|
+
"packageManager": "pnpm@11.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f"
|
|
1924
|
+
}
|