@shawnstack/quickforge 1.6.11 → 1.6.13
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 +292 -452
- package/dist/assets/AgentProfilesPage-Be0oZDW5.js +1 -0
- package/dist/assets/ChatPanelHost-CxEotTsy.js +291 -0
- package/dist/assets/{PluginsPage-B_4nlPca.js → PluginsPage-DZlqGFLn.js} +1 -1
- package/dist/assets/ScheduledTasksPage-DTkj-0O4.js +2 -0
- package/dist/assets/{SettingsWorkspacePage-BtgkwIKN.js → SettingsWorkspacePage-BJq11OPD.js} +397 -403
- package/dist/assets/{SharedConversationPage-B5FS3eSl.js → SharedConversationPage-BCR8xzii.js} +1 -1
- package/dist/assets/TerminalDock-Bs5b-YNp.js +2 -0
- package/dist/assets/WorkspaceInspector-BP0XyAlE.js +13 -0
- package/dist/assets/icons-DAxUA0e-.js +1 -0
- package/dist/assets/index-BZC61KZg.css +3 -0
- package/dist/assets/index-DGQbvw7v.js +63 -0
- package/dist/assets/{mcp-servers-dialog-BPk4a4nW.js → mcp-servers-dialog-BHljnwYv.js} +2 -2
- package/dist/assets/{monaco-CdOyGlWD.js → monaco-DEQoYzYI.js} +1 -1
- package/dist/assets/{react-vendor-VqdnQHHS.js → react-vendor-CZsiwuxm.js} +1 -1
- package/dist/assets/{skills-dialog-DcxeFWSt.js → skills-dialog-8rn1XU9U.js} +1 -1
- package/dist/index.html +6 -6
- package/dist/licenses/material-icon-theme.txt +8 -0
- package/package.json +1 -1
- package/server/agent-manager.mjs +163 -25
- package/server/custom-commands.mjs +17 -0
- package/server/image-generation.mjs +130 -0
- package/server/index.mjs +6 -0
- package/server/provider-config.mjs +78 -0
- package/server/routes/agent.mjs +9 -0
- package/server/routes/project.mjs +3 -18
- package/server/routes/session-assets.mjs +49 -0
- package/server/routes/shared-conversation.mjs +10 -0
- package/server/routes/tools.mjs +1 -1
- package/server/routes/workspace.mjs +5 -2
- package/server/session-assets.mjs +134 -0
- package/server/storage.mjs +13 -1
- package/server/tools/definitions.mjs +10 -0
- package/server/tools/index.mjs +2 -0
- package/server/utils/platform.mjs +20 -3
- package/dist/assets/AgentProfilesPage-CvoB0OId.js +0 -1
- package/dist/assets/ChatPanelHost-Cyi1yi_P.js +0 -244
- package/dist/assets/ScheduledTasksPage-Zbsuo8o6.js +0 -2
- package/dist/assets/TerminalDock-CiJCmyqg.js +0 -2
- package/dist/assets/WorkspaceInspector-C9HyQIvF.js +0 -13
- package/dist/assets/icons-C7j5jdKo.js +0 -1
- package/dist/assets/index-BFKildY3.js +0 -63
- package/dist/assets/index-CsKSKUn-.css +0 -3
package/README.md
CHANGED
|
@@ -1,452 +1,292 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
QuickForge
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
###
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
-
|
|
254
|
-
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
qf --version
|
|
294
|
-
qf check-update
|
|
295
|
-
qf update
|
|
296
|
-
```
|
|
297
|
-
|
|
298
|
-
#### SDK entry
|
|
299
|
-
|
|
300
|
-
QuickForge can also be started from a Node.js project as an npm package:
|
|
301
|
-
|
|
302
|
-
```js
|
|
303
|
-
import { startQuickForge } from '@shawnstack/quickforge'
|
|
304
|
-
|
|
305
|
-
const app = await startQuickForge({
|
|
306
|
-
host: '127.0.0.1',
|
|
307
|
-
port: 5176,
|
|
308
|
-
})
|
|
309
|
-
|
|
310
|
-
console.log(app.url)
|
|
311
|
-
```
|
|
312
|
-
|
|
313
|
-
This entry is exposed through the `main` field in `package.json` and does not change the `qf` / `quickforge` CLI publishing path.
|
|
314
|
-
|
|
315
|
-
#### Offline tarball
|
|
316
|
-
|
|
317
|
-
The offline release package for `v1.6.11` is:
|
|
318
|
-
|
|
319
|
-
```text
|
|
320
|
-
package-offline/shawnstack-quickforge-1.6.11.tgz
|
|
321
|
-
```
|
|
322
|
-
|
|
323
|
-
Install it on a machine with Node.js 22.19+ and npm:
|
|
324
|
-
|
|
325
|
-
```bash
|
|
326
|
-
npm install -g ./package-offline/shawnstack-quickforge-1.6.11.tgz
|
|
327
|
-
qf
|
|
328
|
-
```
|
|
329
|
-
|
|
330
|
-
The package was generated from tag `v1.6.11` and includes QuickForge runtime assets and installs dependencies with npm.
|
|
331
|
-
|
|
332
|
-
### Local development
|
|
333
|
-
|
|
334
|
-
```bash
|
|
335
|
-
# Install dependencies
|
|
336
|
-
npm install
|
|
337
|
-
|
|
338
|
-
# Development: local service + Vite, default port 5176
|
|
339
|
-
npm run dev
|
|
340
|
-
|
|
341
|
-
# Production
|
|
342
|
-
npm run build
|
|
343
|
-
npm start
|
|
344
|
-
```
|
|
345
|
-
|
|
346
|
-
Open [http://localhost:5176](http://localhost:5176).
|
|
347
|
-
|
|
348
|
-
On Windows, you can also double-click:
|
|
349
|
-
|
|
350
|
-
- `dev-quickforge.bat` for development mode
|
|
351
|
-
- `start-quickforge.bat` for production mode
|
|
352
|
-
|
|
353
|
-
#### Desktop development and builds
|
|
354
|
-
|
|
355
|
-
The desktop entry lives at `desktop/electron-main.mjs` and reuses the same local service and frontend build output.
|
|
356
|
-
|
|
357
|
-
```bash
|
|
358
|
-
# Start desktop app in development
|
|
359
|
-
npm run desktop:dev
|
|
360
|
-
|
|
361
|
-
# Build a desktop package for the current platform
|
|
362
|
-
npm run desktop:build
|
|
363
|
-
|
|
364
|
-
# Build desktop packages by platform
|
|
365
|
-
npm run desktop:build:win
|
|
366
|
-
npm run desktop:build:mac
|
|
367
|
-
npm run desktop:build:linux
|
|
368
|
-
|
|
369
|
-
# Try to build all desktop targets locally (cross-platform builds depend on local tooling)
|
|
370
|
-
npm run desktop:build:all
|
|
371
|
-
```
|
|
372
|
-
|
|
373
|
-
Desktop artifacts are written to `desktop-dist/`. This directory and Electron dependencies are only for local desktop builds and are not part of the npm runtime publish whitelist.
|
|
374
|
-
|
|
375
|
-
The desktop app supports a system tray: Windows uses the bottom-right system tray and macOS uses the top menu bar. Closing the window hides it to the tray; use the quit action from the tray menu to fully exit and stop the local service started by the desktop app. Tray menu labels follow the QuickForge display language setting when available, and fall back to the system language.
|
|
376
|
-
|
|
377
|
-
GitHub Actions provides a `Desktop Build` workflow. It can be run manually or by pushing a `v*` tag, builds on Windows/macOS/Linux runners, and uploads workflow artifacts. When triggered by a `v*` tag push, a successful build also creates a GitHub Release and uploads the desktop build assets, but it does not publish npm automatically.
|
|
378
|
-
|
|
379
|
-
### First model setup
|
|
380
|
-
|
|
381
|
-
QuickForge does not ship with a default model. If no model is configured on first launch, the chat area shows a setup guide.
|
|
382
|
-
|
|
383
|
-
You can add any compatible provider in Settings, for example:
|
|
384
|
-
|
|
385
|
-
```text
|
|
386
|
-
Provider name: LiteLLM
|
|
387
|
-
Protocol type: OpenAI Compatible
|
|
388
|
-
Base URL: http://localhost:4000/v1
|
|
389
|
-
Model ID: anthropic/claude-sonnet-4
|
|
390
|
-
API Key: optional, depending on your LiteLLM configuration
|
|
391
|
-
```
|
|
392
|
-
|
|
393
|
-
You can also configure OpenRouter, DeepSeek, Ollama, or any other OpenAI-compatible / Anthropic-compatible service. Model requests are sent to the provider you configure; QuickForge provides the local UI, storage, conversation management, and tool orchestration.
|
|
394
|
-
|
|
395
|
-
### Common environment variables
|
|
396
|
-
|
|
397
|
-
| Variable | Default | Description |
|
|
398
|
-
|---|---|---|
|
|
399
|
-
| `QUICKFORGE_DATA_DIR` | `~/.quickforge` | Data directory |
|
|
400
|
-
| `QUICKFORGE_WORKSPACE_DIR` | project root | Default workspace for YOLO tools |
|
|
401
|
-
| `QUICKFORGE_HOST` | `127.0.0.1` | Server bind address |
|
|
402
|
-
| `QUICKFORGE_PORT` | `32176` (dev) / `5176` (prod) | Backend server port; used by `qf` / `quickforge` by default |
|
|
403
|
-
| `QUICKFORGE_DESKTOP_PORT` | `5177` | Desktop app service port; separated from the default `qf` CLI port |
|
|
404
|
-
| `QUICKFORGE_VITE_PORT` | `5176` | Vite dev server port |
|
|
405
|
-
| `QUICKFORGE_MAX_BODY_BYTES` | `52428800` (50MB) | Max request body size |
|
|
406
|
-
|
|
407
|
-
### Data location
|
|
408
|
-
|
|
409
|
-
Located under `~/.quickforge/` by default (`%USERPROFILE%\.quickforge` on Windows):
|
|
410
|
-
|
|
411
|
-
- `config/config.json` — unified local config, including app settings, custom providers, provider API keys, and project list. This file may contain secrets; do not share it.
|
|
412
|
-
- `storage/` — persistent conversations, indexes, shares, and related data.
|
|
413
|
-
- `cache/` — removable cache files.
|
|
414
|
-
- `logs/` — local logs.
|
|
415
|
-
|
|
416
|
-
### Tech stack
|
|
417
|
-
|
|
418
|
-
| Layer | Technology |
|
|
419
|
-
|---|---|
|
|
420
|
-
| Frontend | React 19, Vite 8, Tailwind CSS 4, TypeScript |
|
|
421
|
-
| UI | shadcn-style primitives, Lucide icons, `@earendil-works/pi-web-ui` |
|
|
422
|
-
| Agent / model orchestration | `@earendil-works/pi-agent-core`, `@earendil-works/pi-ai`, MCP SDK |
|
|
423
|
-
| Server | Node.js ESM, plain `http` module |
|
|
424
|
-
| Storage | Local JSON files under `~/.quickforge/` by default |
|
|
425
|
-
|
|
426
|
-
### Project structure
|
|
427
|
-
|
|
428
|
-
```text
|
|
429
|
-
├── bin/quickforge.mjs # CLI entry point
|
|
430
|
-
├── desktop/ # Electron desktop entry for Windows/macOS/Linux builds
|
|
431
|
-
├── server/ # Local API, storage, agents, tools, MCP, sharing, and task service
|
|
432
|
-
│ └── public-api.mjs # startup API reused by npm import and Desktop
|
|
433
|
-
├── src/ # React frontend
|
|
434
|
-
├── skills/ # Bundled Agent Skills
|
|
435
|
-
├── scripts/ # Build and packaging helpers
|
|
436
|
-
├── public/ # Static assets
|
|
437
|
-
├── index.html # HTML entry
|
|
438
|
-
├── vite.config.ts # Vite + Tailwind config
|
|
439
|
-
└── package.json
|
|
440
|
-
```
|
|
441
|
-
|
|
442
|
-
### Documentation
|
|
443
|
-
|
|
444
|
-
- [中文使用教程](./docs/user-guide.zh-CN.md)
|
|
445
|
-
- [English User Guide](./docs/user-guide.en-US.md)
|
|
446
|
-
- [Project Wiki](./docs/wiki/README.md)
|
|
447
|
-
- [Contributing Guide](./CONTRIBUTING.md)
|
|
448
|
-
- [Security Policy](./SECURITY.md)
|
|
449
|
-
|
|
450
|
-
## License
|
|
451
|
-
|
|
452
|
-
[MIT](LICENSE)
|
|
1
|
+
<div align="center">
|
|
2
|
+
<img src="./desktop/assets/icon.svg" alt="QuickForge Logo" width="96" height="96" />
|
|
3
|
+
|
|
4
|
+
# 速构 QuickForge
|
|
5
|
+
|
|
6
|
+
### 让 AI 在你的项目里工作,而不只是停留在聊天框里
|
|
7
|
+
|
|
8
|
+
**本地优先 · 模型自选 · 权限可控的 AI 工程工作台**
|
|
9
|
+
|
|
10
|
+
QuickForge 将 AI 对话、项目上下文、本地工具、代码审查、Git、终端与自动化工作流整合在一个本地应用中。先理解项目,再制定计划;每一次文件修改和命令执行,都由你决定如何授权。
|
|
11
|
+
|
|
12
|
+
[下载桌面版](https://github.com/shawnstack/quickforge/releases/latest) · [npm 安装](#快速开始) · [核心能力](#核心能力) · [更新记录](./CHANGELOG.md)
|
|
13
|
+
|
|
14
|
+
[](https://www.npmjs.com/package/@shawnstack/quickforge)
|
|
15
|
+
[](https://www.npmjs.com/package/@shawnstack/quickforge)
|
|
16
|
+
[](https://github.com/shawnstack/quickforge/releases/latest)
|
|
17
|
+
[](https://nodejs.org/)
|
|
18
|
+
[](./LICENSE)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
<p align="center">
|
|
23
|
+
<img src="./welcome.png" alt="QuickForge 产品界面" width="920" />
|
|
24
|
+
</p>
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## QuickForge 能为你做什么?
|
|
29
|
+
|
|
30
|
+
把一个本地项目交给 QuickForge,你可以直接用自然语言完成从理解到交付的工程流程:
|
|
31
|
+
|
|
32
|
+
- **快速理解陌生项目**:阅读目录、搜索调用链、解释模块职责、梳理运行方式与风险。
|
|
33
|
+
- **规划后再动手**:使用 `/plan` 进行只读调研,先确认方案,再开始修改。
|
|
34
|
+
- **完成真实代码任务**:在工作区内读取、搜索、创建和精确编辑文件,并运行 lint、test、build 等命令。
|
|
35
|
+
- **随时检查改动**:在应用内查看文件、Markdown、Mermaid、HTML/SVG/图片预览、Git Diff 和工作区变更。
|
|
36
|
+
- **沉淀可复用流程**:通过 Agent Profiles、Subagent、Skills 和自定义命令复用团队规范与操作步骤。
|
|
37
|
+
- **连接更多能力**:使用 MCP、插件、ACP 和定时任务,把 AI 接入外部工具与自动化流程。
|
|
38
|
+
|
|
39
|
+
```mermaid
|
|
40
|
+
flowchart LR
|
|
41
|
+
A[添加模型与项目] --> B[使用 /plan 理解并规划]
|
|
42
|
+
B --> C[审批工具或授予完全访问]
|
|
43
|
+
C --> D[修改文件并运行验证]
|
|
44
|
+
D --> E[Review Diff 与 Git 变更]
|
|
45
|
+
E --> F[提交或继续迭代]
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
## 为什么选择 QuickForge?
|
|
49
|
+
|
|
50
|
+
<table>
|
|
51
|
+
<tr>
|
|
52
|
+
<td width="50%" valign="top">
|
|
53
|
+
|
|
54
|
+
### 🔌 你的模型,你来选择
|
|
55
|
+
|
|
56
|
+
QuickForge 不绑定单一模型厂商。你可以连接 OpenAI-compatible 或 Anthropic Messages API,以及 LiteLLM、OpenRouter、DeepSeek、Qwen、Ollama 等兼容服务。
|
|
57
|
+
|
|
58
|
+
</td>
|
|
59
|
+
<td width="50%" valign="top">
|
|
60
|
+
|
|
61
|
+
### 🛡️ 默认安全,按需授权
|
|
62
|
+
|
|
63
|
+
默认权限下,读取和搜索可直接执行;写文件、运行命令、调用 MCP/插件等可能改变状态的操作会请求确认。需要连续执行时,也可以主动授予完全访问权限。
|
|
64
|
+
|
|
65
|
+
</td>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td width="50%" valign="top">
|
|
69
|
+
|
|
70
|
+
### 🧩 对话与工程工作区一体化
|
|
71
|
+
|
|
72
|
+
聊天、文件阅读、代码预览、工具过程、Review、Git 和终端集中在同一界面。不必在多个应用之间反复复制上下文和执行结果。
|
|
73
|
+
|
|
74
|
+
</td>
|
|
75
|
+
<td width="50%" valign="top">
|
|
76
|
+
|
|
77
|
+
### 💻 本地优先,不需要 QuickForge 账号
|
|
78
|
+
|
|
79
|
+
会话、项目、模型配置、记忆、缓存和日志默认保存在你的电脑中。模型请求发送到你自己配置的服务商,QuickForge 负责本地界面、存储和工具编排。
|
|
80
|
+
|
|
81
|
+
</td>
|
|
82
|
+
</tr>
|
|
83
|
+
</table>
|
|
84
|
+
|
|
85
|
+
## 快速开始
|
|
86
|
+
|
|
87
|
+
### 方式一:下载桌面版
|
|
88
|
+
|
|
89
|
+
前往 [GitHub Releases](https://github.com/shawnstack/quickforge/releases/latest) 查看可用的 Windows、macOS 和 Linux 安装包。
|
|
90
|
+
|
|
91
|
+
桌面应用内置 QuickForge 运行时,日常使用无需额外安装全局 `qf` 命令。MCP Server、外部编辑器等扩展能力仍可能依赖相应的本地程序。
|
|
92
|
+
|
|
93
|
+
### 方式二:通过 npm 安装
|
|
94
|
+
|
|
95
|
+
需要 [Node.js 22.19+](https://nodejs.org/) 和 npm:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
npm install -g @shawnstack/quickforge@latest
|
|
99
|
+
qf
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
`qf` 会启动本地服务并自动打开浏览器。常用命令:
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
qf status # 查看运行状态
|
|
106
|
+
qf logs # 查看日志
|
|
107
|
+
qf restart # 重启服务
|
|
108
|
+
qf stop # 停止服务
|
|
109
|
+
qf check-update # 检查更新
|
|
110
|
+
qf update # 更新到新版本
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### 配置你的第一个模型
|
|
114
|
+
|
|
115
|
+
QuickForge 不内置默认模型。首次打开后,点击 **添加模型**,填写 Provider、API 地址、模型 ID 和 API Key 即可开始。
|
|
116
|
+
|
|
117
|
+
以 OpenAI-compatible 服务为例:
|
|
118
|
+
|
|
119
|
+
```text
|
|
120
|
+
Provider name: OpenRouter / DeepSeek / LiteLLM / Ollama
|
|
121
|
+
Protocol type: OpenAI Compatible
|
|
122
|
+
Base URL: 服务商提供的 API 地址,通常以 /v1 结尾
|
|
123
|
+
Model ID: 服务商提供的模型 ID
|
|
124
|
+
API Key: 本地模型或部分代理服务可留空
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
> API Key 和模型配置保存在本机。请勿提交或分享 `~/.quickforge/` 目录中的敏感配置。
|
|
128
|
+
|
|
129
|
+
### 第一次使用建议
|
|
130
|
+
|
|
131
|
+
1. 添加一个模型。
|
|
132
|
+
2. 新建普通对话,或添加一个本地项目。
|
|
133
|
+
3. 先输入:
|
|
134
|
+
|
|
135
|
+
```text
|
|
136
|
+
/plan 阅读这个项目,说明项目结构、运行方式和主要风险。先不要修改文件。
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
4. 确认计划后,让 Agent 完成一个小改动。
|
|
140
|
+
5. 在 **Review** 中检查 Diff,并运行项目的 lint、test 或 build。
|
|
141
|
+
6. 确认无误后提交,或继续让 Agent 调整。
|
|
142
|
+
|
|
143
|
+
## 核心能力
|
|
144
|
+
|
|
145
|
+
### AI 对话与上下文管理
|
|
146
|
+
|
|
147
|
+
- 流式回复、停止生成、复制、回滚、重试与对话分支
|
|
148
|
+
- 草稿恢复、会话置顶、归档、搜索和长对话压缩
|
|
149
|
+
- 图片附件与视觉模型配置
|
|
150
|
+
- `/init`、`/plan`、`/review`、`/summary`、`/compact`、`/help` 等内置命令;`/init` 会调研当前仓库并生成或更新根目录 `AGENTS.md` 贡献者指南
|
|
151
|
+
- 跨对话、跨项目的全局记忆,可在设置中查看、编辑或关闭
|
|
152
|
+
|
|
153
|
+
### 项目与本地工具
|
|
154
|
+
|
|
155
|
+
- 普通对话使用默认本地工作区,项目对话绑定你选择的目录
|
|
156
|
+
- 读取文件、搜索代码、创建文件、精确编辑与命令执行
|
|
157
|
+
- 文件路径限制在当前工作区内,并阻止访问 `.env`、私钥、凭据文件和 `.git/` 等敏感路径
|
|
158
|
+
- 命令输出回传对话,运行中的命令可终止
|
|
159
|
+
- 在资源管理器、VS Code 或 IntelliJ IDEA 中打开项目和文件
|
|
160
|
+
|
|
161
|
+
### Review、Git 与终端
|
|
162
|
+
|
|
163
|
+
- 工作区变更汇总与单文件 Diff
|
|
164
|
+
- 暂存、取消暂存、还原、提交与推送
|
|
165
|
+
- 分支查看、搜索、创建、切换与 Git 图谱
|
|
166
|
+
- AI 生成并编辑提交信息
|
|
167
|
+
- 多标签文件阅读与预览
|
|
168
|
+
- 集成终端(可用性取决于运行方式和本地环境)
|
|
169
|
+
|
|
170
|
+
### Agent 工作流
|
|
171
|
+
|
|
172
|
+
- 内置 `explore` 与 `general` Agent Profiles
|
|
173
|
+
- 自定义 Agent 的系统提示词、模型、思考等级、工具白名单和运行预算
|
|
174
|
+
- 将边界清晰的任务委托给 Subagent
|
|
175
|
+
- 加载 Claude、opencode、共享目录及 QuickForge 格式的 Skills
|
|
176
|
+
- 用户级、项目级和插件级自定义命令
|
|
177
|
+
|
|
178
|
+
### 扩展与自动化
|
|
179
|
+
|
|
180
|
+
- MCP:支持 stdio、SSE 和 Streamable HTTP
|
|
181
|
+
- 本地插件:扩展 Tools、Skills 与 Commands
|
|
182
|
+
- ACP:通过 `qf acp` 接入兼容 IDE 或客户端
|
|
183
|
+
- 定时任务:一次性、每日、每周、每月、固定间隔和 cron
|
|
184
|
+
- 对话分享:只读或可操作链接、密码、有效期和撤销
|
|
185
|
+
- 设置备份与恢复:按配置区域选择导出或导入
|
|
186
|
+
|
|
187
|
+
## 权限、安全与隐私
|
|
188
|
+
|
|
189
|
+
QuickForge 可以操作本地文件并运行命令,因此请在使用前了解边界:
|
|
190
|
+
|
|
191
|
+
| 机制 | 行为 |
|
|
192
|
+
|---|---|
|
|
193
|
+
| 默认权限 | 安全读取和搜索自动执行;写入、命令、MCP、插件等操作请求确认 |
|
|
194
|
+
| 完全访问权限 | 在当前工作区和敏感路径保护范围内自动执行工具,适合可信项目与可信模型 |
|
|
195
|
+
| 工作区限制 | 文件工具不能访问当前工作区之外的路径,并校验符号链接的真实位置 |
|
|
196
|
+
| 敏感文件保护 | 默认阻止 `.env`、私钥、证书、凭据文件和 `.git/` 等路径 |
|
|
197
|
+
| Shell 命令 | 以当前操作系统用户权限运行,**不是系统级沙箱** |
|
|
198
|
+
| 本地数据 | 默认存储在 `~/.quickforge/`;模型请求会发送到你配置的模型服务商 |
|
|
199
|
+
|
|
200
|
+
建议在重要项目中:
|
|
201
|
+
|
|
202
|
+
- 先提交 Git 或创建备份,再授权 AI 修改文件。
|
|
203
|
+
- 默认使用 `/plan` 调研复杂任务,不要直接要求大范围改动。
|
|
204
|
+
- 只在可信模型、可信项目中使用完全访问权限。
|
|
205
|
+
- 配置局域网完整访问或可操作分享时,使用强密码并控制网络范围。
|
|
206
|
+
|
|
207
|
+
更多说明请查看 [安全策略](./SECURITY.md)。
|
|
208
|
+
|
|
209
|
+
## 支持的运行方式
|
|
210
|
+
|
|
211
|
+
| 方式 | 适合谁 | 说明 |
|
|
212
|
+
|---|---|---|
|
|
213
|
+
| Desktop | 希望开箱即用的用户 | Windows / macOS / Linux 桌面入口,内置运行时 |
|
|
214
|
+
| npm CLI | 开发者与高级用户 | `npm install -g @shawnstack/quickforge@latest`,需要 Node.js 22.19+ |
|
|
215
|
+
| Node.js SDK | 需要嵌入本地服务的应用 | 通过 `startQuickForge()` 启动 QuickForge |
|
|
216
|
+
| ACP Agent | IDE 与 Agent 客户端集成 | 使用 `qf acp` 暴露 stdio ACP Agent |
|
|
217
|
+
|
|
218
|
+
<details>
|
|
219
|
+
<summary><strong>Node.js SDK 示例</strong></summary>
|
|
220
|
+
|
|
221
|
+
```js
|
|
222
|
+
import { startQuickForge } from '@shawnstack/quickforge'
|
|
223
|
+
|
|
224
|
+
const app = await startQuickForge({
|
|
225
|
+
host: '127.0.0.1',
|
|
226
|
+
port: 5176,
|
|
227
|
+
})
|
|
228
|
+
|
|
229
|
+
console.log(app.url)
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
</details>
|
|
233
|
+
|
|
234
|
+
## 数据存储
|
|
235
|
+
|
|
236
|
+
默认数据目录为 `~/.quickforge/`,Windows 通常对应 `%USERPROFILE%\.quickforge`:
|
|
237
|
+
|
|
238
|
+
```text
|
|
239
|
+
~/.quickforge/
|
|
240
|
+
├── config/ # 应用、模型、MCP、插件和项目等配置
|
|
241
|
+
├── storage/ # 会话、索引、分享等持久化数据
|
|
242
|
+
├── cache/ # 可重新生成的缓存
|
|
243
|
+
├── agents/ # 用户 Agent Profiles
|
|
244
|
+
├── workspace/ # 普通对话的默认工作区
|
|
245
|
+
├── MEMORY.md # 可选的全局记忆
|
|
246
|
+
└── logs/ # 本地日志
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
其中可能包含 API Key、项目路径、对话内容和命令日志,请勿公开分享整个数据目录。
|
|
250
|
+
|
|
251
|
+
## 文档与帮助
|
|
252
|
+
|
|
253
|
+
- [中文使用教程](./docs/user-guide.zh-CN.md)
|
|
254
|
+
- [English User Guide](./docs/user-guide.en-US.md)
|
|
255
|
+
- [更新记录](./CHANGELOG.md)
|
|
256
|
+
- [项目 Wiki](./docs/wiki/README.md)
|
|
257
|
+
- [安全策略](./SECURITY.md)
|
|
258
|
+
- [贡献指南](./CONTRIBUTING.md)
|
|
259
|
+
- [GitHub Releases](https://github.com/shawnstack/quickforge/releases/latest)
|
|
260
|
+
- [问题反馈](https://github.com/shawnstack/quickforge/issues)
|
|
261
|
+
|
|
262
|
+
## 本地开发
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
git clone https://github.com/shawnstack/quickforge.git
|
|
266
|
+
cd quickforge
|
|
267
|
+
npm ci
|
|
268
|
+
npm run dev
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
提交改动前建议运行:
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
npm run lint
|
|
275
|
+
npm run test
|
|
276
|
+
npm run build
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
架构和模块导航请查看 [代码 Wiki](./docs/wiki/README.md),贡献要求请查看 [CONTRIBUTING.md](./CONTRIBUTING.md)。
|
|
280
|
+
|
|
281
|
+
## License
|
|
282
|
+
|
|
283
|
+
QuickForge 基于 [MIT License](./LICENSE) 开源。
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
<div align="center">
|
|
288
|
+
|
|
289
|
+
如果 QuickForge 对你有帮助,欢迎点一个 **Star**。<br />
|
|
290
|
+
你的反馈、Issue 和贡献,会帮助它成为更好用的本地 AI 工程工作台。
|
|
291
|
+
|
|
292
|
+
</div>
|