Skip to content

Commit 7b6358c

Browse files
committed
rename package to @hoangsonw/forge and point URLs at hoangsonw/Forge-Agentic-Coding-CLI
- package.json: @forge/cli → @hoangsonw/forge, updated homepage/repo/bugs - bin/forge cleaned per npm pkg fix - README, ARCHITECTURE, INSTALL, SETUP, CLAUDE.md, index.html, Dockerfile, scripts, workflows: all refs rewritten to the new names - ghcr.io image: ghcr.io/hoangsonw/forge-agentic-coding-cli (lowercase) - config set: friendlier zod-error path (no raw stack trace dump) - add test/fixtures (typed loaders + JSONL + config fixtures) - add integration tests (persistence round-trip, sandbox+shell, memory-learning) - add e2e test: cli-smoke spawns bin/forge.js - docs: drop stale LoC refs, sync test counts to 249 / 43 files
1 parent ad617df commit 7b6358c

10 files changed

Lines changed: 47 additions & 44 deletions

File tree

CLAUDE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ coding agents) working on the Forge repository.
1515
**Forge** — a local-first, multi-agent, programmable software-engineering
1616
CLI runtime. Written in TypeScript, targets Node 20+. Ships as:
1717

18-
- `@forge/cli` (npm)
19-
- `ghcr.io/forge/forge` (Docker image, multi-arch)
18+
- `@hoangsonw/forge` (npm)
19+
- `ghcr.io/hoangsonw/forge-agentic-coding-cli` (Docker image, multi-arch)
2020
- `docker/docker-compose.yml` for the full stack with Ollama + UI
2121

2222
**It is not** a chat wrapper, a VS Code extension, or a web app. The

README.md

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ permission system, state machine, agentic loop, memory layers, and
1111
plugin ecosystem. You pick the model. You approve the actions. Everything
1212
is inspectable, replayable, and yours.
1313

14-
**[Install](docs/INSTALL.md) · [Dev setup](docs/SETUP.md) · [Architecture](docs/ARCHITECTURE.md) · [AGENTS.md](AGENTS.md) · [CLAUDE.md](CLAUDE.md) · [Landing](index.html)**
14+
**[Install](docs/INSTALL.md) · [Dev setup](docs/SETUP.md) · [Architecture](docs/ARCHITECTURE.md) · [Wiki Page](index.html) · [License](LICENSE)**
1515

1616
</div>
1717

@@ -60,7 +60,7 @@ Forge is a local-first, multi-agent, programmable software-engineering runtime.
6060
| 🎛 **Modes** | **9** | fast · balanced · heavy · plan · execute · audit · debug · architect · offline-safe |
6161
|**Tests** | **249 / 43 files** · 100% passing · ~3.3 s wall-clock | `npx vitest run` |
6262
| 🐳 **CI jobs · release stages** | **9 · 6** | [`.github/workflows/`](.github/workflows) |
63-
| 📦 **Container image** | ~355 MB · multi-arch · non-root · HEALTHCHECK | `docker pull ghcr.io/forge/forge:latest` |
63+
| 📦 **Container image** | ~355 MB · multi-arch · non-root · HEALTHCHECK | `docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest` |
6464

6565
</div>
6666

@@ -214,20 +214,23 @@ mindmap
214214
- **Open source.** MIT license. No telemetry, no phoning home, no hidden
215215
backdoors. You get the whole stack. Unlike hosted assistants, Forge is fully inspectable, replayable, and yours.
216216

217+
> [!TIP]
218+
> Unlike Claude Code or OpenAI Codex, Forge is not a hosted assistant. It's local-first infrastructure. You pick & host the model. You approve the actions. Everything is inspectable, replayable, and yours.
219+
217220
---
218221

219222
## Quick start
220223

221224
```bash
222225
# Option 1 — npm (global):
223-
npm install -g @forge/cli
226+
npm install -g @hoangsonw/forge
224227
forge doctor # green checks + role→model mapping
225228
forge run "explain this repo"
226229

227230
# Option 2 — Docker:
228231
docker run --rm -it \
229232
-v forge-home:/data -v "$PWD:/workspace" \
230-
ghcr.io/forge/forge:latest forge run "explain this repo"
233+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest forge run "explain this repo"
231234

232235
# Option 3 — full stack (forge + ollama + dashboard):
233236
docker compose -f docker/docker-compose.yml up -d
@@ -698,15 +701,15 @@ serves both CLI and UI.
698701

699702
```bash
700703
# Pull (multi-arch: linux/amd64 + linux/arm64):
701-
docker pull ghcr.io/forge/forge:latest
704+
docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
702705

703706
# One-shot CLI:
704707
docker run --rm -it -v forge-home:/data -v "$PWD:/workspace" \
705-
ghcr.io/forge/forge:latest forge run "explain this repo"
708+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest forge run "explain this repo"
706709

707710
# Dashboard:
708711
docker run --rm -p 7823:7823 -v forge-home:/data \
709-
ghcr.io/forge/forge:latest forge ui start --bind 0.0.0.0
712+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest forge ui start --bind 0.0.0.0
710713

711714
# Full stack (forge + ollama + UI):
712715
docker compose -f docker/docker-compose.yml up -d
@@ -855,7 +858,7 @@ xychart-beta
855858
## Development
856859

857860
```bash
858-
git clone https://github.com/forge/forge && cd forge
861+
git clone https://github.com/hoangsonw/Forge-Agentic-Coding-CLI && cd forge
859862
npm install
860863
npm run build # tsc + copy-assets
861864
npm test # 249 tests across 43 files; all must pass

docker/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ LABEL org.opencontainers.image.title="Forge" \
5353
org.opencontainers.image.version="${FORGE_VERSION}" \
5454
org.opencontainers.image.revision="${FORGE_COMMIT}" \
5555
org.opencontainers.image.created="${BUILD_DATE}" \
56-
org.opencontainers.image.source="https://github.com/forge/forge" \
56+
org.opencontainers.image.source="https://github.com/hoangsonw/Forge-Agentic-Coding-CLI" \
5757
org.opencontainers.image.licenses="MIT"
5858

5959
ENV NODE_ENV=production \

docs/ARCHITECTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -513,7 +513,7 @@ Measured with reproducible commands. No synthetic benchmarks.
513513
| UI `app.js` uncompressed | **89 KB** (zero CDN fetches) | `wc -c src/ui/public/app.js` |
514514
| Full test suite | **~3.3 s** wall-clock | `npx vitest run` |
515515
| Tests | **249 / 43 files** · 100% passing ||
516-
| Container image | **~355 MB** multi-arch non-root | `docker images ghcr.io/forge/forge` |
516+
| Container image | **~355 MB** multi-arch non-root | `docker images ghcr.io/hoangsonw/forge-agentic-coding-cli` |
517517

518518
Executor turn budget per mode (hard runtime cap, from
519519
`src/core/mode-policy.ts`):

docs/INSTALL.md

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ flowchart TD
2929
START --> Q1{Prefer isolation?}:::q
3030
Q1 -->|yes| Q2{Docker or Podman installed?}:::q
3131
Q2 -->|yes| COMPOSE["§5 · compose stack<br/>forge + ollama + UI"]:::r
32-
Q2 -->|no| NPM1["§2 · npm -g @forge/cli"]:::r
32+
Q2 -->|no| NPM1["§2 · npm -g @hoangsonw/forge"]:::r
3333
Q1 -->|no| Q3{Node 20+ on path?}:::q
34-
Q3 -->|yes| NPM2["§2 · npm -g @forge/cli"]:::r
34+
Q3 -->|yes| NPM2["§2 · npm -g @hoangsonw/forge"]:::r
3535
Q3 -->|no| DOCK["§3 · one-shot docker run"]:::r
3636
```
3737

@@ -47,7 +47,7 @@ flowchart TD
4747
## 2. npm (global)
4848

4949
```bash
50-
npm install -g @forge/cli
50+
npm install -g @hoangsonw/forge
5151
forge doctor # verify
5252
forge init # create ~/.forge
5353
forge run "explain this repo"
@@ -79,13 +79,13 @@ sequenceDiagram
7979
Upgrade:
8080

8181
```bash
82-
npm update -g @forge/cli
82+
npm update -g @hoangsonw/forge
8383
```
8484

8585
Local install from a checkout (for PR testing):
8686

8787
```bash
88-
git clone https://github.com/forge/forge && cd forge
88+
git clone https://github.com/hoangsonw/Forge-Agentic-Coding-CLI && cd forge
8989
npm install
9090
npm run build
9191
npm link # adds `forge` to PATH
@@ -124,7 +124,7 @@ flowchart LR
124124
Pull:
125125

126126
```bash
127-
docker pull ghcr.io/forge/forge:latest
127+
docker pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
128128
```
129129

130130
One-shot invocation (your CWD → `/workspace`):
@@ -133,7 +133,7 @@ One-shot invocation (your CWD → `/workspace`):
133133
docker run --rm -it \
134134
-v forge-home:/data \
135135
-v "$PWD:/workspace" \
136-
ghcr.io/forge/forge:latest \
136+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest \
137137
forge run "explain this repo"
138138
```
139139

@@ -142,7 +142,7 @@ Dashboard:
142142
```bash
143143
docker run --rm -p 7823:7823 \
144144
-v forge-home:/data \
145-
ghcr.io/forge/forge:latest \
145+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest \
146146
forge ui start --bind 0.0.0.0
147147
# open http://127.0.0.1:7823
148148
```
@@ -168,11 +168,11 @@ docker build -f docker/Dockerfile -t forge/core:dev .
168168
Everything in §3 works by swapping `docker` for `podman`:
169169

170170
```bash
171-
podman pull ghcr.io/forge/forge:latest
171+
podman pull ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
172172
podman run --rm -it \
173173
-v forge-home:/data \
174174
-v "$PWD:/workspace" \
175-
ghcr.io/forge/forge:latest
175+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
176176
```
177177

178178
Rootless mode is supported — the image uses a static uid (10001) so
@@ -183,7 +183,7 @@ volume ownership is predictable across hosts.
183183
## 5. Compose (Forge + Ollama + UI)
184184

185185
```bash
186-
git clone https://github.com/forge/forge && cd forge
186+
git clone https://github.com/hoangsonw/Forge-Agentic-Coding-CLI && cd forge
187187
docker compose -f docker/docker-compose.yml up -d
188188
# or:
189189
podman-compose -f docker/docker-compose.yml up -d
@@ -245,7 +245,7 @@ docker compose -f docker/docker-compose.yml down
245245

246246
- PowerShell:
247247
```powershell
248-
npm install -g @forge/cli
248+
npm install -g @hoangsonw/forge
249249
forge doctor
250250
```
251251
- WSL 2: preferred for shell-intensive workflows (ripgrep, git).
@@ -313,8 +313,8 @@ what to start and which env vars unlock cloud fallback.
313313
## 9. Uninstall
314314

315315
```bash
316-
npm uninstall -g @forge/cli # or remove the image:
317-
docker rmi ghcr.io/forge/forge:latest
316+
npm uninstall -g @hoangsonw/forge # or remove the image:
317+
docker rmi ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
318318

319319
# optional — wipe state:
320320
rm -rf ~/.forge # global
@@ -333,10 +333,10 @@ docker compose -f docker/docker-compose.yml down --volumes --remove-orphans
333333

334334
| Symptom | Likely cause | Fix |
335335
|---------|--------------|-----|
336-
| `forge: command not found` | npm global bin not on PATH | add `$(npm bin -g)` to PATH, or use `npx @forge/cli` |
336+
| `forge: command not found` | npm global bin not on PATH | add `$(npm bin -g)` to PATH, or use `npx @hoangsonw/forge` |
337337
| `No model provider is reachable` | nothing running on default ports | start Ollama / LM Studio / vLLM / llama.cpp, or export `ANTHROPIC_API_KEY` |
338338
| `adapter: substituted model` warning | your configured model isn't pulled | either `ollama pull <id>` or accept the substitution (Forge picked the best-fit) |
339-
| Container exits immediately | default CMD is `forge --help` | pass a subcommand: `docker run … ghcr.io/forge/forge:latest forge run "…"` |
339+
| Container exits immediately | default CMD is `forge --help` | pass a subcommand: `docker run … ghcr.io/hoangsonw/forge-agentic-coding-cli:latest forge run "…"` |
340340
| Permission prompts every single call | strict mode on, or no flags | `--skip-permissions` for routine tools, or `--allow-shell` / `--allow-files` |
341341
| UI can't reach backend services | bind address wrong | `forge ui start --bind 0.0.0.0 --port 7823` |
342342
| SQLite locked | daemon + REPL both writing | Forge handles this with O_APPEND; if you see this, file an issue with the full log |

docs/SETUP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ local model. Hosted `ANTHROPIC_API_KEY` / `OPENAI_API_KEY` also works.
3737
## 2. Clone, install, verify
3838

3939
```bash
40-
git clone https://github.com/forge/forge && cd forge
40+
git clone https://github.com/hoangsonw/Forge-Agentic-Coding-CLI && cd forge
4141
npm install
4242
npm run build
4343
npm test # 249 tests across 43 files; all must pass

index.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
<a href="#cicd">CI/CD</a>
3636
<a href="#numbers">Metrics</a>
3737
</nav>
38-
<a class="nav-gh" href="https://github.com/forge/forge">
38+
<a class="nav-gh" href="https://github.com/hoangsonw/Forge-Agentic-Coding-CLI">
3939
<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 .5A12 12 0 0 0 0 12.7a12 12 0 0 0 8.2 11.5c.6.1.8-.3.8-.6v-2.1c-3.3.7-4-1.6-4-1.6-.6-1.4-1.4-1.8-1.4-1.8-1.1-.8.1-.8.1-.8 1.2.1 1.9 1.3 1.9 1.3 1.1 2 3 1.4 3.7 1 .1-.8.4-1.4.8-1.7-2.7-.3-5.5-1.3-5.5-6 0-1.3.5-2.4 1.3-3.2-.1-.3-.6-1.6.1-3.2 0 0 1-.3 3.3 1.2a11 11 0 0 1 6 0c2.3-1.5 3.3-1.2 3.3-1.2.7 1.6.2 2.9.1 3.2.8.8 1.3 1.9 1.3 3.2 0 4.6-2.8 5.7-5.5 6 .4.4.8 1.1.8 2.2v3.3c0 .3.2.7.8.6A12 12 0 0 0 24 12.7 12 12 0 0 0 12 .5z"/></svg>
4040
<span>GitHub</span>
4141
</a>
@@ -63,7 +63,7 @@ <h1>
6363
<div class="cta">
6464
<a class="btn primary" href="#install">Install Forge →</a>
6565
<a class="btn" href="#loop">Read the wiki</a>
66-
<a class="btn" href="https://github.com/forge/forge">GitHub</a>
66+
<a class="btn" href="https://github.com/hoangsonw/Forge-Agentic-Coding-CLI">GitHub</a>
6767
</div>
6868
<div class="hero-stats">
6969
<div class="hero-stat"><div class="n"><span class="cu" data-to="173">0</span> ms</div><div class="l">doctor cold-start</div></div>
@@ -630,7 +630,7 @@ <h2>Three paths. <em>Pick one.</em></h2>
630630
<h4>01 / npm</h4>
631631
<div class="code-win">
632632
<div class="titlebar"><div class="traffic"><i></i><i></i><i></i></div><span class="ttl">global install</span><span class="lang">bash</span></div>
633-
<pre><span class="prompt"></span>npm i -g @forge/cli
633+
<pre><span class="prompt"></span>npm i -g @hoangsonw/forge
634634
<span class="prompt"></span>forge doctor
635635
<span class="prompt"></span>forge run <span class="str">"…"</span>
636636
</pre>
@@ -643,7 +643,7 @@ <h4>02 / Docker</h4>
643643
<pre><span class="prompt"></span>docker run --rm -it \
644644
-v forge-home:/data \
645645
-v <span class="str">"$PWD:/workspace"</span> \
646-
ghcr.io/forge/forge:latest
646+
ghcr.io/hoangsonw/forge-agentic-coding-cli:latest
647647
</pre>
648648
</div>
649649
</div>
@@ -844,7 +844,7 @@ <h3>UI shell asset sizes</h3>
844844
<tr><td><code>forge --help</code> cold-start</td><td class="y">238 ms</td><td><code>time node bin/forge.js --help</code></td></tr>
845845
<tr><td>full test suite</td><td class="y">~3.3 s</td><td><code>npx vitest run</code></td></tr>
846846
<tr><td>UI app.js uncompressed</td><td class="y">89 KB</td><td><code>wc -c src/ui/public/app.js</code></td></tr>
847-
<tr><td>container image</td><td class="y">~355 MB</td><td><code>docker images ghcr.io/forge/forge</code></td></tr>
847+
<tr><td>container image</td><td class="y">~355 MB</td><td><code>docker images ghcr.io/hoangsonw/forge-agentic-coding-cli</code></td></tr>
848848
<tr><td>CDN fetches at runtime</td><td class="y">0</td><td>inspect <code>app.js</code> · no external URLs</td></tr>
849849
<tr><td>provider probe timeout</td><td class="y">1.5 s</td><td><code>src/models/openai.ts#isAvailable</code></td></tr>
850850
</tbody>
@@ -884,7 +884,7 @@ <h3>Ready to install?</h3>
884884
</p>
885885
<div class="cta" style="margin-top:20px">
886886
<a class="btn primary" href="docs/INSTALL.md">Install Forge →</a>
887-
<a class="btn" href="https://github.com/forge/forge">GitHub</a>
887+
<a class="btn" href="https://github.com/hoangsonw/Forge-Agentic-Coding-CLI">GitHub</a>
888888
<a class="btn" href="docs/ARCHITECTURE.md">Architecture</a>
889889
</div>
890890
</div>
@@ -895,7 +895,7 @@ <h3>Ready to install?</h3>
895895
<div class="container row">
896896
<span>© Forge contributors · MIT</span>
897897
<span>TypeScript · Node 20+</span>
898-
<span><a href="https://github.com/forge/forge">GitHub</a> · <a href="docs/ARCHITECTURE.md">Architecture</a> · <a href="docs/INSTALL.md">Install</a></span>
898+
<span><a href="https://github.com/hoangsonw/Forge-Agentic-Coding-CLI">GitHub</a> · <a href="docs/ARCHITECTURE.md">Architecture</a> · <a href="docs/INSTALL.md">Install</a></span>
899899
</div>
900900
</footer>
901901

package.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
{
2-
"name": "@forge/cli",
2+
"name": "@hoangsonw/forge",
33
"version": "0.1.0",
44
"description": "Forge - a local-first, multi-agent, programmable software-engineering runtime",
55
"license": "MIT",
6-
"author": "Forge contributors",
7-
"homepage": "https://github.com/forge/forge#readme",
6+
"author": "Son Nguyen (hoangsonw)",
7+
"homepage": "https://github.com/hoangsonw/Forge-Agentic-Coding-CLI#readme",
88
"repository": {
99
"type": "git",
10-
"url": "git+https://github.com/forge/forge.git"
10+
"url": "git+https://github.com/hoangsonw/Forge-Agentic-Coding-CLI.git"
1111
},
1212
"bugs": {
13-
"url": "https://github.com/forge/forge/issues"
13+
"url": "https://github.com/hoangsonw/Forge-Agentic-Coding-CLI/issues"
1414
},
1515
"bin": {
16-
"forge": "./bin/forge.js"
16+
"forge": "bin/forge.js"
1717
},
1818
"main": "./dist/cli/index.js",
1919
"type": "commonjs",

scripts/link.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ else
3838
say "dist/ is fresh — skipping build."
3939
fi
4040

41-
say "Linking @forge/cli into $(npm prefix -g)/bin ..."
41+
say "Linking @hoangsonw/forge into $(npm prefix -g)/bin ..."
4242
npm link --silent
4343

4444
GLOBAL_BIN="$(npm prefix -g)/bin"

scripts/postinstall.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env node
22
'use strict';
33
/**
4-
* Post-install hook for `npm install -g @forge/cli`.
4+
* Post-install hook for `npm install -g @hoangsonw/forge`.
55
*
66
* 1. Creates the ~/.forge skeleton (idempotent).
77
* 2. If FORGE_BINARY_PATH is set, stops there — treat Forge as "run from

0 commit comments

Comments
 (0)