HORNCALL
Twój agent AI nie musi czekać, aż wrócisz do biurka. Horncall wysyła jego prośby o zgodę na telefon — zatwierdzasz jednym ruchem, a agent pracuje dalej. Jedna aplikacja dla Claude Code, OpenAI Codex CLI, Gemini CLI i GitHub Copilot CLI; szyfrowanie end-to-end, każda decyzja podpisana kluczem telefonu.
Co to robi
- Działa z Claude Code, Gemini CLI, GitHub Copilot CLI i OpenAI Codex CLI. Jedno parowanie obsługuje wszystkie AI na danym komputerze, a każdy czat to osobny „żołnierz” z kryptonimem, np. Shaman Ashbringer (Claude) czy Gearwright Swiftfoot (Codex).
- Pytanie widać jednocześnie na komputerze i na telefonie. Odpowiesz na komputerze — rozkaz sam znika z telefonu. Przegapisz — czeka na telefonie do 30 minut, a telefon przypomina o nim co 2 minuty.
- Działa z każdej sieci (Wi-Fi, LTE). Treść jest szyfrowana end-to-end; serwer pośredniczący widzi tylko szyfrogram.
- Nic nie zatwierdza się samo. Każdy błąd (brak sieci, brak odpowiedzi) kończy się zwykłym pytaniem na komputerze.
Czego potrzebujesz
| Gdzie | Co |
|---|---|
| Komputer | Windows, macOS albo Linux; co najmniej jeden z asystentów: Claude Code (terminal lub VS Code), Gemini CLI, GitHub Copilot CLI, OpenAI Codex CLI; Python 3.10+ (na Windows przy instalacji zaznacz „Add python.exe to PATH”); internet. |
| Telefon | Android 8 lub nowszy, internet. iPhone na razie nie jest obsługiwany. |
Instalacja (10 minut)
1. Aplikacja na telefonie
- Na telefonie pobierz horncall.apk i otwórz plik.
- Android zapyta o zgodę na instalację z tego źródła — zezwól. Jeśli Play Protect ostrzeże o nieznanym deweloperze, wybierz Zainstaluj mimo to (aplikacji nie ma jeszcze w Sklepie Play).
- Uruchom Horncall i kliknij Napraw na każdej karcie u góry: powiadomienia, wyświetlanie na pełnym ekranie, wyłączenie optymalizacji baterii. Bez tego rozkazy mogą się spóźniać.
2. Komputer — kreator
- Pobierz horncall-plugin.zip i rozpakuj do stałego folderu,
np.
C:\Narzedzia\horncall. Nie do Pobranych i nie przenoś go potem — asystenci AI uruchamiają Horncall z tego miejsca. - Kliknij dwa razy setup.cmd (macOS/Linux:
sh setup.sh). Kreator:- znajdzie zainstalowane AI i zapyta, które podpiąć (Claude Code dostanie plugin automatycznie),
- zapyta, czy pokazywać na telefonie limit Claude (dodaje mały pasek statusu w Claude Code),
- otworzy w przeglądarce kod QR — w aplikacji kliknij Rekrutuj (skanuj QR) i zeskanuj go,
- wyśle rozkaz próbny — odpowiedz na telefonie. Od tej chwili komputer ufa właśnie temu telefonowi.
=== Horncall setup === 1/4 AI tools on this PC ✓ Claude Code found ✓ OpenAI Codex CLI found · Gemini CLI not found 2/4 Hook up Connect Claude Code? [Y/n] 3/4 Phone Scan the QR code in the browser 4/4 Test order — answer it on the phone ✓ The phone answered (allow) — trusted, key 2F:35:EC:D9:37:F3 - Uruchom ponownie podpięte narzędzia (VS Code: Ctrl+Shift+P → Developer: Reload Window).
Chcesz najpierw zobaczyć, jak to wygląda? W aplikacji pod przyciskami rekrutacji jest Pokaż przykładowy rozkaz — działa bez komputera.
Nowe AI dopniesz później, uruchamiając kreator jeszcze raz — niczego nie zepsuje, doda tylko to, czego brakuje.
/horncall:approver pair --new tworzy nowy klucz i odcina stare telefony.Ręcznie, bez kreatora (dla zaawansowanych)
/plugin marketplace add C:/Narzedzia/horncall
/plugin install horncall@horncall
/horncall:approver pair
/horncall:approver test
Inne AI: python C:\Narzedzia\horncall\plugin\hooks\approver_launcher.py install gemini
(albo copilot, codex, claude-statusline).
Na co dzień
Horncall przekazuje pytania na telefon tylko w trybie on — przy biurku odpowiadasz jak zwykle.
| W Claude Code wpisz | Co robi |
|---|---|
/horncall:approver on | Odchodzę od biurka — pytania idą na telefon. |
/horncall:approver on --hours 2 | To samo, wyłączy się samo po 2 godzinach (niebieski pasek MANA na karcie). |
/horncall:approver off | Wróciłem — tylko zwykłe pytania na komputerze. |
/horncall:approver status | Czy sparowany, tryb, serwer, zaufane telefony, podpięte AI. |
/horncall:approver name "Sklep — backend" | Podpis projektu (uruchom w jego folderze) — tak będą podpisane jego rozkazy. |
Bez Claude Code (np. tylko Codex) te same komendy: python C:\Narzedzia\horncall\plugin\hooks\approver_launcher.py on.
Tryb dotyczy wszystkich AI i czatów na tym komputerze.
Odpowiadanie na rozkazy


| Jak | Efekt |
|---|---|
| Strzał z bicza — szybki ruch nadgarstkiem do przodu; telefon trzymaj ekranem do siebie albo bokiem jak rączkę bicza | Zatwierdź — trzask bicza i zawsze „Hup hup!”. Działa na karcie i przy samym powiadomieniu. |
| Przycisk HUP HUP! / Zezwól ✓ w powiadomieniu | Zatwierdź (jednostka odpowiada jednym z kilku okrzyków) |
| Przycisk ODMÓW | Odrzuć — świadomie, przyciskiem. |
| Odpowiedź na komputerze | Rozkaz sam znika z telefonu. |
| Nic | Telefon przypomina co 2 minuty; po 30 minutach rozkaz wygasa (Codex: po 10), pytanie zostaje na komputerze. |
Paski na karcie: TIME — ile zostało czasu na odpowiedź; HP i MEM — „zdrowie”
żołnierza (niżej); MANA — ile zostało do końca służby (on --hours).
Groźne komendy — np. rm -rf, git push --force, git reset --hard, DROP TABLE,
terraform destroy, curl … | bash, zmiany w .env, hookach, CI albo w ustawieniach samych AI,
narzędzia MCP z nazwą typu delete, execute, send — mają czerwoną kartę z powodami. Nie da się ich zatwierdzić
gestem ani z powiadomienia: trzeba przytrzymać przycisk przez półtorej sekundy.
Koszary, HP i statystyki


- Dotknij żołnierza — zobaczysz jego ostatni rozkaz w całości i jak się skończył (zatwierdzony biczem, odmówiony, odpowiedziano na komputerze…).
- Pod każdym komputerem są jego żołnierze — czaty z ostatnich 24 godzin. Znaczek pokazuje AI (frakcję): Claude, Gemini, Copilot, Codex — każde ma własne rangi.
- ● Pracuje 3 min 12 s — zadanie w toku; Skończył 5 min temu · pracował 14 min — gotowe. Po zadaniu dłuższym niż 2 minuty żołnierz melduje „Mission complete”. Po 8 godzinach ciszy żołnierz śpi 💤, po 24 znika.
- HP — ile zostało limitu planu tego AI (zanim przestanie odpowiadać) i kiedy się odnowi (↻). MEM — ile zostało pamięci czatu; gdy spadnie do zera, AI streszcza starszą część rozmowy, a nowy czat zaczyna od 100%. Poniżej 10% HP karta rozkazu ostrzega „Mało limitu”.
| AI | HP (limit planu) | MEM (pamięć czatu) |
|---|---|---|
| Codex | tak (okno 5 h / tydzień / miesiąc) | tak |
| Copilot | tak (miesięczny limit zapytań) | — |
| Gemini | tylko „brak limitu”, gdy się skończy | tak |
| Claude | po włączeniu paska statusu (plany Pro/Max; Claude Code w terminalu) | tak |
Kafelki u góry: rozkazy, zatwierdzone, odmowy, łączny czas pracy AI, zatwierdzenia biczem. Dotknij ich — Raport bojowy rozbija to na poszczególne AI. Pasek Horda mówi, ilu użytkowników Horncall jest teraz online.
Trening bicza

Ikona bicza u góry ekranu otwiera trening: strzelasz, a aplikacja pokazuje siłę strzału i czy zatwierdziłby rozkaz. Na start zrób kalibrację (ok. 30 s): 5 normalnych strzałów i 3 razy zwykłe podniesienie telefonu. Próg ustawi się wyraźnie powyżej zwykłego podnoszenia, żeby nic nie zatwierdziło się przypadkiem. Mocniejszy strzał = głośniejszy trzask; dwa razy mocniej niż próg to CRITICAL. Trening nie zatwierdza prawdziwych rozkazów i nie zmienia statystyk.
Gemini, Copilot, Codex — na co uważać
- Gemini CLI pyta o zgodę sam, zanim zapyta Horncall. Żeby pytał tylko telefon, uruchamiaj go z
--approval-mode yolo— Horncall i tak przepuszcza przez telefon komendy, zapisy i edycje plików. Logowanie kontem Google nie działa już dla osób prywatnych — użyj klucza API. - Codex CLI: po podpięciu otwórz w Codexie
/hooks, zaufaj trzem hookom Horncall i włącz je spacją ([x]). Działa w zwykłym, interaktywnym Codexie (nie wcodex exec). - Copilot CLI: działa od razu po ponownym uruchomieniu.
- Claude Code: limit planu (HP) Claude podaje tylko paskowi statusu; kreator może go dodać
(
approver install claude-statusline, wyłączenie:uninstall). Jeśli miałeś własny pasek — dalej się wyświetla.
Ustawienia aplikacji
| Ustawienie | Co daje |
|---|---|
| Dźwięki | Głos polski, angielski albo 8-bit (same „piki”, dyskretniej w biurze), albo własny folder z dźwiękami. Głośność = głośność multimediów; tryb cichy wycisza, chyba że włączysz granie w trybie cichym. |
| Zgłaszaj ukończone zadania | Okrzyk „Mission complete” po zadaniach dłuższych niż 2 minuty. |
| Przypominaj o czekających rozkazach | Dźwięk co 2 minuty, dopóki rozkaz czeka. |
| Zablokowany telefon | Bezpieczny (domyślnie): treść ukryta, zatwierdzenie po odblokowaniu. Gest: ekran się budzi, bicz zatwierdza bez odblokowania. Pełna karta: dotknięcie powiadomienia otwiera kartę bez odblokowania — wygodne na biurku, ale każdy, kto weźmie telefon, może odpowiedzieć. |
| Natychmiastowe dostarczanie | Stałe połączenie w tle zamiast powiadomień push: trochę szybsze i działa bez usług Google, ale zużywa więcej baterii (wtedy kliknij też kartę Napraw przy baterii). |
| Skórka | Wygląd aplikacji. Na razie Commander; kolejne są zapowiedziane. |
Aplikacja mówi po polsku albo po angielsku — zgodnie z językiem telefonu.
Bezpieczeństwo i prywatność
- Rozkazy idą przez nasz serwer (ntfy w chmurze, HTTPS, plus Firebase do budzenia telefonu), zaszyfrowane kluczem, który znają tylko Twój komputer i Twoje telefony.
- Telefon podpisuje każdą decyzję kluczem, który nigdy go nie opuszcza (Android Keystore). Komputer przyjmuje odpowiedzi tylko od zaufanych telefonów — nawet kopia pliku z kluczem z komputera nie wystarczy, żeby coś zatwierdzić.
- Klucz na komputerze:
~/.horncall/config.json(na Windows dostępny tylko dla Twojego konta). - Na telefon trafia treść pytania (komenda, ścieżka pliku) oraz liczby HP/MEM — nigdy cała rozmowa z AI.
Log
~/.horncall/hook.logzapisuje tylko metadane. - Horncall niczego nie wykonuje sam — przekazuje tylko Twoją decyzję.
Aktualizacje
- Aplikacja sama sprawdza nowe wersje — w Koszarach pojawi się zielona karta z listą zmian; kliknij Pobierz i zainstaluj. Parowanie i statystyki zostają. Nie odinstalowuj starej wersji (Android skasowałby dane).
- Program na komputerze:
/horncall:approver update(alboapprover update) pobiera nową wersję, sprawdza jej podpis i instaluje. Potem uruchom ponownie Claude Code.statusmówi, gdy jest coś nowego. (Wersje starsze niż 0.5.10 trzeba raz zaktualizować ręcznie: pobierz ZIP i rozpakuj w to samo miejsce.)
Problemy
| Objaw | Co zrobić |
|---|---|
| Nic nie przychodzi na telefon | /horncall:approver status — tryb on? serwer „reachable”? W aplikacji: „online” u góry,
kliknięte karty Napraw. Rozkazy przychodzą powiadomieniem push; jeśli spóźniają się albo telefon nie ma usług Google, włącz Natychmiastowe dostarczanie (stałe połączenie). Xiaomi, Huawei, Samsung mogą wymagać zgody na autostart. |
| „Python is not recognized” / kreator się nie uruchamia | Zainstaluj Pythona 3.10+ z python.org z opcją „Add python.exe to PATH” i uruchom setup.cmd ponownie. |
| Odpowiedziałem na telefonie, a komputer dalej pyta | Telefon nie jest zaufany (np. nowy telefon) — uruchom kreator albo
/horncall:approver pair i odpowiedz na rozkaz w ciągu 10 minut. |
| Gemini pyta dwa razy | Uruchamiaj go z --approval-mode yolo (patrz wyżej). |
| Codex nie wysyła rozkazów | W Codexie /hooks — hooki Horncall muszą być zaufane i włączone. |
| Gest nie łapie / łapie za łatwo | Trening bicza → kalibracja jeszcze raz albo suwak progu. |
Odinstalowanie
/horncall:approver unpair
/plugin uninstall horncall@horncall
approver uninstall gemini (i copilot, codex, claude-statusline — jeśli podpięte)
Potem usuń folder programu i katalog ~/.horncall, a na telefonie odinstaluj aplikację.