Skip to content

Instantly share code, notes, and snippets.

@ink-splatters
Created January 29, 2026 05:32
Show Gist options
  • Select an option

  • Save ink-splatters/de356f10fd0348484f3228bc388e204c to your computer and use it in GitHub Desktop.

Select an option

Save ink-splatters/de356f10fd0348484f3228bc388e204c to your computer and use it in GitHub Desktop.
#!/usr/bin/env -S uv run --script
# /// script
# dependencies = ["requests"]
# ///
import dataclasses as d
import json
import logging
import re
import sys
import requests
logging.basicConfig(stream=sys.stderr, level=logging.INFO)
logger = logging.getLogger("fetch-meta")
gcs_bucket = "https://storage.googleapis.com/claude-code-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/claude-code-releases"
_version_re = re.compile(r"^\d+\.\d+\.\d+$")
@d.dataclass(frozen=True, slots=True)
class PlatformEntry:
checksum: d.InitVar[str]
size: int
url: str = ""
sha256: str = d.field(init=False)
def __post_init__(self, checksum: str) -> None:
object.__setattr__(self, "sha256", checksum)
@d.dataclass(frozen=True, slots=True)
class Manifest:
version: str
build_date: str
platforms: dict[str, PlatformEntry]
def fetch_latest_version() -> str:
url = f"{gcs_bucket}/latest"
logger.debug(f"fetching latest version from {url}")
r = requests.get(url)
r.raise_for_status()
version = r.text.strip()
if not _version_re.match(version):
raise ValueError(f"invalid version format: {version!r}")
logger.debug(f"latest version: {version}")
return version
def manifest_with_urls() -> Manifest:
version = fetch_latest_version()
url = f"{gcs_bucket}/{version}/manifest.json"
logger.debug(f"fetching manifest from {url}")
r = requests.get(url)
r.raise_for_status()
data: dict = r.json()
logger.debug(f"raw manifest: {data}")
platforms = {
platform.replace("-x64", "-x86_64"): PlatformEntry(
url=f"{gcs_bucket}/{version}/{platform}/claude",
**entry,
)
for platform, entry in data["platforms"].items()
}
return Manifest(
version=data["version"],
build_date=data["buildDate"],
platforms=platforms,
)
if __name__ == "__main__":
try:
logger.info("Getting meta info...")
manifest = manifest_with_urls()
print(json.dumps(d.asdict(manifest), indent=2))
except Exception as e:
logger.error(str(e))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment