
هر وبسایتی که استفاده میکنم یک قابلیت مشترک کم دارد: راهی برای نگاه سریع به مقصد یک لینک بدون ترک صفحه. در مکبوک ایر میتوان با فشردن کلید Space روی هر فایل، پیشنمایش فوری آن را دید و در ویندوز نیز ابزار PowerToys Peek همین کار را انجام میدهد. اما لینکها همچنان در تب جدید باز میشوند و کاربر پس از نگاهی دوثانیهای با Cmd + W آن را میبندد. نویسنده XDA میگوید روزی حدود بیست بار این کار را انجام میدهد.
او روز دوشنبه از Claude، عامل کدنویسی هوش مصنوعی (AI coding agent) مورد علاقهاش، خواست این قابلیت گمشده را بهصورت یک افزونه مرورگر بسازد. با اینکه توسعهدهنده نیست، توانست در کمتر از یک روز افزونهای به نام «Quick Look for LINKS» بسازد و آن را بهصورت رایگان منتشر کند.
از یک پیام طولانی تا نسخه اولیه
اولین پیام او در حدود ساعت ۱۰:۳۰ شب دوشنبه ارسال شد و بیشتر شبیه نامهای به یک طرفدار بود تا یک مشخصات فنی (spec). خواسته اصلی چنین بود: نشانگر را روی هر لینک ببرید، Space را فشار دهید و یک پنل مات با محتوای صفحه ببینید. کلیدهای جهتدار باید مثل حرکت میان فایلها به لینک بعدی بروند، Option + Space پنجره را تمامصفحه کند و Return لینک را واقعاً باز کند.
فهرست ایمنی او نیز شامل این موارد بود: هیچچیز با هاور (Hover) بارگذاری نشود، کوکی (Cookie) ارسال نشود، سروری در کار نباشد و لینکهای پرخطر رد شوند. او در پایان نوشت: «کاملاً جلو برو، بدون توجه به زمان سپریشده و توکنهای مصرفشده.»
Claude پیش از نوشتن کد، یک نقشه راه ارائه داد: چهار نوع پیشنمایش شامل Live، Reader، Summary و رسانه (Media) برای تصاویر، یوتیوب و PDFها؛ یک قاب بسته (Sealed Frame) برای هر پیشنمایش؛ و یک برنامه تست. سپس افزونه را ساخت: حدود ۴۸۰۰ خط کد اختصاصی، بهعلاوه کتابخانه Readability موزیلا برای نمای Reader. کمی پیش از نیمهشب، نسخه ۱.۰ بهصورت یک فایل ZIP در پوشه Documents او آماده بود. نسخه فعلی بهصورت رایگان در GitHub در دسترس است.
آیا عامل هوش مصنوعی میتواند باگهای خودش را پیدا کند؟
Claude پیش از آنکه نویسنده چیزی ببیند، افزونه را در نسخه اختصاصی خود از Chromium تست کرده و مجموعهای از باگها را رفع کرده بود. پیشنمایش یوتیوب تا زمانی که یک قانون ارجاعدهنده (Referrer Rule) اضافه نشده بود، خطای ۱۵۳ نشان میداد. در ویکیپدیا، کلیدهای جهتدار فقط میان سه لینک جابهجا میشدند، چون لینکها بیش از حد محدود گروهبندی شده بودند.
یک عامل Claude دوم نیز کد را از نظر امنیتی بررسی کرد و حفرهای یافت که هر وبسایتی میتوانست صفحه پیشنمایش را جاسازی کرده و آن را کنترل کند. نویسنده میگوید خودش هرگز چنین چیزی را نمیدید، عمدتاً چون نمیدانست چنین امکانی وجود دارد.
اولین گزارش باگ خودش چندان چشمگیر نبود: افزونه را روی MacBook Air M2 نصب کرد و نوشت نمیداند باز شده یا نه، اما با بردن نشانگر روی «Learn more» و فشردن Space، باز میشود. در واقع باز میشد. با این حال یک باگ واقعی پیدا شد: پس از باز شدن پیشنمایش، ابزار مرورگر خود Claude کنترل آن تب را از دست میداد. در ساعت ۱۲:۳۳ بامداد، نسخه ۱.۰.۱ شروع به حذف قاب پیشنمایش ۲۰ ثانیه پس از بستن آن کرد.
نسخه ۱.۱ و مقابله با سایتهای سرسخت
بعدازظهر روز بعد، نویسنده افزونه را مثل یک کاربر عادی به کار گرفت و در یک پیام طولانی درباره چهار سایتی نوشت که افزونه را خراب میکردند.
یوتیوب از قبل مالک کلید Space است، چون با آن ویدیو را متوقف و فید را اسکرول میکند. اکنون Shift + Space لینکها را در همه سایتها پیشنمایش میدهد، در حالی که Space ساده در یوتیوب، Google Docs، Figma و چند سایت دیگر دستنخورده میماند.
WhatsApp Web پیام «امکان اتصال وجود ندارد» را نشان میداد، چون واتساپ فقط قابهایی را میپذیرد که خودش اجازه داده باشد. Claude حالا قاب را در حالتی بازسازی میکند که Chrome در آن سایت مجاز میداند، اما فقط زمانی که قاب عادی پاسخی ندهد. تلاش اول آن حالت را همهجا به کار برد و بهطور خاموش تنظیمی را خراب کرد که به سایتهای منتخب اجازه استفاده از کوکیهای کاربر را میداد؛ این مشکل در بازبینی دوم گرفته شد.
در صفحه حساب یک فروشگاه، فشردن Space روی «Log out» فقط صفحه را اسکرول میکرد. اگر افزونه بتواند مقصد یک دکمه را بدون اجرای آن بخواند، پیشنمایش میدهد. در غیر این صورت، حباب کوچکی میگوید «Log out» یک اقدام را اجرا میکند و بنابراین فشرده نخواهد شد. لینکهای خروج از حساب، لغو اشتراک، حذف و ورود یکباره رد میشوند، مگر اینکه کاربر گزینه Preview Anyway را انتخاب کند.
صفحات XDA همیشه در Reader باز میشدند، چون سایت به مرورگرها میگوید آن را داخل صفحات دیگر نشان ندهند. اکنون صفحه زنده بهصورت پیشفرض داخل قاب بسته و خارج از حساب کاربری بارگذاری میشود. اینستاگرام نیز چیزی جز دیوار ورود نشان نمیداد، بنابراین سایتهای اجتماعی روی کارت Summary میمانند. نویسنده آن پیام را با این جمله تمام کرد: «دیگر از من نخواه که چیزی را بررسی کنم.» نسخه ۱.۱ ساعت ۴:۰۱ بعدازظهر منتشر شد.
نسخه ۱.۲ و انتشار عمومی
برای انتشار عمومی، نام افزونه به «Quick Look for LINKS» تغییر کرد و Claude هنگام تست مجدد دو باگ دیگر پیدا کرد. در حدود یک اجرا از هر چهار اجرا، Space پس از بسته شدن پیشنمایش هیچ کاری نمیکرد، چون فوکوس در قاب پنهان گیر میکرد. پس از یک بهروزرسانی نیز ممکن بود یک نسخه قدیمی، راهنمای هاور را دو بار نشان دهد. هر دو در نسخه ۱.۲ رفع شدهاند. وقتی اتصال GitHub کار نکرد، Claude همهچیز را از طریق وبسایت GitHub در Chrome نویسنده بارگذاری کرد: ده کامیت (Commit) و یک انتشار (Release).
نکته مهم این است که افزونه در Chrome Web Store نیست. برای نصب باید حالت توسعهدهنده (Developer Mode) را فعال کرده و گزینه Load unpacked را انتخاب کنید. اگر گزینه «On every website» را انتخاب کنید، Chrome هشدار میدهد که افزونه میتواند همه دادههای شما را بخواند و تغییر دهد، چون پیشنمایش هر لینک یعنی دسترسی به هر سایت. حالت بهازای هر سایت (Per-site Mode) از این هشدار جلوگیری میکند. صفحات پشت ورود، نسخه خارج از حساب را نشان میدهند، چون پیشنمایشها بهصورت پیشفرض کوکی نمیفرستند.
در ویندوز، مراحل نصب در Chrome یا Edge یکسان است. بهجای Cmd از Ctrl استفاده کنید یا میانبر را در تنظیمات به Ctrl + Space تغییر دهید تا با PowerToys Peek هماهنگ شود.
نویسنده میگوید نمیتواند برای تکتک خطوط آن کد ضمانت کند، اما میتواند برای تستها، دو بازبینی و شبهایی که از آن زمان تاکنون Space را روی همهچیز فشار داده، ضمانت کند. او هنوز تب باز میکند، اما تعداد تبهای بیمصرف کمتر شده است.
او تأکید میکند که این افزونه را خودش ننوشته؛ آن را توصیف کرده، خراب کرده و با حروف کوچک از آن شکایت کرده تا کار کند. به باور او، یک عامل کدنویسی هوش مصنوعی تنها به اندازه گزارشهای باگی که دریافت میکند خوب است و گزارشهای او در روز دوم بهتر شد. او خط زمانی را گفته تا نشان دهد این کار در یک روز پر از مولتیتسکینگ انجام شده و امیدوار است افراد بیشتری کار خود را با هوش مصنوعی روانتر کنند.