
























The upstream also ships an official .tar.gz at /tar/ alongside the .deb — same certificate.pem + signature.bin verification, same content, no ar extraction needed. I've set up a fully automated PKGBUILD at https://github.com/sandikodev/kiro-ide-bin with GitHub Actions that auto-detects new releases via the metadata endpoint, recomputes b2sums, regenerates .SRCINFO, and pushes to AUR — currently tracking as kiro-ide-bin. Happy to discuss switching the source here or merging efforts.
I am running into an error where I cannot run the agent at all in the IDE. It says:
Error loading webview: Error: Could not register service worker: InvalidStateError: Failed to register a ServiceWorker: The document is in an invalid state..
I am running on:
Version: 0.7.34
VSCode Version: 1.103.2
Commit: 10e7867effbfe2a9de66f568f87beba944a7bc36
Date: 2025-12-09T00:02:44.764Z
Electron: 37.10.2
ElectronBuildId: undefined
Chromium: 138.0.7204.251
Node.js: 22.21.1
V8: 13.8.258.32-electron.0
OS: Linux x64 6.17.9-arch1-1
Because of reasons (listed here), I think source code will never be available, so the -bin isn't needed. Instead, I think this should be named kiro-ide since Amazon refers to the software as Kiro IDE, now that a CLI component exists. As such I'm requesting a merge of this into kiro-ide
Oops! sorry it was not included in the sources. Fixed in version 1:0.6.18-3.
1:0.6.18-2 versionI’m getting this error during install:
install: cannot stat 'Kiro-LICENSE.txt': No such file or directory
@nsomnia Just a heads up, this brute force approach isn't necessary and might put undesirable load on their server. Instead, there's an official metadata endpoint that provides the current stable release version:
https://prod.download.desktop.kiro.dev/stable/metadata-linux-x64-stable.json
You can do curl <url> | jq .currentRelease to get the latest version directly. I have this set up in the .nvchecker.toml, so it's easy to check if the package is out of date with pkgctl version check (with devtools package installed).
Just a python rewrite, if anyone needs:
#!/usr/bin/env python3
import os
import sys
import requests
import datetime
import time
from concurrent.futures import ThreadPoolExecutor, as_completed
import argparse
import threading
# Config
BASE_URL = "https://prod.download.desktop.kiro.dev/releases"
SUFFIX = "--distro-linux-x64-tar-gz"
TAR_SUFFIX = "-distro-linux-x64.tar.gz"
USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64)"
OUT_DIR = "./kiro_attempts"
WORKING_VERSIONS_FILE = os.path.join(OUT_DIR, "working_versions.txt")
WORKING_URLS_FILE = os.path.join(OUT_DIR, "working_urls.txt")
MAX_WORKERS = 5 # Adjust concurrency here
REQUEST_TIMEOUT = 5 # seconds
lock = threading.Lock() # To synchronize file writes
def get_last_timestamp():
if os.path.exists(WORKING_VERSIONS_FILE):
with open(WORKING_VERSIONS_FILE, "r") as f:
lines = [line.strip() for line in f if line.strip()]
if lines:
return lines[-1]
return None
def generate_timestamps(start_dt, end_dt):
current = start_dt.replace(second=0, microsecond=0)
while current <= end_dt:
yield current.strftime("%Y%m%d%H%M")
current += datetime.timedelta(minutes=1)
def check_url(ts, verbose=False):
url = f"{BASE_URL}/{ts}{SUFFIX}/{ts}{TAR_SUFFIX}"
headers = {"User-Agent": USER_AGENT}
try:
resp = requests.head(url, headers=headers, timeout=REQUEST_TIMEOUT)
if resp.status_code == 200:
# Save results safely
with lock:
with open(WORKING_VERSIONS_FILE, "a") as f1, open(WORKING_URLS_FILE, "a") as f2:
f1.write(ts + "\n")
f2.write(url + "\n")
print(f"✅ Found: {ts}")
return True
else:
if verbose:
print(f"❌ {ts} (HTTP {resp.status_code})")
return False
except Exception as e:
if verbose:
print(f"⚠️ {ts} error: {e}")
return False
def main():
parser = argparse.ArgumentParser(description="Concurrent Kiro timestamp URL checker")
parser.add_argument("--verbose", "-v", action="store_true", help="Show failures too")
parser.add_argument("--start-timestamp", type=str, help="Start timestamp YYYYMMDDHHMM")
args = parser.parse_args()
os.makedirs(OUT_DIR, exist_ok=True)
if args.start_timestamp:
start_ts = args.start_timestamp
print(f"🚀 Starting from custom timestamp: {start_ts}")
else:
last = get_last_timestamp()
if last:
start_ts = last
print(f"📜 Loaded last timestamp from file: {start_ts}")
else:
week_ago = datetime.datetime.utcnow() - datetime.timedelta(days=7)
start_ts = week_ago.strftime("%Y%m%d%H%M")
print(f"🕒 No last timestamp found, defaulting to 7 days ago: {start_ts}")
try:
start_dt = datetime.datetime.strptime(start_ts, "%Y%m%d%H%M")
except ValueError:
print("❌ Invalid timestamp format. Use YYYYMMDDHHMM")
sys.exit(1)
end_dt = datetime.datetime.utcnow().replace(second=0, microsecond=0)
timestamps = list(generate_timestamps(start_dt, end_dt))
print(f"⏳ Checking {len(timestamps)} timestamps from {start_dt} to {end_dt}")
with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
futures = {executor.submit(check_url, ts, args.verbose): ts for ts in timestamps}
try:
for future in as_completed(futures):
future.result() # We handle output inside check_url
except KeyboardInterrupt:
print("\n🛑 Interrupted by user.")
executor.shutdown(wait=False)
sys.exit(1)
print("✅ Done checking timestamps.")
if __name__ == "__main__":
main()
Blasts, like Frank Raynolds comes in BLASTING, through the URLs in essentially seconds. Whats his name Theo on Youtube said Kiro is kinda useless unless your using it on enterprise level codebases though due to its system instruction complexity.
@lisniper Thanks for the report and HN link. This appears to be an upstream bug affecting multiple users where the Google login fails to open the browser, though I can't reproduce it on Plasma with Firefox.
To help with debugging: Open Kiro's developer console (Help -> Toggle Developer Tools) before clicking Google login and capture any errors.
Next steps: This should be reported upstream in their GitHub issues or Discord with your console output and environment details (DE/WM, default browser). The extension host crashes from the HN post suggest an application-level auth handling bug rather than a packaging issue. I'll update the package once they provide a fix.
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。
thanks for the suggestion, but I'm using the deb because it bundles the desktop files, shell completions, and metadata files. we don't need to do any special ar extraction, makepkg automatically unpacks the deb, then prepare() extracts the compressed tarball.