Prebuilt standalone binaries are the supported end-user install. Bun is not required.
# Tagged installer (recommended): pin the ref, then run locally.
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.sh -o gjc-install.sh
sh gjc-install.sh
gjc --version
gjc --smoke-testPiping the main branch script executes mutable content:
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/scripts/install.sh | shWindows (PowerShell), tagged:
Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/v0.15.3/scripts/install.ps1 -OutFile gjc-install.ps1
powershell -File gjc-install.ps1The installer downloads the current platform's GitHub release asset, verifies HTTP success, non-empty bytes, and published SHA-256 checksums, then runs --version and --smoke-test. A failed download or verification never replaces a working existing gjc. Version discovery uses GitHub only (https://api.github.com and https://github.com/<repo>/releases/download); firewalled or mirrored registries are not used. Offline/source workflows use --source with an existing Bun.
Unix default location: ~/.local/bin/gjc (GJC_INSTALL_DIR overrides).
Windows default location: %LOCALAPPDATA%\gjc\gjc.exe.
가재씨 is installed alongside gjc as a launcher alias on package-manager installs. Standalone binaries expose gjc. On Windows, use gjc (or run from Windows Terminal / PowerShell with UTF-8 chcp 65001 if a Hangul alias is needed).
Prebuilt standalone release binaries are published for:
- Linux — x64 and arm64, glibc only (musl/Alpine is not supported; use
--sourcewith existing Bun) - Windows — x64
- macOS — Apple Silicon (arm64) and Intel (x64)
A verified nightly prerelease is published from main at 04:23 UTC and can also be started manually with the nightly-release CI dispatch. Nightly runs execute the complete main verification graph, build every supported native addon and standalone binary, and create a matching GitHub prerelease. They do not rewrite main or consume the [Unreleased] changelog sections.
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/scripts/install.sh | sh -s -- --channel nightly
gjc --version
gjc --smoke-testWindows: pass -Channel nightly to install.ps1.
Already on GJC? Switch channels without reinstalling: gjc update --channel nightly moves to the latest nightly, and gjc update --channel stable switches a nightly install back to the latest stable (the command detects the channel switch and installs even though stable is semver-lower than the nightly). To make a channel the default for both gjc update and the startup update check, set Settings → Interaction → Update Channel (the startup.updateChannel setting). In the brief window where a nightly shares the stable core version, add --force to move onto it.
Pin an exact release tag (binary assets required):
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/scripts/install.sh | sh -s -- --ref v0.15.0Bun is required only to build GJC from source. The installer never downloads Bun.
# Requires an existing Bun 1.3.14+ on PATH
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/gajae-code/main/scripts/install.sh | sh -s -- --sourceFrom a checkout: bun run install:dev, then bun run dev / bun run dev:link. See the repository AGENTS.md for the development workflow.
GJC's shell tool requires a bash-compatible shell on Windows. After a binary install, the PowerShell installer records Git Bash if it finds it. Options:
- Install Git for Windows: https://git-scm.com/download/win
- Use WSL, Cygwin, or MSYS2
Native Windows gjc --tmux needs a tmux-compatible executable on PATH. For GJC-managed session guarantees, use WSL with real tmux. See environment-variables.md.
GJC can generate a Fig/withfig-compatible spec for Microsoft inshellisense:
gjc completion inshellisense --installThe installer writes gjc.js plus a minimal index.js into inshellisense's default local spec directory (~/.fig/autocomplete/build). If that directory already has an unrelated index.js, GJC refuses to clobber it unless --force is explicit; use --dir <path> for a separate GJC-only spec directory.
Interactive startup checks GitHub releases for a newer GJC version in the background by default. This check is notify-only and non-mutating: GJC never installs or replaces itself during launch.
- Standalone binary or former Bun/npm install on a supported platform →
gjc updatedownloads and atomically replaces the matching GitHub release binary (package-manager shims are not overwritten; a user binary path is used and PATH migration is printed). - Source checkout or
dev:linkexecutable → update, pull, build, and link through that checkout's original workflow.gjc updaterefuses to self-overwrite it. - Unsupported platform or unknown target → rerun the documented platform installer.
Run gjc config set startup.checkUpdate false to disable the launch-time check. Network failures are ignored so they do not block startup.
gjc update resolves stable from GitHub /releases/latest and nightly from the newest published GitHub prerelease. Optional GITHUB_TOKEN / GH_TOKEN raises API rate limits. --check, --force, and channel switch-back semantics are unchanged.
Provider retry budgets live in ~/.gjc/config.yml:
retry:
requestMaxRetries: 4
streamMaxRetries: 100
maxRetries: 3
maxDelayMs: 300000requestMaxRetries applies before a stream is established. streamMaxRetries applies only to replay-safe transient stream failures. Invalid auth, unsupported models/providers, malformed requests, context overflow, user aborts, and permanent quota failures remain fail-fast.