>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
JavaScript

Nie rzucający się w oczy asystent AI tuż nad Twoim ekranem

Niedawno natknąłem się na ciekawy projekt open-source o nazwie cue. To niewielka aplikacja, która unosi się jako półprzezroczyste okno nad wszystkimi innymi programami, nasłuchuje rozmów, obserwuje Twój ekran i dostarcza podpowiedzi w czasie rzeczywistym. Najciekawsze jest tutaj to, że integracja z LLM to dopiero początek — prawdziwą innowacją jest sposób, w jaki narzędzie ukrywa się podczas udostępniania ekranu w Zoom, Google Meet czy Teams.

cue first-run tutorial

Jeśli widziałeś płatne usługi takie jak Cluely czy Interview Coder, koncepcja wyda ci się znajoma. Twórca cue postanowił zbudować darmowy odpowiednik o otwartym kodzie źródłowym (licencja GPL-3.0), gdzie możesz podłączyć własny klucz API i pominąć subskrypcje stron trzecich.

Jak działa ten asystent

Aplikacja dzieli przychodzące informacje na trzy niezależne strumienie.

Pierwszy strumień — Twój ekran. Narzędzie wykonuje zrzut ekranu po naciśnięciu skrótu klawiaturowego lub wysłaniu żądania.

Drugi strumień — Twój mikrofon. cue nasłuchuje głosu właściciela komputera i transkrybuje mowę na tekst.

Trzeci strumień — dźwięk systemowy (to, co mówią inni uczestnicy przez Twoje słuchawki). Na Windows przechwytywanie dźwięku systemowego działa przez loopback bez dodatkowej konfiguracji. Na macOS od wersji 14.4 wykorzystuje ScreenCaptureKit przez flagi Chromium.

Kanały uczestników i użytkownika są przetwarzane osobno, więc model dokładnie wie, kto powiedział którą frazę. Następnie kontekst jest wysyłany do wybranego modelu językowego, a odpowiedź strumieniuje słowo po słowie bezpośrednio do okna nakładki.

Co potrafi cue

Interfejs wygląda jak kompaktowy szklany panel. Przestrzeń wokół niego jest klikalna, więc nie przeszkadza w naciskaniu przycisków w edytorze kodu ani przeglądarce.

Oto główne scenariusze użycia:

  • Rozbijanie zadań na ekranie. Naciśnij kombinację klawiszy (domyślnie Ctrl+H na Windows lub Cmd+H na macOS), a aplikacja przechwyci ekran z kodem lub opisem zadania i wyświetli kroki rozwiązania, działający kod oraz oszacowania złożoności czasowej i pamięciowej.
  • Podpowiedzi dialogowe w locie. Przycisk „Co powinienem powiedzieć?” analizuje ostatnie linie rozmówcy i sugeruje logiczną odpowiedź.
  • Podsumowania i pytania. Możesz nacisnąć przycisk, aby podsumować rozmowę lub wygenerować pytania doprecyzowujące dotyczące tematu.
  • Swobodne odpowiadanie na pytania. Możesz wpisać dowolne pytanie w polu wprowadzania, łącząc zrzut ekranu otwartego okna z historią ostatniej dyskusji.

W ustawieniach znajduje się pole z życiorysem zawodowym. Możesz wkleić tam swoje profesjonalne doświadczenie, a asystent będzie czerpać z prawdziwego doświadczenia podczas odpowiadania na trudne pytania.

Lokalna transkrypcja i wybór modeli

Projekt realizuje koncepcję Bring Your Own Key (BYOK). Autor nie ma serwerów, nie ma telemetrii, a klucze są przechowywane lokalnie w pliku cue-data.json.

Obsługiwani dostawcy to OpenAI, Anthropic Claude, Google Gemini, Azure AI Foundry, a także dowolne lokalne lub niestandardowe punkty końcowe zgodne z OpenAI Chat Completions (na przykład Ollama czy vLLM).

Jeśli nie chcesz wysyłać strumienia audio do chmury, możesz przełączyć transkrypcję mowy na whisper.cpp. W ustawieniach audio wybierasz tryb lokalny i pobierasz potrzebny model, od podstawowego base.en po warianty wielojęzyczne i skwantowane. Aplikacja uruchamia lokalny proces whisper-server na tymczasowym porcie i kolejuje audio przez niego. Dane audio nie są zapisywane na dysk, pozostają tylko w RAM.

Jak okno pozostaje niewidoczne podczas demonstracji ekranu

Najciekawszym szczegółem technicznym cue jest jego ochrona przed pojawianiem się w zrzutach ekranu i transmisjach. To nie jest sztuczka z kartą graficzną ani hack z przezroczystością.

Wewnątrz Electron wywoływana jest metoda setContentProtection(true), która bezpośrednio uzyskuje dostęp do mechanizmów systemowych na poziomie systemu operacyjnego:

  1. Na Windows używane jest wywołanie SetWindowDisplayAffinity z flagą WDA_EXCLUDEFROMCAPTURE. Menedżer okien Windows (DWM) po prostu wyklucza okno ze wszystkich strumieni przechwytywania. W starszych kompilacjach Windows 10 (przed 2004) skutkowało to czarnym prostokątem, ale na nowszych wersjach okno staje się całkowicie niewidoczne dla przechwytywania.
  2. Na macOS ustawiana jest flaga NSWindowSharingNone. Informuje serwer okien, aby ukryć okno ze strumieni. Jednak począwszy od macOS 15.4, Apple nieznacznie zmieniło zachowanie API, więc na najnowszych wersjach nie ma gwarancji 100% niewidoczności.

Jest niuans dla Zoom. W ustawieniach klienta musisz włączyć tryb zaawansowany z filtrowaniem okien:

Zoom screen capture mode setting

Bez tego pola wyboru Zoom próbuje przechwycić surowy ekran z pominięciem filtrów prywatności okien. Dla Google Meet i Microsoft Teams nie jest potrzebna dodatkowa konfiguracja — domyślnie respektują flagi systemowe.

Instalacja i uruchomienie

Najłatwiejszym sposobem jest pobranie gotowego pliku binarnego ze strony wydań repozytorium. Kompilacje są dostępne dla Windows x64 i macOS na procesorach Apple Silicon.

Jeśli chcesz zbudować projekt ze źródeł, potrzebujesz Node.js w wersji 22.12 lub nowszej. Kompilacja nie wymaga ciężkich natywnych toolchainów, ponieważ autor celowo napisał klienta w czystym HTML, CSS i JS bez dodatkowych frameworków:

git clone https://github.com/Blueturboguy07/cue.git
cd cue
npm install
npm start

Jeśli planujesz używać lokalnego Whispera ze źródeł, musisz przygotować pliki binarne przed pierwszym uruchomieniem:

npm run prepare:whisper

Po uruchomieniu aplikacji będziesz musiał nadać uprawnienia do mikrofonu i nagrywania ekranu (na macOS), a następnie wkleić swój klucz API w ustawieniach.

Podsumowanie

cue to wyraźny przykład tego, jak standardowe funkcje Electron i API systemowe mogą być połączone, aby zbudować przydatnego towarzysza do rozmów, burzy mózgów czy rozwiązywania problemów technicznych. Kod w repozytorium jest zwięzły i dobrze czytelny, więc projekt jest również świetny dla każdego, kto chce zrozumieć przechwytywanie strumieni audio i kontrolę widoczności okien w aplikacjach desktopowych.

Powiązane projekty