Forge IDE 0.4.2
How did you know my OS?
compaction.rs. The agent panel shows the task, tool calls, the applied edit, and a checkpoint the run can be rewound to.
Overview
Forge is a terminal-based autonomous AI coding agent that runs locally on the operator's machine. It connects to any OpenAI-compatible endpoint, to Anthropic via direct API key, to ChatGPT Codex via OAuth against an existing ChatGPT Plus subscription, or to local model servers such as LM Studio, Ollama, llama.cpp, and vLLM. No mandatory cloud, no telemetry. Claude subscription (Pro/Max) login is not supported — Anthropic's terms restrict subscription OAuth credentials to its own applications. Use an Anthropic API key instead.
The agent is built around a small Rust core and a terminal UI, and is designed to be readable and tailorable rather than feature-maximal. The codebase is intentionally small enough that an operator can read it, understand what the agent is doing, and modify it when their workflow demands something a vendor wouldn't ship.
A standalone graphical IDE built on the same Rust agent core ships
alongside the terminal client as a second surface, distributed as
a signed and notarized .dmg for Apple Silicon on
macOS 13 or later. That build is arm64 only — an Intel Mac
will not run it, and Intel is not a current target. Linux x86-64
builds and passes tests in CI but has no packaged build, so it
means building from source; Windows and Linux ARM64 are not
supported yet. See the release notes for the current
per-component platform table. The CLI and the GUI run against the same agent
and can be used independently — the GUI isn't a replacement
for the terminal experience, and the terminal isn't a fallback
for the GUI.
Capabilities
-
Tool surface
File read and write, unified-diff patching, code search, glob, shell execution through a streaming PTY path, web search and fetch, structured user questions, and a custom shell-backed tool interface that loads from
~/.config/forge/tools/or project-local.agent/tools/. -
Parallel subagents
Bounded subagent delegation with independent context windows, per-agent tool allowlists, configurable concurrency and depth, and rolling-window fallback on context overflow.
-
Planning mode
Plans are drafted, reviewed, and approved before any write or execute action runs.
-
Context management
Two strategies: model-backed structured compaction, or rolling window with configurable thresholds. Both are validated against long-running sessions and stay coherent across multi-file work.
-
Session persistence and revert
Sessions are logged to
.forge/sessions/{id}/conversation.jsonland can be resumed. Revert is Git-backed: workspace state is snapshotted at turn boundaries and can be restored together with conversation history. -
Safety model
Approval-based command gating, not host isolation. Forge is a sharp tool: once a tool is approved or auto-approval is enabled, it runs with the same access as the user account that launched it. The project root is the default working directory, not a sandbox. This boundary is documented in the architecture notes.
Project log
-
Forge 0.4.2 released
A
.gzfile now opens in the editor, decompressed by the same DEFLATE implementation written for the PNG decoder in 0.4.0 — a different header over the same payload, so it cost a header parse and no new dependency, and the trailer's checksum and length are both verified. Anything that genuinely is not text now says so plainly instead of reporting a UTF-8 decoding fault. A saved agent conversation no longer stores whole tool results: one here had reached 11.4 MB on the strength of a single 7.4 MB result, and since the transcript is rewritten in full on every new message that was eleven megabytes re-serialised each time on the event-loop thread. Saved output is capped at 64 KB keeping both ends, with the untruncated copy remaining in the agent's own log, which is what rewind reads — the largest conversation drops to 3.4 MB and all thirty-five fall 27% in total. The agent composer grows with what is typed rather than scrolling inside three fixed lines, and the send button turns red, shows a stop square, and interrupts the turn while one is running, instead of sitting inert for its duration. Editor tabs also gained a right-click menu for copying paths. Multi-cursor edits are undoable. Signed build attached to the release. See the 0.4.2 release notes. -
Forge 0.4.1 released
Three memory and correctness fixes in the editor. An undo step used to be a copy of the whole buffer, so an eighteen-thousand-line file held roughly 136 MB of undo history; a step is now the one region of lines that differs, measured at 25 KB for two hundred steps on a 1.1 MB file against 215 MB as whole copies. Undo depth became a setting rather than a constant. Terminal scrollback in a saved session stored a colour beside every single character; it is now text plus the runs of colour over it, which took real saved sessions from 12.3 MB to 0.5 MB with nothing dropped — every character keeps its own colours, described once per run instead of once per character, and sessions written by earlier builds still load. And Restart Window now carries a window's identity even when the shared window record has no entry for it; previously the window came back apparently new while a megabyte of its saved state sat on disk under the old id. Windows are also planned one at a time, so a single missing entry no longer sends every window down the folder-only path. Signed build attached to the release. See the 0.4.1 release notes.
-
Forge IDE is available as a signed build
A signed and notarized
.dmgis attached to the 0.4.0 release, so installing the IDE no longer means building it. It carries a Developer ID signature, the hardened runtime, and a stapled notarization ticket — which means it installs without a Gatekeeper prompt and without needing to reach Apple at first launch. The build is arm64 and requires macOS 13 or later; the bundledforge-agentandforge-serverbinaries are signed individually as well. Distribution testing on a.dmghad been noted as beginning in July and is what this closes. -
Forge 0.4.0 released
The IDE now decodes images itself rather than through the
imagecrate — DEFLATE and zlib, PNG across all five colour types and bit depths 1 through 16 including Adam7 interlacing, and GIF89a including LZW and all four frame-disposal methods, in about a thousand lines, decode-only. Output was compared byte for byte against the crate it replaces over a 25-megabyte image before that crate was removed; six crates left the dependency graph. The agent gained a working area of its own under the system temporary directory, so scratch scripts and one-off reproductions stop landing in the user's project — auto-approved writes are confined to it by resolved-path comparison rather than string prefix, the directory is created0700, and one that is a symlink or owned by another user is refused. A conversation driven far past the context limit can now recover instead of wedging permanently, and single tool results are bounded as they arrive so the recovery path is a backstop rather than what keeps a session alive. The terminal client rewrites only the transcript lines that changed instead of reprinting the whole live block on every spinner tick, which had been sustaining 11.2 KB/s of escape sequences for the length of a run. Full detail in the 0.4.0 release notes and the per-component changelogs. -
Forge 0.3.1 released
A same-day patch on 0.3.0, carrying two fixes. A session title was cut to length by byte index rather than character boundary, so any multi-byte character landing on the cut point panicked the agent's runtime thread — an emoji in a prompt, a CJK identifier, an accented word, or the box-drawing characters models reach for when sketching a diagram. The same pattern was present in seven places across the agent and the editor; all seven now cut on character boundaries and count their limits in characters, with a property test walking every cut point of a mixed ASCII/emoji/CJK string. Separately, an editor window with no folder open named the home directory in its status bar — which is the account name, so it placed the user's name in the corner of every screenshot of an empty window. It now reads
No folder. See the 0.3.1 release notes. -
Forge 0.3.0 released — IDE and CLI ship together
Forge 0.3.0 is publicly available. The Forge IDE joins the terminal client as a second, independent surface; both run against the same
forge-agentbinary. The repository is now a Cargo workspace at github.com/Vulkgryph/Forge, carryingforge-agent,forge-tui-rs, andforge-ide. macOS on Apple Silicon is the verified platform; Linux x86-64 builds and passes tests in CI, and Linux ARM64, Windows, and Intel Macs are intended but not yet end-to-end smoke-tested. See the 0.3.0 release notes for the full component breakdown and the per-component CHANGELOGs. -
Repository temporarily private — Forge IDE release preparation
The Forge repository has been set to private while the Forge IDE is prepared for release and undergoes internal review. The CLI's public source is unchanged in substance — both surfaces will re-emerge together as a monorepo at the same URL when the IDE release is ready. Existing installs continue to work; new clones and
forge-updatepause during this window. Thev0.1.0,v0.2.0, andv0.2.1release tags remain in the repository history for the moment of re-release. -
Forge IDE reaches 0.1.0 code stability
The IDE is now stable enough to be used as the primary editor in production work on the maintainer's own flow. Reliability across all flows is not yet fully established — expected for a first release — but the core loop is solid. Distribution testing on the signed
.dmgbegins now; public release follows when that testing passes. -
Forge 0.2.1 released
Reliability release. Ends the
edit_file"old_string not found" loop by returning bounded recovery hints (closest match, whitespace diffs, or a disambiguation list) instead of a bare error — especially valuable for weaker local models. Restores token counting on streaming OpenAI-compatible endpoints (mlx_lm, vLLM, llama.cpp, LM Studio, OpenAI), which had been silently breaking auto-compaction on long local sessions. Recovers tool calls that misbehaving servers leak as raw text so the agent no longer stalls at high context onmlx_lm. Installer now checks forcurl,ripgrep, andbunup front. See the CHANGELOG. -
Forge 0.2.0 released
0.2.0 ships streaming reasoning display for chain-of-thought models (compact "Thinking…" line with Ctrl+T to expand), fixes compatibility with strict OpenAI-compatible servers like
mlx_lmthat require the system message first, and corrects a Ctrl-key shortcut leak into the input field. It also formally completes the Claude subscription OAuth removal first patched into 0.1.0 — Anthropic is still fully supported via API key. See the CHANGELOG for details. -
Forge 0.1.0 released
Forge is now publicly available. Source is on GitHub at github.com/Vulkgryph/Forge under the Vulkgryph organization. Installation, configuration, and usage notes live in the repository README. Reach [email protected] for inquiries.
-
Project page expanded
Forge's project page now describes the agent's capability surface ahead of the public release push. Repository and documentation links remain pending until the public push lands.
-
Project page established
Forge now has a project page and Git-backed project log source. Detailed changelogs can remain in the repository when public.
Documents
- Repository github.com/Vulkgryph/Forge
- Latest release 0.4.2 — 2026-09-14
-
Download (IDE)
Forge-IDE-0.4.2.dmg — signed and notarized, Apple Silicon, macOS 13 or later. The terminal client is installed from source; see the README.
- Documentation README on GitHub
- Inquiries [email protected]