Ygg v0.4.0
Ygg v0.4.0
Ygg v0.4.0 is a stable native-integration, session-performance, navigation,
and presentation release. It includes the terminal application, the versioned
ygg-host process protocol, and the separately packaged, loopback-only Ygg
Serve web interface.
Ygg and its extensions are not operating-system sandboxes. They run with the
authority of the user who launches them; use OS isolation for untrusted
workspaces, models, or extension packages.
Install Ygg
Ygg requires rg (ripgrep). The version-pinned installer selects and verifies a
prebuilt binary for GNU/Linux x86-64, macOS x86-64, or macOS Apple silicon:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/skaft-software/ygg/releases/download/v0.4.0/install-ygg-v0.4.0.sh | shThe version-named installer supersedes the initial unversioned installer for
macOS compatibility. It installs the same immutable, signed v0.4.0 archives;
its own Sigstore bundle is published beside it.
The default installation does not require Rust. To compile the pinned release
instead, install Rust 1.86 or newer and run:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/skaft-software/ygg/releases/download/v0.4.0/install-ygg-v0.4.0.sh \
| sh -s -- --from-sourceOr use Cargo directly without changing a shell profile:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.4.0 \
--bins \
ygg-coding-agentVerify the installation with ygg --version and ygg --help. The installer
and Cargo command also install ygg-host; see the native host protocol
for embedding Ygg from another application.
Install Ygg Serve
The graphical interface is an optional application extension. The normal Ygg
binary does not contain its web server or embedded frontend.
ygg extension install ygg-serve
ygg serveThe official package must exactly match Ygg 0.4.0. Supported artifacts
are provided for GNU/Linux x86-64 (x86_64-unknown-linux-gnu), macOS x86-64,
and macOS Apple silicon. Linux musl targets are not supported by this release. To
install a package downloaded separately:
ygg extension install --path ./ygg-serve-0.4.0-TARGET.tar.gzLifecycle commands are:
ygg extension list
ygg extension update ygg-serve
ygg extension remove ygg-serveServe binds IPv4 loopback only. ygg serve --no-open --port 0 starts it without
opening a browser and asks the operating system for a free port. Removing the
package preserves sessions and other user data.
Highlights
- The new
ygg-hostbinary exposes protocol v1 over bounded NDJSON for native
application integrations, with streaming events, ordered typed image/audio
input, inline and
configured providers, durable session creation/resume, and seeded history. - Headless tool confirmations are denied, typed input requests are cancelled,
and consumers can cancel a run by terminating the dedicated process group
they created for the host. Release archives and installers ship both Ygg
binaries. - Existing Codex credentials can be copied on first use from the owner-only
Codex or Hamr stores into Ygg's owner-only store without changing the source. - Serve session inventory now uses bounded, targeted catalog scans, and resume
hands the already authorized transcript descriptor directly to the worker.
On the isolated 891-transcript fixture, startup improved from 43.01 seconds to
19.41 seconds; large-session resume completed in 2.39 seconds. - Catalog and resume regressions cover corrupt, symlinked, and trashed sessions,
unsafe metadata, active-branch model selection, and pathname replacement after
descriptor authorization. /overviewnow loads session inventory without creating or opening a
provisional task, including reconnects and navigation races.- The Fleet command center prioritizes sessions needing attention and supports
task and project search, while sidebar activity indicators make running work
visible. - Prompts submitted during an active graphical run steer by default, failed
selection no longer moves to a broken focused surface, and retries preserve
the intended route mode. - The graphical source viewer shows line numbers.
- Configured-provider acceptance now exercises bearer auth/model selection,
streamed text and tool replay,429/408retries, explicit compaction,
restart/resume, cancellation, and secret-safe provider/phase failures against
a disposable loopback fixture. Credentialed checks remain separately protected
and optional. - Release dependency gates audit both lockfiles. Serve remains on audited
lopdf 0.42.0, and a hostile-input regression verifies that a 4,096-level PDF
is rejected by Ygg's bounded preflight before parser entry. - Plain no-color terminal output no longer acquires an ANSI reset when a line is
truncated, and compact footer costs use three significant figures. - Redundant interactive
/tool,/docs,/sessions, and/cycle-model
commands were removed; top-levelygg sessionsremains available. /helpand the source-checkout system prompt now expose local
self-documentation paths when Ygg is run from its own repository.
Release acceptance
The deterministic configured-provider matrix passed on the local release
worktree on 2026-08-10. Credentialed OpenAI Responses, Anthropic Messages,
OpenAI Chat, and native-audio representatives were not run because no live
release credentials were available. That optional check is explicitly waived
for v0.4.0; release packaging records the waiver and does not require provider
secrets. See the
configured-provider acceptance record.
See the changelog,
extension documentation, and
security policy
for the complete behavior and boundaries.