@akira-tl/forgerelay 0.10.5 → 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/CHANGELOG.md +7 -0
- package/README.md +149 -285
- package/docs/roadmap.md +3 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,13 @@ All notable ForgeRelay changes are documented here.
|
|
|
4
4
|
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [1.0.0] - 2026-09-07
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Declared ForgeRelay 1.0 as the stable baseline for the current MCP, CLI, persistent Workspace, managed-worktree, Relay/Composite, Code Intelligence, Hook, Task, Activity/Audit, recovery/checkpoint, and native cross-platform Command Shell Runtime contracts.
|
|
12
|
+
- Reworked the README and GitHub Wiki around first-run usage, added the ForgeRelay brand assets and Activity Panel preview, and kept upstream DevSpace provenance explicit through the existing MIT attribution and NOTICE.
|
|
13
|
+
|
|
7
14
|
## [0.10.5] - 2026-09-06
|
|
8
15
|
|
|
9
16
|
### Changed
|
package/README.md
CHANGED
|
@@ -1,381 +1,252 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="docs/assets/forgerelay-lockup-dark.png">
|
|
4
|
+
<img src="docs/assets/forgerelay-lockup-light.png" alt="ForgeRelay" width="620">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
2
7
|
|
|
3
|
-
|
|
8
|
+
<p align="center">
|
|
9
|
+
<strong>Use MCP coding agents on the projects and tools already on your machine.</strong><br>
|
|
10
|
+
<strong>让 MCP 编程 Agent 直接使用你电脑上现有的项目和开发工具。</strong>
|
|
11
|
+
</p>
|
|
4
12
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
13
|
+
<p align="center">
|
|
14
|
+
<a href="#中文">中文</a> · <a href="#english">English</a>
|
|
15
|
+
</p>
|
|
8
16
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
installation you already use.
|
|
17
|
+
<p align="center">
|
|
18
|
+
<a href="https://www.npmjs.com/package/@akira-tl/forgerelay"><img src="https://img.shields.io/npm/v/%40akira-tl%2Fforgerelay?style=flat-square" alt="npm"></a>
|
|
19
|
+
<a href="https://github.com/Akira-TL/forgerelay/actions/workflows/release.yml"><img src="https://img.shields.io/github/actions/workflow/status/Akira-TL/forgerelay/release.yml?style=flat-square&label=release" alt="Release"></a>
|
|
20
|
+
<a href="LICENSE"><img src="https://img.shields.io/npm/l/%40akira-tl%2Fforgerelay?style=flat-square" alt="License"></a>
|
|
21
|
+
</p>
|
|
15
22
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
<p align="center">
|
|
24
|
+
<img src="docs/assets/forgerelay-ui-preview.png" alt="ForgeRelay Activity Panel" width="640">
|
|
25
|
+
</p>
|
|
19
26
|
|
|
20
|
-
|
|
21
|
-
> ForgeRelay is an independently maintained derivative of the MIT-licensed
|
|
22
|
-
> [Waishnav/devspace](https://github.com/Waishnav/devspace) project. It is not an
|
|
23
|
-
> official DevSpace release. The original copyright notice and license are kept
|
|
24
|
-
> in [LICENSE](LICENSE), with additional provenance in [NOTICE.md](NOTICE.md).
|
|
27
|
+
# 中文
|
|
25
28
|
|
|
26
|
-
|
|
29
|
+
ForgeRelay 是一个运行在你自己机器上的 MCP Server。它解决的是一个很实际的问题:ChatGPT 这类 Host 会写代码,但默认碰不到你电脑上的项目、Shell 和 Git。
|
|
27
30
|
|
|
28
|
-
ForgeRelay
|
|
31
|
+
把 ForgeRelay 接上以后,Agent 就能直接在你现有的仓库里改文件、跑测试和构建、执行 Git、调用语言服务器,并继续使用你已经装好的工具链。项目不用搬到另一套工作目录,也不用为了这件事再换一套 Coding Agent。
|
|
29
32
|
|
|
30
|
-
|
|
33
|
+
## 安装
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
npm install -g @akira-tl/forgerelay
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
Then configure and start it:
|
|
35
|
+
需要 Node.js `>=22.19 <27`、npm 和 Git。
|
|
37
36
|
|
|
38
37
|
```bash
|
|
38
|
+
npm install -g @akira-tl/forgerelay
|
|
39
39
|
forgerelay init
|
|
40
40
|
forgerelay serve
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
不想全局安装也可以:
|
|
44
44
|
|
|
45
45
|
```bash
|
|
46
46
|
npx @akira-tl/forgerelay init
|
|
47
47
|
npx @akira-tl/forgerelay serve
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
默认 MCP 地址:
|
|
51
51
|
|
|
52
52
|
```text
|
|
53
53
|
http://127.0.0.1:7676/mcp
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
-
|
|
57
|
-
tunnel or reverse proxy such as Cloudflare Tunnel, ngrok, Pinggy, Tailscale
|
|
58
|
-
Funnel, or your own proxy. Setup separates **Direct LAN** (`0.0.0.0`) from
|
|
59
|
-
**HTTPS reverse proxy / tunnel** (`127.0.0.1` with loopback-only proxy trust), so
|
|
60
|
-
you do not need to choose a bind address manually. During setup, enter the public
|
|
61
|
-
base URL before the final `/mcp`; routed prefixes are allowed:
|
|
62
|
-
|
|
63
|
-
```text
|
|
64
|
-
https://your-tunnel-host.example.com/forgerelay/main
|
|
65
|
-
```
|
|
56
|
+
`forgerelay init` 会让你选择允许访问的项目目录,并生成 Owner password。第一次连接 MCP Host 时,用这个密码批准客户端。
|
|
66
57
|
|
|
67
|
-
|
|
58
|
+
检查当前实际生效的配置和 Shell:
|
|
68
59
|
|
|
69
|
-
```
|
|
70
|
-
|
|
60
|
+
```bash
|
|
61
|
+
forgerelay doctor
|
|
71
62
|
```
|
|
72
63
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
boundary. If the only configured route is `/forgerelay/main`, MCP/OAuth/health/App
|
|
77
|
-
routes are served below that prefix rather than in parallel at naked `/mcp`,
|
|
78
|
-
`/authorize`, or `/healthz` paths.
|
|
64
|
+
### ChatGPT 访问不到 localhost?
|
|
65
|
+
|
|
66
|
+
如果 Host 运行在云端,需要给 ForgeRelay 一个公网 HTTPS 入口。Cloudflare Tunnel、ngrok、Tailscale Funnel 或普通反向代理都可以。
|
|
79
67
|
|
|
80
|
-
|
|
81
|
-
the password and stores it in the active config directory. New installations use:
|
|
68
|
+
假设公网地址是:
|
|
82
69
|
|
|
83
70
|
```text
|
|
84
|
-
|
|
85
|
-
~/.forgerelay/auth.json
|
|
71
|
+
https://forge.example.com/forgerelay
|
|
86
72
|
```
|
|
87
73
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
## What it gives an MCP host
|
|
74
|
+
那么 Host 连接:
|
|
91
75
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
- run your local tests, builds, package scripts, Git commands, and shell tools;
|
|
96
|
-
- reuse the same workspace when the same checkout is opened again;
|
|
97
|
-
- follow repository instructions from `AGENTS.md` and `CLAUDE.md`;
|
|
98
|
-
- discover Agent Skills and configured local subagent profiles;
|
|
99
|
-
- create a branch-backed Git worktree when you explicitly ask for isolated or
|
|
100
|
-
parallel work;
|
|
101
|
-
- close a managed worktree by committing its remaining changes and
|
|
102
|
-
fast-forwarding the target branch when that can be done safely;
|
|
103
|
-
- show aggregate changes through optional ChatGPT Apps-compatible UI cards;
|
|
104
|
-
- run user-configured lifecycle hooks around tool calls, file changes, managed
|
|
105
|
-
worktree close, and local subagent execution.
|
|
106
|
-
|
|
107
|
-
Normal work happens in your existing checkout. ForgeRelay does not silently move
|
|
108
|
-
every task into a worktree.
|
|
76
|
+
```text
|
|
77
|
+
https://forge.example.com/forgerelay/mcp
|
|
78
|
+
```
|
|
109
79
|
|
|
110
|
-
|
|
80
|
+
`publicBaseUrl` 填到 `/mcp` 之前。更完整的 OAuth、Tunnel 和反向代理说明见 [快速开始](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)。
|
|
111
81
|
|
|
112
|
-
|
|
113
|
-
one Host-facing working context while preserving each member Workspace as a separate
|
|
114
|
-
execution boundary. For example, `code` can point at a local checkout while
|
|
115
|
-
`compute` points through Workspace Relay at a GPU machine.
|
|
82
|
+
## 用起来是什么样
|
|
116
83
|
|
|
117
|
-
|
|
84
|
+
正常情况下,Agent 打开你现有的 checkout,然后直接在里面工作:
|
|
118
85
|
|
|
119
86
|
```text
|
|
120
|
-
open_workspace(
|
|
121
|
-
open_workspace({
|
|
122
|
-
action: "member",
|
|
123
|
-
workspaceId: "cws_...",
|
|
124
|
-
memberAction: "add",
|
|
125
|
-
member: {
|
|
126
|
-
name: "compute",
|
|
127
|
-
purpose: "GPU and high-performance computation",
|
|
128
|
-
path: "/srv/research",
|
|
129
|
-
relay: "gpu-server"
|
|
130
|
-
}
|
|
131
|
-
})
|
|
87
|
+
open_workspace(path="~/project")
|
|
132
88
|
```
|
|
133
89
|
|
|
134
|
-
|
|
90
|
+
之后它可以读取和修改文件,也可以运行真实命令:
|
|
135
91
|
|
|
136
92
|
```text
|
|
137
|
-
read(
|
|
138
|
-
bash(
|
|
93
|
+
read(path="src/server.ts")
|
|
94
|
+
bash(command="npm test")
|
|
95
|
+
bash(command="git status --short")
|
|
139
96
|
```
|
|
140
97
|
|
|
141
|
-
ForgeRelay
|
|
142
|
-
shell/platform identity, privilege state, or audit facts, and it never infers a member from the tool type or purpose text. `memberContext.executionContext` reports the selected member's actual execution platform and Command Shell Runtime; it overrides the Gateway shell identity for commands routed to that member.
|
|
143
|
-
The Composite Activity Panel presents member operations in one Host Turn while the
|
|
144
|
-
actual facts remain owned by the member Workspace. `close_workspace` on a Composite
|
|
145
|
-
Workspace now preserves the Composite identity and member topology as `closed`; a
|
|
146
|
-
later `open_workspace` restores the same `cws_...` identity. `action="delete"` is the
|
|
147
|
-
explicit dissolve operation. Neither close nor delete closes member Workspaces,
|
|
148
|
-
finalizes their worktrees, stops their jobs, changes their files, or removes relay routes.
|
|
149
|
-
|
|
150
|
-
### Progressive MCP context
|
|
151
|
-
|
|
152
|
-
ForgeRelay keeps the callable MCP surface and its low-frequency operating manuals
|
|
153
|
-
separate. `tools/list` remains the source of truth for tools the current server
|
|
154
|
-
actually exposes. `open_workspace` returns a compact version/capability fingerprint
|
|
155
|
-
and, on bootstrap, short descriptors for relevant ForgeRelay capability guides.
|
|
156
|
-
The Agent can load a task-specific guide with `read` instead of receiving every
|
|
157
|
-
Hook, worktree, subagent, artifact, OAuth, MCP App, PTY, and process edge case on
|
|
158
|
-
every connection.
|
|
159
|
-
|
|
160
|
-
The fingerprint also helps diagnose stale MCP Host metadata: if the running server
|
|
161
|
-
reports a semantic capability but the Host still shows an older tool snapshot,
|
|
162
|
-
refresh or reconnect the integration rather than assuming the capability is
|
|
163
|
-
missing from ForgeRelay.
|
|
164
|
-
|
|
165
|
-
## LSP code intelligence
|
|
166
|
-
|
|
167
|
-
ForgeRelay 0.4 LSP v1 exposes semantic code navigation through the
|
|
168
|
-
`code.intelligence` Capability without adding language-specific top-level MCP tools.
|
|
169
|
-
The v1 operations are definition, hover/type information, references, document
|
|
170
|
-
symbols, workspace symbols, and diagnostics. Results use ForgeRelay-owned normalized
|
|
171
|
-
locations, ranges, symbols, hover content, and diagnostic shapes rather than raw LSP
|
|
172
|
-
wire unions.
|
|
173
|
-
|
|
174
|
-
Language servers are never installed automatically or without user authorization.
|
|
175
|
-
ForgeRelay can discover configured or `PATH`-available servers, and `forgerelay init`
|
|
176
|
-
can optionally enable Agent-managed installation of TypeScript/JavaScript and Pyright
|
|
177
|
-
inside ForgeRelay's private config directory. That permission is disabled by default;
|
|
178
|
-
a successful managed install becomes available to the same running ForgeRelay process
|
|
179
|
-
on the next semantic request without a restart. `rust-analyzer`, `gopls`, and `clangd`
|
|
180
|
-
remain external toolchain/system installations. See
|
|
181
|
-
[Configuration Reference](docs/configuration.md#lsp-code-intelligence) and
|
|
182
|
-
[`examples/language-servers.json`](examples/language-servers.json).
|
|
183
|
-
|
|
184
|
-
## Worktrees without the usual cleanup mess
|
|
185
|
-
|
|
186
|
-
A new managed worktree gets its own `forgerelay/*` branch instead of a detached
|
|
187
|
-
HEAD. It remains visible from the source repository with ordinary Git commands:
|
|
98
|
+
ForgeRelay 不会默认为每个任务创建 worktree。只有你明确要求隔离或并行开发时,才使用 managed worktree。
|
|
188
99
|
|
|
189
|
-
|
|
190
|
-
git worktree list
|
|
191
|
-
git branch
|
|
192
|
-
```
|
|
100
|
+
长命令也不会要求 Agent 高频轮询。命令超过当前等待窗口时会返回稳定的 `processId`,后续继续等待或中断同一个进程即可。
|
|
193
101
|
|
|
194
|
-
|
|
102
|
+
## 主要能力
|
|
195
103
|
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
104
|
+
- 文件、Shell、Git、测试、构建和项目脚本都在你的机器上运行。
|
|
105
|
+
- Linux / macOS 可以用 Bash、zsh、POSIX sh;Windows 原生支持 PowerShell 7、Windows PowerShell 5.1 和 `cmd.exe`。
|
|
106
|
+
- 同一个 checkout 会保留自己的 Workspace 身份。换一次对话,不需要重新创建工作区。
|
|
107
|
+
- `code.intelligence` 可以查 definition、hover、references、symbols 和 diagnostics。
|
|
108
|
+
- 项目里的 `AGENTS.md`、`CLAUDE.md` 和 Agent Skills 按需加载,不会每次都把整套说明重新塞进上下文。
|
|
109
|
+
- 需要并行开发时可以创建真实 Git worktree;集成回主分支时只接受安全的 fast-forward,不自动制造 merge conflict。
|
|
110
|
+
- Workspace Relay 可以把执行放到另一台 ForgeRelay;Composite Workspace 可以同时协调几个独立环境。
|
|
201
111
|
|
|
202
|
-
|
|
203
|
-
place. ForgeRelay does not put the source checkout into a merge-conflict state.
|
|
204
|
-
You can rebase and verify inside the worktree, then retry the close.
|
|
112
|
+
Lifecycle Hooks、Workspace Tasks、本地 Subagent、Activity/Audit、Checkpoint 和 Recovery 也已经包含在项目里,但第一次安装时不需要先学这些。需要哪个,再去 [Wiki](https://github.com/Akira-TL/forgerelay/wiki) 查哪个。
|
|
205
113
|
|
|
206
|
-
|
|
114
|
+
ForgeRelay 默认直接用现有 checkout。它不会偷偷创建 worktree、复制 Git ignored 文件、安装 Language Server,也不捆绑 Codex、Claude Code、Pi 之类的本地 Coding Agent runtime。
|
|
207
115
|
|
|
208
|
-
|
|
116
|
+
## 安全
|
|
209
117
|
|
|
210
|
-
|
|
118
|
+
ForgeRelay 给 Agent 的是真实本机执行权限,不是模拟环境。
|
|
211
119
|
|
|
212
|
-
|
|
213
|
-
{
|
|
214
|
-
"event": "BeforeTool",
|
|
215
|
-
"matcher": {
|
|
216
|
-
"tool": "bash",
|
|
217
|
-
"commandRegex": "git\\s+push\\s+origin\\s+v\\d+\\.\\d+\\.\\d+"
|
|
218
|
-
},
|
|
219
|
-
"command": "node scripts/release-proof.mjs check-hook",
|
|
220
|
-
"timeoutSeconds": 30,
|
|
221
|
-
"report": true
|
|
222
|
-
}
|
|
223
|
-
```
|
|
120
|
+
文件工具受 Workspace 和 allowed roots 限制;Shell 命令使用启动 ForgeRelay 的本地用户权限执行,**Shell 不是 OS sandbox**。因此只连接你信任的 MCP Host,只开放确实需要的项目目录,并保护好 Owner password。
|
|
224
121
|
|
|
225
|
-
|
|
122
|
+
ForgeRelay 默认拒绝 elevated / administrator 启动。只有你显式选择高权限运行时才会继续,并会提示系统级修改可能不可逆。
|
|
226
123
|
|
|
227
|
-
|
|
124
|
+
完整边界见 [安全模型](https://github.com/Akira-TL/forgerelay/wiki/Security)。
|
|
228
125
|
|
|
229
|
-
|
|
126
|
+
## 文档
|
|
230
127
|
|
|
231
|
-
|
|
232
|
-
forgerelay
|
|
233
|
-
forgerelay
|
|
234
|
-
|
|
235
|
-
|
|
128
|
+
- [快速开始](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)
|
|
129
|
+
- [配置](https://github.com/Akira-TL/forgerelay/wiki/Configuration)
|
|
130
|
+
- [安全模型](https://github.com/Akira-TL/forgerelay/wiki/Security)
|
|
131
|
+
- [故障排查](https://github.com/Akira-TL/forgerelay/wiki/Troubleshooting)
|
|
132
|
+
- [完整 Wiki](https://github.com/Akira-TL/forgerelay/wiki)
|
|
236
133
|
|
|
237
|
-
|
|
134
|
+
> [!NOTE]
|
|
135
|
+
> ForgeRelay 是基于 MIT License 的 [Waishnav/devspace](https://github.com/Waishnav/devspace) 独立衍生项目,不是官方 DevSpace Release。原始版权与 MIT License 保留在 [LICENSE](LICENSE),来源与修改说明见 [NOTICE.md](NOTICE.md)。
|
|
238
136
|
|
|
239
|
-
|
|
137
|
+
---
|
|
240
138
|
|
|
241
|
-
|
|
242
|
-
profiles. The current adapter layer supports Codex, Claude, OpenCode, Pi,
|
|
243
|
-
Cursor, and Copilot when the corresponding CLI is installed on the server.
|
|
244
|
-
ForgeRelay does not install or bundle those coding runtimes.
|
|
139
|
+
# English
|
|
245
140
|
|
|
246
|
-
|
|
141
|
+
ForgeRelay is a self-hosted MCP server for a practical gap: hosts such as ChatGPT can write code, but they do not normally have access to the projects, shells, and Git repositories on your machine.
|
|
247
142
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
143
|
+
Once ForgeRelay is connected, an Agent can edit the repository you already use, run tests and builds, execute Git, query language servers, and call your existing local toolchain. There is no separate project copy and no requirement to adopt another coding-agent runtime.
|
|
144
|
+
|
|
145
|
+
## Install
|
|
146
|
+
|
|
147
|
+
ForgeRelay requires Node.js `>=22.19 <27`, npm, and Git.
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npm install -g @akira-tl/forgerelay
|
|
151
|
+
forgerelay init
|
|
152
|
+
forgerelay serve
|
|
251
153
|
```
|
|
252
154
|
|
|
253
|
-
|
|
155
|
+
Or run it without a global install:
|
|
254
156
|
|
|
255
157
|
```bash
|
|
256
|
-
forgerelay
|
|
257
|
-
|
|
258
|
-
forgerelay agents show <id>
|
|
158
|
+
npx @akira-tl/forgerelay init
|
|
159
|
+
npx @akira-tl/forgerelay serve
|
|
259
160
|
```
|
|
260
161
|
|
|
261
|
-
|
|
262
|
-
remains useful for local diagnostics and manual session inspection.
|
|
162
|
+
The default MCP endpoint is:
|
|
263
163
|
|
|
264
|
-
|
|
164
|
+
```text
|
|
165
|
+
http://127.0.0.1:7676/mcp
|
|
166
|
+
```
|
|
265
167
|
|
|
266
|
-
|
|
168
|
+
`forgerelay init` asks which project roots may be opened and generates an Owner password. Use that password to approve an MCP client on its first connection.
|
|
267
169
|
|
|
268
|
-
|
|
170
|
+
To see the configuration and Command Shell Runtime ForgeRelay actually resolved:
|
|
269
171
|
|
|
270
172
|
```bash
|
|
271
|
-
|
|
272
|
-
FORGERELAY_PUBLIC_BASE_URL="https://forge.example.com" \
|
|
273
|
-
forgerelay serve
|
|
173
|
+
forgerelay doctor
|
|
274
174
|
```
|
|
275
175
|
|
|
276
|
-
|
|
176
|
+
### Host cannot reach localhost?
|
|
277
177
|
|
|
278
|
-
|
|
178
|
+
Cloud-hosted MCP clients need a public HTTPS route to ForgeRelay. Cloudflare Tunnel, ngrok, Tailscale Funnel, or a normal reverse proxy all work.
|
|
179
|
+
|
|
180
|
+
For a public base URL such as:
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
https://forge.example.com/forgerelay
|
|
184
|
+
```
|
|
279
185
|
|
|
280
|
-
|
|
281
|
-
using the same local account that runs the server. That trust boundary matters.
|
|
186
|
+
the MCP client connects to:
|
|
282
187
|
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
188
|
+
```text
|
|
189
|
+
https://forge.example.com/forgerelay/mcp
|
|
190
|
+
```
|
|
286
191
|
|
|
287
|
-
|
|
288
|
-
the project roots you actually want the host to use.
|
|
192
|
+
Set `publicBaseUrl` before the final `/mcp`. See [Getting Started](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started) for OAuth, tunnels, and reverse-proxy setup.
|
|
289
193
|
|
|
290
|
-
|
|
194
|
+
## What using it looks like
|
|
291
195
|
|
|
292
|
-
|
|
196
|
+
For normal work, an Agent opens the checkout you already have:
|
|
293
197
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
| macOS | Supported | Bash is the primary POSIX compatibility target; zsh and POSIX sh are explicit native choices with shell-specific compatibility guidance. |
|
|
298
|
-
| Windows with PowerShell 7 (`pwsh`) | Supported | Agent commands, Hooks, pipe/PTY execution, packaged launcher, and editable shell Instructions use one native `pwsh` runtime without loading the user profile. |
|
|
299
|
-
| Windows with Windows PowerShell 5.1 (`powershell.exe`) | Supported | Agent commands, Hooks, pipe/PTY execution, packaged launcher, and editable shell Instructions use the selected 5.1 runtime with 5.1-specific syntax guidance. |
|
|
300
|
-
| Windows with `cmd.exe` | Supported | Agent commands, Hooks, pipe/ConPTY execution, packaged `.cmd` launcher, and editable shell Instructions preserve cmd syntax and runtime identity. |
|
|
301
|
-
| Windows with Git Bash, WSL, MSYS2, or Cygwin Bash | Compatibility path | Bash remains available when the selected executable provides the expected Bash command language. |
|
|
198
|
+
```text
|
|
199
|
+
open_workspace(path="~/project")
|
|
200
|
+
```
|
|
302
201
|
|
|
303
|
-
|
|
202
|
+
It can then work with files and run real local commands:
|
|
304
203
|
|
|
305
|
-
```
|
|
306
|
-
|
|
204
|
+
```text
|
|
205
|
+
read(path="src/server.ts")
|
|
206
|
+
bash(command="npm test")
|
|
207
|
+
bash(command="git status --short")
|
|
307
208
|
```
|
|
308
209
|
|
|
309
|
-
|
|
210
|
+
ForgeRelay does not create a worktree for every task. Managed worktrees are for cases where you explicitly want isolation or parallel development.
|
|
310
211
|
|
|
311
|
-
|
|
312
|
-
support, and worktree-close verification already shipped, the 0.9 line focuses on
|
|
313
|
-
Workspace recovery and history without expanding the canonical Core tool surface:
|
|
212
|
+
Long commands do not require tight polling either. Once the current wait window expires, ForgeRelay returns a stable `processId`; later calls wait on, interact with, or interrupt that same process.
|
|
314
213
|
|
|
315
|
-
|
|
316
|
-
2. persistent Workspace checkpoints and concurrency-safe restore;
|
|
317
|
-
3. owner-facing retention inspection and explicitly authorized maintenance.
|
|
214
|
+
## Highlights
|
|
318
215
|
|
|
319
|
-
|
|
320
|
-
or
|
|
321
|
-
|
|
322
|
-
|
|
216
|
+
- Files, shells, Git, tests, builds, and project scripts run on your machine.
|
|
217
|
+
- Linux/macOS can use Bash, zsh, or POSIX sh. Windows has native PowerShell 7, Windows PowerShell 5.1, and `cmd.exe` support.
|
|
218
|
+
- Reopening the same checkout reuses the same Workspace identity instead of creating another one for every conversation.
|
|
219
|
+
- `code.intelligence` provides definition, hover, references, symbols, and diagnostics.
|
|
220
|
+
- `AGENTS.md`, `CLAUDE.md`, and Agent Skills are loaded as needed instead of being resent in full on every open.
|
|
221
|
+
- Managed worktrees provide real Git isolation when you ask for parallel work, with fast-forward-only finalization.
|
|
222
|
+
- Workspace Relay runs work on another ForgeRelay instance; Composite Workspaces coordinate several independent environments from one Host.
|
|
323
223
|
|
|
324
|
-
|
|
224
|
+
Lifecycle Hooks, Workspace Tasks, local Subagents, Activity/Audit, checkpoints, and recovery are included too. They are optional parts of the workflow; the [Wiki](https://github.com/Akira-TL/forgerelay/wiki) documents them when you need them.
|
|
325
225
|
|
|
326
|
-
|
|
226
|
+
By default, ForgeRelay works in the checkout you already have. It does not silently create worktrees, copy Git-ignored files, install Language Servers, or bundle local coding runtimes such as Codex, Claude Code, or Pi.
|
|
327
227
|
|
|
328
|
-
|
|
228
|
+
## Security
|
|
329
229
|
|
|
330
|
-
|
|
230
|
+
ForgeRelay gives an Agent real local execution capability.
|
|
331
231
|
|
|
332
|
-
|
|
333
|
-
npm run release:check
|
|
334
|
-
npm run release:patch
|
|
335
|
-
npm run release:minor
|
|
336
|
-
npm run release:major
|
|
337
|
-
```
|
|
232
|
+
Filesystem tools are constrained by the opened Workspace and configured allowed roots. Shell commands run with the authority of the local user running ForgeRelay; **the shell is not an OS sandbox**. Connect only MCP hosts you trust, expose only project roots you want an Agent to access, and keep the Owner password private.
|
|
338
233
|
|
|
339
|
-
|
|
340
|
-
`main`, then push the matching `vX.Y.Z` tag. That tag is the only cloud CI and publish
|
|
341
|
-
trigger: GitHub Actions runs the reusable Linux/macOS/Windows verification matrix,
|
|
342
|
-
then publishes `@akira-tl/forgerelay` and creates the matching GitHub Release only
|
|
343
|
-
after all platforms succeed. `npm run release:verify` remains available only when a
|
|
344
|
-
cloud failure needs local reproduction against the pinned Node runtime; it is not a
|
|
345
|
-
release prerequisite.
|
|
234
|
+
Elevated / administrator startup is rejected by default. It only proceeds after explicit opt-in, with a warning that system-level AI-driven changes may be irreversible.
|
|
346
235
|
|
|
347
|
-
See [
|
|
348
|
-
Trusted Publishing setup.
|
|
236
|
+
See the [Security model](https://github.com/Akira-TL/forgerelay/wiki/Security) for the full boundary.
|
|
349
237
|
|
|
350
238
|
## Documentation
|
|
351
239
|
|
|
352
|
-
- [
|
|
353
|
-
- [
|
|
354
|
-
- [
|
|
355
|
-
- [
|
|
356
|
-
- [
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
- [
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
- [Versioning and Release Management](docs/reference/versioning.md)
|
|
363
|
-
- [GitHub Wiki Maintenance](docs/maintenance/wiki.md)
|
|
364
|
-
- [Changelog](CHANGELOG.md)
|
|
365
|
-
- [Attribution Notice](NOTICE.md)
|
|
366
|
-
|
|
367
|
-
## Upstream and attribution
|
|
368
|
-
|
|
369
|
-
ForgeRelay is based on the original
|
|
370
|
-
[Waishnav/devspace](https://github.com/Waishnav/devspace) project by Waishnav,
|
|
371
|
-
released under the MIT License. ForgeRelay has its own name, package, release
|
|
372
|
-
stream, runtime changes, and roadmap, but the upstream provenance remains part of
|
|
373
|
-
the project.
|
|
374
|
-
|
|
375
|
-
The original copyright notice remains in [LICENSE](LICENSE). See
|
|
376
|
-
[NOTICE.md](NOTICE.md) for the attribution and modification notice.
|
|
377
|
-
|
|
378
|
-
## Local development
|
|
240
|
+
- [Getting Started](https://github.com/Akira-TL/forgerelay/wiki/Getting-Started)
|
|
241
|
+
- [Configuration](https://github.com/Akira-TL/forgerelay/wiki/Configuration)
|
|
242
|
+
- [Security model](https://github.com/Akira-TL/forgerelay/wiki/Security)
|
|
243
|
+
- [Troubleshooting](https://github.com/Akira-TL/forgerelay/wiki/Troubleshooting)
|
|
244
|
+
- [Full Wiki](https://github.com/Akira-TL/forgerelay/wiki)
|
|
245
|
+
|
|
246
|
+
> [!NOTE]
|
|
247
|
+
> ForgeRelay is an independently maintained derivative of the MIT-licensed [Waishnav/devspace](https://github.com/Waishnav/devspace) project. It is not an official DevSpace release. The original copyright and MIT License remain in [LICENSE](LICENSE); provenance and modification details are documented in [NOTICE.md](NOTICE.md).
|
|
248
|
+
|
|
249
|
+
## Development
|
|
379
250
|
|
|
380
251
|
```bash
|
|
381
252
|
npm install --include=dev
|
|
@@ -386,11 +257,4 @@ npm test
|
|
|
386
257
|
npm run build
|
|
387
258
|
```
|
|
388
259
|
|
|
389
|
-
`npm run dev` uses the
|
|
390
|
-
to `127.0.0.1:7677`, keeping the normal `7676` product port free. The
|
|
391
|
-
`debug:accept` command starts a temporary 7677 server and sends real
|
|
392
|
-
HTTP/OAuth/MCP requests through it, including workspace tools, managed worktree
|
|
393
|
-
close, and Hooks v1 lifecycle recording. Debug state stays under the gitignored
|
|
394
|
-
`.forgerelay-debug/` directory.
|
|
395
|
-
|
|
396
|
-
See [Local Debugging](docs/debugging.md) for the exact configuration and scripts.
|
|
260
|
+
`npm run dev` uses the 7677 debug runtime. Product port 7676 is kept separate from development acceptance.
|
package/docs/roadmap.md
CHANGED
|
@@ -348,10 +348,9 @@ recovery, checkpoint, and retention facts; the Gateway only routes and presents
|
|
|
348
348
|
results. Development acceptance remains on isolated 7677/7678 instances and never uses
|
|
349
349
|
the normal 7676 installation.
|
|
350
350
|
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
the 0.10.x P3 work for PowerShell 7, Windows PowerShell 5.1, and `cmd.exe`.
|
|
351
|
+
Native Windows Command Shell Runtime support was intentionally kept out of the
|
|
352
|
+
0.9 recovery/history line and was subsequently delivered across the 0.10.x P3
|
|
353
|
+
work for PowerShell 7, Windows PowerShell 5.1, and `cmd.exe`.
|
|
355
354
|
|
|
356
355
|
## Workspace Task Lists
|
|
357
356
|
|