Repository navigation
Conversation
Adds install.sh at the repository root so the standalone quickstart is a single curl | sh. The script is POSIX sh, detects the platform, resolves the latest release (or AIGW_VERSION), downloads the release binary with a progress bar, verifies its SHA-256 (checksums.txt, then the GitHub API asset digest, then a warning for older releases), and installs it to AIGW_INSTALL_DIR (default ~/.local/bin) without sudo. Intel Macs and other unsupported platforms get a clear error pointing at the Docker image. Works with curl or wget. The release workflow now publishes checksums.txt next to the CLI binaries, netlify.toml redirects /install.sh on the project domain to the raw script on main, the CLI installation docs lead with the one-liner, and a non-blocking CI job smoke-tests the script against the latest release on ubuntu-latest and macos-latest. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJhXwqNkhcmPtPjAQrri68 Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
…aigw Check that AIGW_INSTALL_DIR exists and is writable before pulling the ~300 MB binary so a bad directory fails in milliseconds instead of after the download. After installing, warn when another aigw earlier on PATH (e.g. a Go build in ~/go/bin) would shadow the freshly installed binary, since "Installed" followed by "aigw" running the old copy is confusing. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
Resolves the conflict in .github/workflows/build_and_test.yaml where the new test_install_script job and upstream's compute_version job (theagentrouter#2580) were both inserted after test_e2e_aigw. Both jobs are kept, and the checkout action pin in test_install_script is aligned with the SHA upstream now uses. Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #2617 +/- ##
==========================================
- Coverage 86.33% 86.33% -0.01%
==========================================
Files 183 183
Lines 24404 24404
==========================================
- Hits 21070 21068 -2
- Misses 2160 2161 +1
- Partials 1174 1175 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
✅ Deploy Preview for theagentrouter canceled.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Resolves conflicts from the Agent Router rebrand and the move of the repository to theagentrouter/agent-router: - README: keep upstream's rewritten link list, and put the install one-liner into the new Quick start section ahead of `aigw run`. - CLI installation docs: keep upstream's releases link, keep the checksums.txt note, and update the install URLs to the new repository and the theagentrouter.ai alias. - netlify.toml: place the /install.sh rule after upstream's domain-wide rule and point it at the new repository. - install.sh: download from theagentrouter/agent-router directly instead of relying on GitHub forwarding the old name. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJhXwqNkhcmPtPjAQrri68 Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
missBerg
force-pushed
the
claude/aigw-one-command-installer-nrzk1d
branch
from
October 8, 2026 22:17
673832e to
382bd98
Compare
Download the binary into the install directory and rename it into place instead of moving it from /tmp. The rename is atomic on the same filesystem, so a failure can no longer leave a truncated aigw behind, and a small tmpfs /tmp is not a problem for a ~300 MB file. mktemp creates the file as 0600, so set 755 explicitly. Route INT and TERM through the EXIT trap so Ctrl-C always removes the partial download and exits with the conventional status, rather than relying on the download child dying first. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EJhXwqNkhcmPtPjAQrri68 Signed-off-by: Erica Hughberg <erica.sundberg.90@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This commit adds a one-command installer for the
aigwCLI so the standalonequickstart becomes a single
curl | sh:Today the CLI docs point users at the GitHub releases page to download a
binary by hand, pick the right platform,
chmod +xit, and move it onto theirPATH. The install script does that for them and adds checksum verification,
which the manual path never had.
install.shis POSIXshwith no dependencies beyondcurlorwget. Itdetects the platform, resolves the latest release (or
AIGW_VERSION),downloads the release binary, verifies its SHA-256, and installs it into
AIGW_INSTALL_DIR(default~/.local/bin) without ever usingsudo.Checksums come from a
checksums.txtasset when the release has one, fallingback to the per-asset digest the GitHub API reports, so verification also
works for every existing release. The script validates the install directory
before downloading, and warns when another
aigwearlier onPATHwouldshadow the one it just installed. Intel Macs and other unsupported platforms
get a clear error pointing at the Docker image, since Envoy no longer
publishes macOS amd64 builds and
aigwdownloads Envoy at runtime.Alongside the script:
checksums.txtnext to the CLI binaries.netlify.tomlredirectshttps://aigateway.envoyproxy.io/install.shto theraw script on
main, giving a stable URL that survives a repository move.variables, and add a supported-platforms table.
shellcheckon the script and smoke-tests itagainst the latest published release on
ubuntu-latestandmacos-latest,so the script cannot silently rot.
AI assistance was used to draft the script and this description. Every
change was reviewed and tested by hand on macOS arm64: default install,
pinned version, replace-existing, unwritable directory, unsupported
platforms, and a nonexistent release tag, followed by
aigw runserving/v1/chat/completionsend to end.Related Issues/PRs (if applicable)
Related PR: #2598
Special notes for reviewers (if applicable)
raw.githubusercontent.comURL and the Netlify redirect only work oncethis lands on
main. Until then the script can be tested from a branch URLor by running
sh install.shfrom a checkout.checksums.txtis only produced by releases cut after this merges. Forolder releases, including the current v1.1.0, the script verifies against
the GitHub API asset digest instead, which I confirmed matches the real
binary hash.
continue-on-error: trueon purpose. It depends onGitHub Releases being reachable and on the latest release having a binary
for the runner, so it is advisory rather than a required check.
of scope here and can follow separately.