Work Writing About Work with me

Tekst samodzielny

In English →

Szept: ChatGPT rozumiał mój polski. Claude Code, Gmail i Slack już nie

Większość dnia rozmawiam z agentami: Claude Code, Codex, Cursor. Piszę im długie polecenia, pokazuję zrzuty ekranu, tłumaczę, co jest nie tak z layoutem. Dwie rzeczy zabierały mi przy tym najwięcej czasu: pisanie tego wszystkiego ręcznie i opisywanie słowami, co widzę na ekranie. Szept to aplikacja na Maca, którą zbudowałem przede wszystkim dla siebie, żeby oba te problemy zniknęły. Przytrzymuję fn, mówię, puszczam, a tekst pojawia się przy kursorze. Zaznaczam kawałek ekranu, przytrzymuję fn, mówię, co ma zrobić agent, a on dostaje zrzut razem z moim zdaniem.

W tym artykule
Dyktuj, zrób zrzut, nagraj, przekaż: cztery rzeczy, które robi Szept, w kolejności, w jakiej się łączą.

Problem pierwszy: dobre dyktowanie po polsku, ale tylko w cudzej aplikacji

Mówię po polsku, z wtrąconymi angielskimi słowami z produktu. Jedno zdanie do agenta to często „dodaj na onboardingu krok, gdzie user wkleja API key, i od razu sprawdź, czy działa”. Dobre dyktowanie do tego już istnieje: ChatGPT i Cursor mają je wbudowane i działa świetnie. Tyle że tylko w ChatGPT i w Cursorze. W Claude Code, w terminalu czy w mailu nie miałem niczego, czego chciałbym używać. Potrzebowałem jednego narzędzia, które działa w każdej aplikacji, radzi sobie z polskim i angielskimi terminami, jest na tyle lekkie, żeby trzymać je otwarte cały dzień, kosztuje grosze zamiast abonamentu i jednym gestem przekazuje agentowi zrzut ekranu. Każde narzędzie, które znalazłem, spełniało część tych warunków, nigdy wszystkie naraz.

Kiedy zaczynałem budować tę aplikację, rozpoznawanie mowy działało na samym Macu: najpierw Qwen3-ASR na MLX od Apple, potem Whisper od OpenAI przez WhisperKit, którego dodałem właśnie z myślą o polskim. Problemem nie było rozpoznawanie, tylko ciężar: lokalny model to gigabajty pamięci i duże pobieranie, a ja chciałem aplikacji, którą trzymam otwartą cały dzień. Wbudowane dyktowanie w macOS wymaga wyboru jednego języka. Do tego dochodzą „yyy”, powtórzenia i falstarty, które w mowie są naturalne, a w poleceniu dla agenta są szumem.

Przeniosłem więc mowę do chmury, najpierw do ElevenLabs Scribe, potem do Soniox, który u mnie po polsku sprawdził się najlepiej. Dobrze rozumie, co mówię, jest bardzo szybki i do tego tani. Szept używa jego modelu stt-rt-v5, który rozpoznaje ponad 60 języków i przełącza się między nimi w środku zdania. W słowniku można dodać nazwy i żargon, żeby wychodziły poprawnie zapisane. Od puszczenia klawisza do gotowego tekstu mija około 180 ms.

Przytrzymaj fn, mów, puść. Tekst trafia tam, gdzie był kursor, w każdej aplikacji.

Problem drugi: ten sam tekst ma inny kształt w mailu, na Slacku i w terminalu

Surowa transkrypcja to dopiero połowa. Mail potrzebuje akapitów i podpisu, wiadomość na Slacku ma być jedną linijką, a polecenie w terminalu nie może mieć „poprawionej” interpunkcji, bo wtedy przestaje działać. Szept sprawdza, do jakiej aplikacji trafia tekst, a w przeglądarce również adres strony (Gmail w Brave to nadal mail), i przekazuje tę informację do porządkowania tekstu przez AI.

Porządkowanie usuwa „yyy”, powtórzenia i falstarty, poprawia interpunkcję i zostawia moje słowa. Nie wymyśla powitań ani podpisów: w mailu używa wyłącznie podpisu, który sam zapisałem w ustawieniach. Jeśli model nie odpowie w 3 sekundy, wkleja się tekst tak, jak go podyktowałem, więc nigdy nie czekam dłużej. fn z ⌘ wymusza porządkowanie dla jednego dyktowania, bez zmiany ustawień.

To samo zdanie, trzy miejsca
Co powiedziałeścześć magda no to yyy możemy przesunąć rozmowę na czwartek nie piątek i yyy wyślę ci deck przed przed spotkaniem
Co zostanie wklejone ✦ Porządkuję…Cześć Magda, Możemy przesunąć rozmowę na piątek? Wyślę Ci deck przed spotkaniem. Pozdrawiam, Mariusz
To samo zdanie w kształcie aplikacji, do której trafia. Kliknij miejsce docelowe.

Problem trzeci: agentowi trzeba pokazać, a nie opisać

Najwięcej czasu traciłem na opisywanie ekranu. „Przycisk nachodzi na stopkę, ale tylko przy wąskim oknie, po prawej, pod formularzem”. Zrzut ekranu mówi to w sekundę. Do zrzutów używałem Larka, bo miał najlepsze narzędzia do adnotacji. Na moim Macu LarkSuite.app zajmuje 1,5 GB (du -sh, 23 września 2026), a potrzebowałem z niego jednej funkcji.

W Szepcie ⌘ ⇧ A zatrzymuje ekran. Wybieram okno albo zaznaczam obszar, dodaję strzałki, ramki, rozmycie i tekst, przypinam zrzut na wierzchu, wyciągam z niego tekst albo odczytuję kod QR. Scrollshot skleja przewijaną stronę w jeden obraz.

Zrzut ekranu: zaznaczony obszar, pasek narzędzi pod spodem i ramka dorysowana wokół problemu.
Zrzut ekranu: zaznaczony obszar, pasek narzędzi pod spodem i ramka dorysowana wokół problemu.

⌥ ⇧ R nagrywa ekran z dźwiękiem systemu i mikrofonem, z kamerką w kółku i efektami kliknięć. Nagranie mogę przyciąć i zapisać jako MP4 albo GIF.

Nagrywanie: czerwona ramka wokół nagrywanego obszaru, poziomy dźwięku systemu i mikrofonu oraz kamerka w rogu.
Nagrywanie: czerwona ramka wokół nagrywanego obszaru, poziomy dźwięku systemu i mikrofonu oraz kamerka w rogu.

To, po co Szept powstał: jedno zdanie do agenta

Wszystko powyżej łączy się w jeden gest. Gdy na ekranie jest zrzut albo nagranie, przytrzymuję fn i mówię, czego chcę. Szept zapisuje plik, zamyka okno zrzutu i wkleja moje zdanie razem ze ścieżką do pliku do aplikacji, z której zacząłem: terminala z Claude Code, Codeksa, Cursora albo czatu. Nic nie jest wysyłane, dopóki sam nie nacisnę Enter.

Przekazanie agentowi: zdanie wypowiedziane nad zrzutem trafia do Claude Code razem ze ścieżką do pliku.
Przekazanie agentowi: zdanie wypowiedziane nad zrzutem trafia do Claude Code razem ze ścieżką do pliku.

To zmieniło sposób, w jaki pracuję z agentami. Zamiast akapitu opisu mam jedno zdanie i obraz, a agent nie musi zgadywać, o który przycisk chodzi.

Lekka, bo mowa działa w chmurze

Lokalne silniki mowy są ciężkie. Model Whisper large-v3 waży 2,9 GB, a nawet skwantyzowany Whisper tiny ma 31 MB. Szept nie trzyma modelu ani na dysku, ani w pamięci, bo rozpoznawanie mowy działa w chmurze. Zainstalowana aplikacja ma 4,9 MB, w spoczynku zajmuje 24–32 MB pamięci, zużywa 0,0% CPU i wybudza się około 0,1 razy na sekundę (Finder: około 38 razy).

Koszt jest równie mały. Mowa działa na moim własnym kluczu Soniox i kosztuje około 0,12 $ za godzinę mówienia. Dla porównania: ElevenLabs Scribe v2 Realtime to 0,39 $, Deepgram Nova-3 0,55 $, a transkrypcja na żywo od OpenAI 1,02 $ za godzinę. Szept nic do tego nie dolicza i nie ma własnych serwerów.

Godzina mowy na żywo

Szept, na Twoim kluczu Soniox0,12 $
ElevenLabs Scribe v2 Realtime0,39 $
Google, na żywo~0,54 $
Deepgram Nova-3, wielojęzyczny0,55 $
Azure, w czasie rzeczywistym~1,00 $
OpenAI, na żywo1,02 $

Ile waży lokalny silnik

Szept4,9 MB
Whisper tiny, skwantyzowany31 MB
Whisper base142 MB
Whisper small466 MB
Whisper large-v32,9 GB
0,0%CPU w spoczynku
24–32 MBpamięci w spoczynku
0,1 / swybudzeń w spoczynku (Finder: 38 / s)
~180 msod puszczenia klawisza do tekstu
Paski są w skali. Cenniki API mowy za godzinę nagrania; rozmiary modeli z whisper.cpp; liczby aplikacji zmierzone na wydanej wersji.

Dokąd trafiają dane

Mowa idzie szyfrowanym połączeniem (TLS 1.2 lub nowszy) do Soniox, na Twoim własnym koncie. Soniox deklaruje certyfikaty SOC 2 Type 2 i ISO/IEC 27001:2022 oraz zgodność z RODO i HIPAA. W trybie na żywo nie przechowuje nagrań ani transkrypcji i nie używa ich do trenowania modeli; zostają tylko dane o użyciu, takie jak czas trwania, bez dźwięku i tekstu. Soniox oferuje regiony USA, UE, Japonii i Indii, wybierane dla projektu. Dzisiejsza wersja Szeptu łączy się z regionem USA; wersja, która sama rozpozna region klucza i dla projektu w UE będzie przetwarzać mowę wyłącznie w UE, jest w przygotowaniu.

Porządkowanie tekstu przez AI jest opcjonalne. Domyślny dostawca, DeepSeek, przechowuje dane w Chinach, więc dla wrażliwych tekstów warto ustawić innego dostawcę zgodnego z OpenAI albo zostawić porządkowanie wyłączone. Historia, zrzuty i nagrania zostają na Twoim Macu, a ja nie mam serwerów i nie dostaję niczego.

Dlaczego płacisz raz, a nie co miesiąc

Szept zrobiłem dla siebie, ale chciałem go udostępnić innym. Zastanawiałem się, jak zrobić to uczciwie w czasach AI, kiedy prawie każde narzędzie zamyka człowieka w miesięcznym abonamencie, a koszty rosną z każdą kolejną subskrypcją. Wybrałem prosty model: płacisz raz, 9,99 $ dla pierwszych 100 osób, potem 25 $. W cenie jest podpisana i notaryzowana aplikacja, pełny kod w Swifcie w prywatnym repozytorium na GitHubie i rok aktualizacji. Potem możesz odnowić aktualizacje albo zostać przy tym, co masz; nic nie przestaje działać.

Kod jest w zestawie celowo. Jeśli potrzebujesz innego modelu mowy, innego dostawcy AI albo zupełnie innego rozwiązania, możesz przebudować aplikację sam albo zlecić to swojemu agentowi. Żeby agent był przydatny od pierwszego dnia, w repozytorium jest to, czego sam potrzebowałem: CLAUDE.md z 78 spisanymi pułapkami, 5 specyfikacji projektowych, 12 planów implementacji i 638 testów. Pułapek nie da się zgadnąć. Przykład: aplikacja w sandboksie nie doda się sama do listy Dostępności w macOS, więc onboarding wskazuje przełącznik, którego nie ma.

Jak to zbudowałem

Większość Szeptu napisały agenty, a ja decydowałem, co budujemy, i sprawdzałem, co wraca. Głównym był Claude Opus 5.5 w Claude Code; obok niego pracował DeepSeek Harness na DeepSeek V4.1 Flash, jako drugi, tańszy wykonawca dobrze opisanych zadań i źródło drugiej opinii. Przez miesiące trzymały to w ryzach notatki projektu: każda pułapka, na którą trafiliśmy, lądowała w CLAUDE.md, więc następna sesja już na nią nie wpadała. Te notatki są w zestawie z kodem.

Co dalej: społeczność wokół Szeptu

Mam nadzieję, że wokół Szeptu powstanie społeczność ludzi, którzy przerabiają go pod siebie i dzielą się tym, co zbudowali: wtyczkami do innych modeli, integracjami, rozszerzeniami. Dziś licencja pozwala zmieniać Szept na własny użytek, prywatnie i w firmie, ale nie pozwala udostępniać kodu ani buildów. Chcę ją rozszerzyć tak, żeby kupujący mogli wymieniać się rozszerzeniami między sobą. Jeśli budujesz coś na Szepcie i chcesz się tym podzielić, napisz: [email protected].

Dla kogo to jest

Dla każdego, kto pracuje z agentami AI na Macu i ma dość przepisywania swoich myśli na klawiaturze. Działa w każdej aplikacji, która przyjmuje tekst, więc przydaje się też w mailach, na Slacku i w notatkach. Najbardziej zyskują jednak ci, którzy tak jak ja mówią po polsku w angielskim słowniku i codziennie tłumaczą agentom, co widzą na ekranie.

Strona produktu, 49-sekundowy film i zakup: szept.szyma.co.

Źródła
  • Liczby o aplikacji (4,9 MB po instalacji, 24–32 MB pamięci, 0,0% CPU, 0,1 wybudzenia na sekundę, około 180 ms): pomiary na wersji wydanej, narzędziami du, footprint i top, opublikowane na szept.szyma.co.
  • Ceny mowy na żywo: cenniki ElevenLabs, Deepgram, Google, Azure i OpenAI, zebrane na stronie szept.szyma.co; Soniox stt-rt-v5: około 0,12 $ za godzinę.
  • Rozmiary modeli Whisper: repozytorium modeli whisper.cpp.
  • Rozmiar LarkSuite.app: du -sh /Applications/LarkSuite.app na moim Macu, 23 września 2026.
  • Bezpieczeństwo i regiony Soniox: Security and privacy i Data residency.