Releases: skaft-software/ygg
Release list
Ygg v0.6.0
0.6.0 — 2026-08-23
Added
- Deferred tool-schema loading, ported from Pi's deferred-tools design:
tool results can now carryadded_tool_names— the set of tools that became
available as a consequence of that execution (for example an extension or
MCP server registering tools on first use). Models advertising the new
deferred_tool_loadingcapability stop re-sending announced schemas in the
static request tool set; providers without the capability are unaffected.
This is the load-bearing prerequisite for lazily registered extension and
MCP tool schemas. - Delegated workers now expose a bounded rolling
recent_toolsactivity ring
(last six tool calls with flattened argument summaries, host timestamps, and
an error flag) on everyagent/listrecord, and the/subagentspicker rows,
inspect detail, and headless list render the latest action live — so each
worker answers "what is it doing right now" without opening its transcript. - Terminal-gate rejections (
CandidateRejected) now carry cumulative session
cost alongside run cost, so delegated-worker spend tracks token usage between
accepted turns instead of jumping at settlement.
Changed
- Subagents now inherit the parent's full standard tool scope (
read,search,
edit,write,bash) by default, matching Claude Code's Task workers;
passtools: [read, search]to keep a worker read-only. Worker prompts,
profiles, the spawn schema, and skill guidance were updated accordingly. - The interactive composer's slash-command list refreshes when extension
contributions change, and an unknown slash command now names enabled
extensions that are not ready instead of failing with a bare error.
Added
- Added checksum-verified, bounded, atomic executable-extension bundles for the
small first-party release catalog and offline/local archives.ygg extension install,list,update, andremovenow manage API0.2bundles without
enabling or trusting them; managed nested skills are discoverable but remain
inactive until explicitly loaded. - Added deterministic release packaging, complete tracked-file inclusion checks,
local install/remove smoke coverage, and post-publication install/update smoke
coverage for every catalog bundle. - Added an interactive
/extensionsinstalled-bundle activation menu that
persists only enablement, never trust, rebuilds the extension host at the idle
boundary, and becomes read-only when a higher-precedence activation source is
authoritative. - Added a native
/subagentsworker browser with arrow-key selection,
owner-bound authoritative live refresh, stable-ID focus, and scrollable,
owner-authorized read-only delegated transcripts. - Added
subagent_continueto the first-partyygg-subagentsextension:
it steers an active worker throughagent/messageor resumes a settled
worker as a new run of its durable session throughagent/follow_up. A
resumed worker keeps its conversation context, and the host clears the
stale completion timestamp and re-anchors an elapsed wall deadline so the
new run owns a fresh budget. - Workers in
ygg-subagentscan now be grantededit,write, andbash
per spawn through the spawntoolslist. The host's scoped tool snapshot
is the enforcement boundary; the default remains the read-only
read/searchpair. - Cargo-installed binaries now embed the text documentation and materialize a
versionedshare/ygg/tree that refreshes after Cargo-channel updates.
Changed
- Kept the target-specific Ygg Serve
package.tomlapplication archive distinct
from generic executable-extensionextension.tomlbundles. - Removed ambient executable-extension header/status/footer and presentation
activity from TUI chrome; extension and worker state now appears only in
explicit interactive views. - Routed the coding product's in-harness child sessions through the trusted,
owner-boundygg-subagentsextension. Ultra is now unavailable without its
live observation service, and the root no longer receives a parallel native
collaboration tool surface. - Removed the fixed aggregate subagent token/cost reservation pool. First-party
children now have fresh contexts and inherit the parent's context/output and
optional session-token settings exactly; an unlimited parent remains unlimited. - Raised first-party subagent limits from 2 active/16 retained children per
owner to 8 active/32 retained, with explicit ceilings of 256 turns,
50,000,000 microdollars, and 24 hours of wall time. - Made per-child turn, cost, and wall-time ceilings optional in
agent/spawn.policy:null(or omitted) inherits the parent session's
Ygg v0.5.0
Ygg v0.5.0
Ygg v0.5.0 expands the executable-extension contract, adds supervised extension
lifecycle support and bounded task delegation, and hardens the default terminal
and graphical execution paths. It remains pre-1.0 software: configuration,
sessions, extension APIs, and provider behavior may evolve.
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.5.0/install-ygg.sh | shTo compile the pinned release instead, install Rust 1.86 or newer:
curl --proto '=https' --tlsv1.2 -LsSf \
https://github.com/skaft-software/ygg/releases/download/v0.5.0/install-ygg.sh \
| sh -s -- --from-sourceOr use Cargo directly:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.5.0 \
--bins \
ygg-coding-agentThe installer and Cargo command install both ygg and ygg-host.
Upgrade from v0.4.0 or earlier
Re-run the pinned installer command above, using the same YGG_INSTALL_DIR if
an earlier installer used a custom location. Releases through v0.4.0 do not
have the ygg update command; the v0.5.0 installer replaces both binaries and
the packaged documentation while leaving ~/.ygg configuration, credentials,
sessions, and other user data untouched. Restart the shell, or run hash -r,
then confirm ygg --version reports 0.5.0.
For an existing Cargo installation, run the pinned cargo install command above
instead. After either upgrade path, an installed Serve package must be updated
separately:
ygg extension update ygg-serveInstall Ygg Serve
The graphical interface remains an optional application extension:
ygg extension install ygg-serve
ygg serveThe official package must exactly match Ygg 0.5.0. Supported artifacts are
provided for GNU/Linux x86-64, macOS x86-64, and macOS Apple silicon. Linux
musl targets are not supported.
Highlights
- Added executable-extension API
0.2with feature negotiation, bounded
concurrency, serialized writes, cancellation, progress, artifacts,
lifecycle observations, secret brokerage, dynamic tool catalogs, and child
agent sessions. - Added automatic extension supervision with bounded restart backoff and stale
generation fencing, plus Python SDK0.2support. - Added provider-neutral durable session goals and metadata-gated Ultra
reasoning with bounded V2 task delegation. - Added isolated child sessions with private team storage and provenance
records. - Updated Codex discovery and Responses Lite handling to use advertised
capabilities rather than model-name or subscription-plan inference. - Made full host access the default and made
--safe-modethe canonical
approval-required mode. The hidden--safealias remains accepted. - Reworked controlled Bash classification with tree-sitter parsing and retained
strict bounded execution semantics. - Reworked compaction around bounded Pi-style recent-token retention and
improved TUI liveness, completion rendering, and reasoning labels. - Improved large-session discovery and long-session rendering performance.
- Added
ygg updatewith install-method detection and version-pinned updates.
Compatibility and limitations
- The
0.2extension contract is new; API0.1remains accepted as a
backward-compatible text-oriented contract. - Ultra and V2 delegation require matching capabilities in live provider
metadata and are disabled conservatively when metadata is unavailable. - The default full-access mode grants commands and workspace mutations the
launching user's authority. Use--safe-modeor OS isolation for untrusted
work. - First-party MCP, browser, web-search, computer-use, memory, LSP, and
subagent-orchestration packages are not included. The coding product does not
yet configure an approval UI adapter or secret provider. - Serve remains loopback-only and does not provide LAN pairing or native client
applications.
Release acceptance
The deterministic configured-provider matrix is required by CI. Credentialed
OpenAI, Anthropic, OpenAI Chat, and native-audio checks are separately approved
and may be waived when release credentials are unavailable. See the
configured-provider acceptance record
for the exact policy and evidence.
See the changelog,
extension documentation, and
security policy
for the complete behavior and boundaries.
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.
Ygg v0.3.2-alpha
Ygg v0.3.2-alpha
Ygg v0.3.2-alpha is a reliability release built from the canonical terminal
application. It also introduces the minimum installer and launcher needed for
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.3.2-alpha/install-ygg.sh | shThe 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.3.2-alpha/install-ygg.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.3.2-alpha \
--bin ygg \
ygg-coding-agentVerify the installation with ygg --version and ygg --help.
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.3.2-alpha. 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 in this alpha. To
install a package downloaded separately:
ygg extension install --path ./ygg-serve-0.3.2-alpha-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.
Other changes
- Model and reasoning persistence now edits TOML structurally without destroying
comments, multiline values, similarly prefixed keys, or table sections. - Unknown configuration keys report their source location and likely spelling;
--strict-config,strict_config = true, orYGG_STRICT_CONFIG=trueturns
those diagnostics into startup failures. - Provider requests are not replayed after ambiguous send or response-header
failures. - Native terminal streaming and resize behavior includes the renderer fixes
described in the changelog.
See the changelog,
extension documentation, and
security policy
for the complete behavior and boundaries.
Ygg v0.3.1-alpha
Ygg v0.3.1-alpha
Ygg v0.3.1-alpha is a rendering-correctness patch for the default native
terminal-scrollback interface. It fixes intermittent transcript corruption while
model output is streaming, especially when terminal resizing and scrolling happen
together.
Ygg is not an operating-system sandbox. An enabled bash tool runs with the
authority of the user who launched Ygg; use OS isolation for untrusted workspaces,
models, or extensions.
Install
Ygg supports macOS and Linux. Install Rust 1.86 or newer and rg (ripgrep), then
run the pinned installer:
curl --proto '=https' --tlsv1.2 -LsSf \
https://raw.githubusercontent.com/skaft-software/ygg/v0.3.1-alpha/scripts/install.sh | shOr install without changing a shell profile:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.3.1-alpha \
--bin ygg \
ygg-coding-agentVerify the installation with ygg --version and ygg --help.
What changed
- Finalized streamed rows now enter native scrollback exactly once when a
provisional Markdown layout shrinks. - Resize handling atomically deletes Kitty image placements, clears the reflowed
screen and saved lines, and replays the complete Ygg-owned transcript at the
new dimensions. - Large lists and tables expose stable item and row commit boundaries, allowing
long responses to keep advancing into scrollback during generation. - Theme changes, compaction disclosure toggles, and other presentation repaints
preserve terminal-owned history. They do not clear scrollback or replay
committed transcript rows. - Deferred session-history prepends and cancelled streaming attempts preserve
globally ordered commit identities without sacrificing lazy long-session
rendering.
The regression suite exercises streaming layout shrink, terminal width changes,
nonzero scrollback offsets, and synchronized output in combination.
Compatibility and limitations
- Existing Ygg sessions and historical
exectool records remain supported. - Resizing intentionally clears all terminal-owned saved lines, including shell
output from before Ygg started, so the transcript can be rebuilt without
depending on terminal-specific reflow behavior. - Native terminal scrollback keeps the styling it had when rows were committed;
a later theme change repaints only the live grid. - Configuration, session, extension, and public crate APIs remain pre-1.0 and may
evolve in later releases. - Command execution is Unix-only and inherits the launching user's filesystem,
environment, process, and network authority.
See the changelog
and security policy
for the complete changes and security boundary.
Ygg v0.3.0-alpha
Ygg v0.3.0-alpha
Ygg v0.3.0-alpha is a focused terminal-quality and trust-boundary release. It makes
the default interface quieter and easier to copy, turns opaque failed runs into
actionable diagnostics, and carries recent security hardening into a focused
pre-1.0 alpha.
Ygg is not an operating-system sandbox. An enabled bash tool runs with the
authority of the user who launched Ygg; use OS isolation for untrusted workspaces,
models, or extensions.
Install
Ygg supports macOS and Linux. Install Rust 1.86 or newer and rg (ripgrep), then
run the pinned installer:
curl --proto '=https' --tlsv1.2 -LsSf \
https://raw.githubusercontent.com/skaft-software/ygg/v0.3.0-alpha/scripts/install.sh | shOr install without changing a shell profile:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.3.0-alpha \
--bin ygg \
ygg-coding-agentVerify the installation with ygg --version and ygg --help.
Highlights
- Copy-safe code, quiet composer. Fenced Markdown code uses borderless,
terminal-adaptive light/dark shading. The default prompt composer stays
unfilled and restrained at rest, adding a model-colored perimeter shimmer only
while work is active. Explicit themes retain their authored chrome. - Actionable failed runs. The familiar
failed · <duration>lifecycle row is
preserved and now followed by a bounded, terminal-safe reason that is included
in semantic copy. Provider diagnostics redact the credentials used for that
request before reaching the frontend. - Hardened trust boundaries. Request diagnostics, OAuth and update responses,
command output, session exports, credential refresh, atomic file publication,
and extension JSON-RPC framing received focused adversarial coverage and tighter
failure behavior. - Small by design. The release remains a four-crate Rust workspace with direct
provider traffic, local inspectable sessions, and no hosted Ygg control plane.
Failure-observability note
Earlier interactive releases retained the underlying AgentError in memory but
rendered only a generic failure row. That made historical provider failures
impossible to diagnose from the transcript. v0.3.0-alpha exposes the already
credential-redacted reason safely. It does not guess at, or silently extend, the
existing 120-second stream-idle and 30-minute per-request deadlines.
Compatibility and limitations
- Existing Ygg sessions and historical
exectool records remain supported. - The compiled default theme changes fenced-code chrome while retaining the
bordered composer; named and custom themes preserve their explicit settings. - Configuration, session, extension, and public crate APIs remain pre-1.0 and may
evolve in later releases. - Command execution is Unix-only and inherits the launching user's filesystem,
environment, process, and network authority.
See the changelog
and security policy
for the complete changes and security boundary.
Ygg v0.2.0-alpha
Ygg v0.2.0-alpha
Ygg v0.2.0-alpha is a local-first terminal coding agent release focused on
multimodal input, durable Responses sessions, native compaction, labeled custom
providers, and a calmer, more accountable terminal experience.
This is an alpha: configuration, session, extension, and public APIs may change
before 1.0. Ygg is not an operating-system sandbox. An enabled bash tool runs
with the authority of the user who launched Ygg.
Install
Ygg supports macOS and Linux. Install Rust 1.86 or newer and rg (ripgrep),
then run the pinned installer:
curl --proto '=https' --tlsv1.2 -LsSf \
https://raw.githubusercontent.com/skaft-software/ygg/v0.2.0-alpha/scripts/install.sh | shFor a manual install without changing a shell profile:
cargo install --locked \
--git https://github.com/skaft-software/ygg \
--tag v0.2.0-alpha \
--bin ygg \
ygg-coding-agentVerify the installed version:
ygg --version
ygg --helpHighlights
- Durable OpenAI Responses replay, authoritative raw-output persistence, and
native compaction transport. - Multimodal image/audio reads with capability-aware ingestion and explicit PDF
path handling for file tools. - Labeled custom OpenAI-compatible providers, including Apple Foundation Models
support. - More focused reasoning and activity presentation with bounded, sanitized
tool-output projections and edit/write diffs. - A corrected animated startup identity that reports the running package version,
selected model, reasoning configuration, and workspace. - Terminal lifecycle, media, and transcript rendering fixes.
Compatibility and limitations
- This release remains alpha software; configuration and public APIs may change.
- Ygg sends model traffic directly from your machine to the endpoint you select;
it does not provide a hosted control plane. - Command execution, when enabled, can read credentials, access the network, and
start child processes with the launching user's authority. Use an isolated
account, container, or VM for untrusted repositories or model endpoints. - Existing sessions containing historical
execcalls remain renderable; new
provider schemas usebash.
See the changelog
and security policy
for the complete changes and security boundary.
Ygg v0.1.1-alpha
Ygg v0.1.1-alpha
Ygg v0.1.1-alpha is a terminal-product and execution-semantics release. It
restores the animated startup identity, makes the transcript calmer and easier
to scan, improves long-session behavior, adds entitlement-gated GPT-5.6 Pro
reasoning mode, and replaces the model-facing exec tool with a truthful
always-shell bash tool.
This is an alpha: configuration and session APIs may change before 1.0. Ygg is
not an operating-system sandbox, and enabled command execution has the full
authority of the user running it.
Install
Install Rust 1.86 or newer and rg (ripgrep), then run:
curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/skaft-software/ygg/v0.1.1-alpha/scripts/install.sh | shManual installation without changing a shell profile:
cargo install --locked --git https://github.com/skaft-software/ygg --tag v0.1.1-alpha --bin ygg ygg-coding-agent
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"Verify the installed binary:
ygg --version
ygg --helpHighlights
- Animated, model-tinted braille-tree startup card with the current release
version and active model context. - One live reasoning indicator and one in-place activity state; completed
reasoning is removed in normal mode and retained in verbose mode. - Quieter transcript metadata, syntax-colored Bash commands, restrained
lifecycle dots, consistent indentation, and model-provenance prompt styling. - Pi-compatible input, paste, selection, overlay, and native-scrollback
behavior, with bounded tail hydration for long sessions. - Entitlement-gated GPT-5.6 Pro reasoning mode for ChatGPT OAuth Pro routes,
selectable independently from reasoning effort. - The model tool is now named
bashand always runs the complete command
through a selected Bash-compatible shell with-c.
Compatibility notes
- Explicit tool allowlists must use
bashinstead ofexec. - Historical sessions containing
execcalls still render correctly. bash_timeout_secs,--bash-timeout-secs, and
YGG_BASH_TIMEOUT_SECSare the preferred execution-limit names. Previous
spellings remain accepted as compatibility aliases.- Shell selection order on Unix is explicit
shell_path,/bin/bash,bash
onPATH, thensh.$SHELLis not consulted. - Pro reasoning mode is rejected unless the exact resolved GPT-5.6 ChatGPT OAuth
route reports an eligible Pro subscription.
See the changelog
and security guidance
for the complete contract and limitations.
Project overview and documentation: http://skaft.org/ygg
Ygg v0.1.0-alpha
Ygg v0.1.0-alpha
Ygg is a local-first coding agent for macOS and Linux. This first alpha ships
the interactive terminal UI, chronological plain and response-only print
modes, persistent branchable sessions, bounded tools, automatic context
compaction, local OpenAI-compatible endpoints, and first-class OpenAI,
Anthropic, and OpenRouter-family provider support.
This is an alpha: configuration and session APIs may change before 1.0. Ygg is
not an operating-system sandbox, and enabled command execution has the full
authority of the user running it.
Install
Install Rust 1.86 or newer and rg (ripgrep), then run:
curl --proto '=https' --tlsv1.2 -LsSf https://raw.githubusercontent.com/skaft-software/ygg/v0.1.0-alpha/scripts/install.sh | shThe installer builds the pinned tag and adds Cargo's bin directory to the
startup file for zsh, bash, or POSIX sh when needed. Restart the shell, then
verify it:
ygg --version
ygg --helpManual installation without changing a shell profile:
cargo install --locked --git https://github.com/skaft-software/ygg --tag v0.1.0-alpha --bin ygg ygg-coding-agent
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"Highlights
- OpenAI Chat Completions, OpenAI Responses, and Anthropic Messages behind one
provider-independent conversation model. - Durable append-only sessions with resume, branching, usage records,
checkpoints, and bounded compaction. - Workspace-trusted local configuration and inspectable filesystem resources.
- Bounded read, search, edit, write, and command tools with explicit allow and
deny controls. - Local-first model configuration plus cloud catalog discovery and ChatGPT
subscription authentication. - Native terminal scrollback, semantic rendering, visible retries, and
cancellation that terminates complete process groups.
See the changelog
and security guidance
for the full contract and limitations.