به عوامل هوش مصنوعی خود اجازه دهید فلشها، کادرها و متنهای بزرگ را روی صفحه نمایش شما نقاشی کنند
آدرس مقاله: https://github.com/franzenzenhofer/big-arrow-on-the-screen آدرس نظرات: https://news.ycombinator.com/item?id=50018817 امتیاز: 270 # نظرات: 112
big-arrow-on-the-screen (bigarrow) یک ابزار خط فرمان macOS، به علاوه یک مهارت برای Claude Code و Codex است که یک فلش و یک علامت در بالای هر پنجره میکشد. کلیکها به برنامه زیر میرود، فوکوس صفحهکلید شما در جایی که هست باقی میماند و پیکان خود را حذف میکند. دارای مجوز MIT
عامل هوش مصنوعی شما میتواند یک monorepo را اصلاح کند، یک مهاجرت بنویسد و مونادها را توضیح دهد، اما زمانی که نیاز دارد شما روی یک دکمه کلیک کنید، در پایانهای که به آن نگاه نمیکنید، «لطفا روی Allow در گفتگو کلیک کنید» چاپ میکند. بیگارو به آن انگشت می دهد.
فلش در پنجره شفاف خودش بالای همه پنجرههای دیگر، روی هر نمایشگر و هر فضایی زندگی میکند. روی زمین مورد نظر در برنامه زیر کلیک میکند و طراحی اصلا به مجوز macOS نیاز ندارد. این یک باینری سوئیفت است: بدون دیمون، بدون نماد نوار منو، بدون حساب، بدون تله متری، و دو بار بررسی کردیم، هیچ هوش مصنوعی در داخل آن وجود ندارد. یک تیر است.
سوال منصفانه فلش ها تقریبا از دوران پارینه سنگی وجود داشته اند. این چیزی است که تغییر کرده است: عاملهای نرمافزار اکنون کار واقعی را روی مک شما انجام میدهند و دیر یا زود به مرحلهای میرسند که فقط یک انسان میتواند انجام دهد، یا مرحلهای که انسان میخواهد آن را یاد بگیرد.
چیزی که نیست: یک حاشیه نویس صفحه برای انسان، یک ربات کلیک، یا یک ابزار اسکرین شات. هیچوقت کلیک نمیکند، تایپ نمیکند یا چیزی را ضبط نمیکند. فقط اشاره می کند. به عمد.
این بار بدون دیالوگ های جعلی. برنامههای واقعی در مک آزمایشی (macOS 27)، محتوای آزمایشی خنثی، نمایه مرورگر تازه، و bigarrow واقعی، که توسط scripts/real-scenes.sh صحنهسازی شدهاند. هر دستور زیر دقیقا همان چیزی است که اجرا می شود. اسکریپت فقط --no-animation --json را برای اسکرین شات اضافه می کند.
راهنمایی یک انسان از طریق مجوز: یک پیوند عمیق پنجره دقیق را باز می کند، فلش یک سوئیچ را پیدا می کند و علامت می گوید که چه کاری انجام می دهد. (در macOS 27 پانل به نام Device Control and Data Access نامیده می شود. هیچ کس نمی توانست آن را با نام قدیمی پیدا کند.)
آموزش یک برنامه: "کجا یک انتقال اضافه کنم؟" دو مرحله شماره گذاری شده، هر دو روی صفحه، در نوار ابزاری که کلمات را رها کرده است.
کمک به والدین در اشتراکگذاری صفحه، بدون بیست دقیقه «دکمه کوچک، پایین سمت چپ، نه، چپ».
--app "App:tab title" پنجره سمت راست را به جلو می آورد و برگه را قبل از اشاره انتخاب می کند. نماینده می دانست که منظور کدام برگه است. حالا تو هم همینطور.
راهنما از راه دور، به روز شده برای macOS 27: نماد چرخ دنده از بین رفته است، اما اکنون دو نماد شبکه وجود دارد و همیشه یکی دیگر است.
یک برنامه شوخی نیست: چگونه می توان ضبط صفحه در مک را مجاز کرد، یک راهنمای گام به گام واقعی که هر اسکرین شات آن تیری است که یک مامور با بیگارو کشیده است.
از منبع: نسخه swift build -c (Xcode 16 یا جدیدتر، macOS 14 یا جدیدتر)، باینری در .build/release/bigarrow. باینری فقط Swift است. فایل های پوسته و پایتون در اسکریپت ها / اسکرین شات ها را ضبط کرده و آزمایش ها را اجرا کنید.
هر تیری به خودی خود به پایان می رسد. هیچکس مجبور نیست بعد از ماموری که فراموش کرده است پاک کند:
اهداف: --در X,Y , --rect X,Y,W,H , --Mouse , --Window App[:title] , --element Label --app App , --peekaboo ID --snapshot see.json (از Peekaboo's see --json ). مختصات، نقاط منطقی سراسری بالا سمت چپ، فضای دسترسی، CGWindowList و گزارش Peekaboo هستند. --display N نسبت به یک نمایشگر --at و --rect می سازد.
یک فلش به برنامه ای که به آن اشاره می کند گره خورده است. با برنامه --app[:window or tab title] (یا --window)، bigarrow ابتدا آن برنامه، پنجره یا برگه Chrome/Safari را به جلو میآورد، زیرا اشاره به پنجرهای که در پشت ترمینال شما پنهان شده است، نوع خاصی مفید نیست. اگر بعدا برنامه دیگری هدف را پوشش دهد، فلش پنهان می شود تا زمانی که هدف دوباره قابل مشاهده باشد. --بدون افزایش پنجره های شما را در جایی که هستند رها می کند. عناصر bigarrow --app X فهرستی از عناصر -- می تواند مطابقت داشته باشد. Bigarrow دکتر مجوزها، مالک آنها و نمایشگرهای شما را نشان می دهد.
هر دستوری --json را می گیرد. کدهای خروج: 0 خوب، 2 ورودی بد، 3 هدف یافت نشد، 4 مجوز وجود ندارد. ماموران عاشق کدهای خروج هستند. انسانها آنها را تحمل می کنند.
این یک فلش است، بنابراین ما زمان غیر منطقی را صرف نحوه ظاهر آن کردیم.
اسکرینشاتهای واقعی در یک دستگاه تست تمیز، شش حالت سفید، خاکستری macOS، تیره، سیاه، قرمز و یک صفحه وب شلوغ:
شفت از طریق یک مفصل گشاد شده که هرگز به گوشهای گرد نمیرود از علامت رشد میکند. scripts/gallery.py هر ترکیبی را خارج از صفحه نمایش می دهد و در هر مفصل (اتصالات) بزرگنمایی می کند، زیرا ظاهرا یک درز در محل اتصال غیرقابل قبول بود.
با یک گفتگوی نمایشی خنثی صحنهسازی شد و با بیگارو واقعی روی یک رانر CI تمیز ضبط شد (BACKDROP_ARGS=--cover scripts/funny-scenes.sh). دیالوگ ها جعلی هستند احساسات واقعی هستند.
--شکل زیگزاگ --رنگ نارنجی: زیگزاگی، برای مواقعی که واقعا ضروری است
- مارپیچ شکل: یک بار در اطراف علامت، سپس به دکمه
--دکمه بستن، زیرا انسان حرف آخر را می زند
جعبه --style --گوشه های تیز، به علاوه یک درس در مورد مجوزهای macOS
آیا به ضبط صفحه یا قابلیت دسترسی نیاز دارد؟ نقاشی نیازی به چیزی ندارد. برخی از راه های یافتن هدف:
macOS این مجوزها را به برنامهای که bigarrow را راهاندازی کرده است، که ترمینال یا IDE شما است (Terminal، iTerm2، Ghostty، VS Code، Claude) میدهد، هرگز خودش را بزرگتر نکند. بنابراین این برنامه ای است که در تنظیمات سیستم روشن می کنید. bigarrow doctor به شما میگوید کدام برنامه است، و وقتی مجوزی از دست میرود، دستور با کد 4 خارج میشود و نام برنامه و صفحه تنظیمات را نامگذاری میکند.
هرگز تمرکز را نمی گیرد. جلوش چطوره؟ در macOS، بالا بودن و فوکوس صفحه کلید دو چیز جداگانه هستند. پنجره پیکان در سطح پنجره محافظ صفحه، بالاتر از پنجره های معمولی، دیالوگ ها و برنامه های تمام صفحه قرار می گیرد، اما هرگز به پنجره فعال تبدیل نمی شود، بنابراین هر چیزی که تایپ می کنید به همان جایی که می رفت ادامه می یابد. با --app، ابتدا برنامه ای که به آن اشاره می شود به جلو آورده می شود.
آیا در حین تایپ کردن، تمرکز من را از بین می برد؟ نه. این سختترین اشکال پروژه بود: NSApplication.run() بی سر و صدا فرآیندی را فعال میکند که ترمینال ندارد، بنابراین فلشهای جدا شده تمرکز را جلب میکنند. bigarrow خود رویدادها را به جای آن پمپ میکند، و آزمایشها بررسی میکنند که برنامه جلویی هرگز تغییر نمیکند.
آیا می توانم از طریق آن کلیک کنم؟ بله، در همه جا به جز علامت و شفت: یک کلیک در آنجا فلش را حذف می کند (زیر اشاره گر برای گفتن آن کمی کم می شود). یک کلیک روی هدف یا هر جایی نزدیک به سر فلش، مستقیما به برنامه می رود. با کلیک بر روی فلش هرگز تمرکز نمی شود.
نمایشگرهای متعدد؟ برنامه های تمام صفحه؟ مدیر صحنه؟ فضاها؟ بله، بله، بله، بله. نمایش سمت چپ یا بالاتر از اصلی (مختصات منفی) گنجانده شده است. در حالی که یک صفحه نمایشگر روی آن است و فلش مودبانه خارج می شود، آن را از برق جدا کنید. ماتریس تأیید را ببینید.
قیمت یک پیکان ضربان دار CPU چقدر است؟ 1.4 درصد بر روی دونده CI اندازه گیری شد. Core Animation کار را در سرور رندر انجام می دهد.
آیا عنصر -- در داخل صفحات وب کار می کند؟ در برنامه های الکترون، بله. در Chrome، فقط زمانی که Chrome با --force-renderer-accessibility اجرا می شود (یا VoiceOver روشن است). Chrome درخواست معمول برای افشای محتوای صفحه را که در اکتبر 2026 در Chrome تأیید شد، نادیده میگیرد. نوار ابزار خود Chrome همیشه کار میکند. در غیر این صورت به مختصات صفحه اشاره کنید که مهارت توضیح می دهد.
آیا یک نماینده می تواند از این برای فریب دادن من استفاده کند، مثلا با پوشاندن دکمه Decline؟ می تواند روی یک دکمه بکشد، بله. اما عاملی که دستورات شل را اجرا میکند، زیرا شما میتوانید فایلهای خود را بخوانید و هر برنامهای را اجرا کنید، بنابراین Bigarrow چیز جدیدی به آن نمیدهد. آنچه را که Bigarrow خود تضمین می کند، هر کدام با یک آزمایش بررسی می شود: جعبه ها و حلقه ها خطوط کلی هستند، بنابراین هدف قابل مشاهده می ماند. هر زمان که جایی در اطراف آن وجود داشته باشد، علامت دور از هدف قرار می گیرد، و در جایی که وجود ندارد (هدفی که بیشتر صفحه نمایش را پر می کند)، تا حد امکان کمتر با هدف همپوشانی دارد. با کلیک بر روی علامت یا شفت، فلش حذف می شود. هر فلش
خود به خود تمام می شود هیچوقت کلیک نمیکند، تایپ نمیکند یا چیزی را ضبط نمیکند. و وقتی نماینده از شما میخواهد چیزی را تأیید کنید، مهارت نشان میدهد که روی علامت میگوید کلیک چه کاری انجام میدهد، بنابراین شما با حقایق پیش روی خود تصمیم میگیرید.
چرا یک مهارت؟ آیا این تعداد توکن زیاد است؟ نماینده همیشه فقط توضیحات مهارت را می بیند، حدود 190 توکن. دستورالعملهای کامل، حدود 2200 توکن (با API شمارش توکن Anthropic برای Claude Opus 5.5 محاسبه میشوند)، تنها زمانی بارگیری میشوند که نماینده تصمیم به اشاره داشته باشد. آنها به آن یاد می دهند که چه زمانی باید اشاره کند، چگونه هدف را پیدا کند و چه چیزی را روی علامت بنویسد. شما همچنین می توانید مهارت را نادیده بگیرید و خودتان باگرو تماس بگیرید.
چرا فقط از [برخی از برنامه حاشیه نویسی صفحه] استفاده نمی کنید؟ اینها برای انسان هایی است که روی صفحه نمایش نقاشی می کنند. این برای برنامه هایی است که از یک پوسته، با کدهای خروج به چیزها اشاره می کنند. بیست و شش ابزار قبل از نوشتن یک خط (تحقیق) بررسی شد. هیچ کدام این کار را نکردند
آیا هوش مصنوعی است؟ نه. این کمهوشترین بخش پشته هوش مصنوعی شماست و به آن افتخار میکنید.
مهارت در skill/big-arrow/ هم برای کلود کد و هم برای کدکس کار میکند (یک SKILL.md، فرمت Agent Skills، به علاوه agents/openai.yaml برای Codex). به نماینده میگوید چه زمانی باید اشاره کند، چگونه یک هدف را انتخاب کند، یک جمله کامل روی علامت بنویسد، اضافه کند - مثلا زمانی که احتمالا نگاه نمیکنید، و پس از انجام عمل متوقف شود.
docs/plan/PLAN.md (هدف، معماری، خطرات)، docs/plan/TICKETS.md (تولید شده از docs/plan/tickets.json)، docs/decisions/، docs/research/ (حقایق تأیید شده با پیوندها)، docs/verification/ , docs/LOG, CHms.GE
ویژوالایزر Peekaboo (https://github.com/openclaw/Peekaboo) و Nameplate (https://github.com/steipete/Nameplate) توسط پیتر اشتاینبرگر دستور العمل پنجره روکش و بسته بندی مهارت عامل را نشان داد. هیچ یک از این دو یک فلش اشاره گر را با یک برچسب ترسیم نمی کند، که این شکافی است که این پروژه پر می کند. bigarrow see --json Peekaboo را به عنوان منبع هدف اختیاری می خواند.
متن اصلی (انگلیسی)
Let your AI agents paint big arrows, boxes and text on your screen
Article URL: https://github.com/franzenzenhofer/big-arrow-on-the-screen Comments URL: https://news.ycombinator.com/item?id=50018817 Points: 270 # Comments: 112