HORNCALL

One app to approve them all.
English

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.

⬇ Aplikacja na Androida (APK) ⬇ Program na komputer (ZIP)
Koszary: komputer, a pod nim żołnierze różnych AI z licznikami pracy i paskami HP
Koszary — Twoje komputery i żołnierze (czaty AI).
Karta rozkazu z komendą, paskami TIME, HP i MEM oraz przyciskami
Rozkaz — strzel z bicza albo odpowiedz przyciskiem.
Czerwona karta groźnego rozkazu z powodami i przyciskiem do przytrzymania
Groźna komenda — tylko przytrzymaniem przycisku.
Powiadomienie z nazwą AI i komendą
Powiadomienie mówi, które AI pyta.

Co to robi

Czego potrzebujesz

GdzieCo
KomputerWindows, 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.
TelefonAndroid 8 lub nowszy, internet. iPhone na razie nie jest obsługiwany.

Instalacja (10 minut)

1. Aplikacja na telefonie

  1. Na telefonie pobierz horncall.apk i otwórz plik.
  2. 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).
  3. 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

  1. 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.
  2. 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
  3. 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.

Kod QR to Twój klucz. Nie wysyłaj go nikomu. Nawet gdyby ktoś go zdobył, nie zatwierdzi niczego bez Twojego telefonu (telefon podpisuje każdą decyzję własnym kluczem), ale mógłby czytać rozkazy. Gdyby wyciekł: /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 wpiszCo robi
/horncall:approver onOdchodzę od biurka — pytania idą na telefon.
/horncall:approver on --hours 2To samo, wyłączy się samo po 2 godzinach (niebieski pasek MANA na karcie).
/horncall:approver offWróciłem — tylko zwykłe pytania na komputerze.
/horncall:approver statusCzy 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

Karta rozkazu
Zwykły rozkaz.
Groźny rozkaz
Groźny rozkaz.
JakEfekt
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 powiadomieniuZatwierdź (jednostka odpowiada jednym z kilku okrzyków)
Przycisk ODMÓWOdrzuć — świadomie, przyciskiem.
Odpowiedź na komputerzeRozkaz sam znika z telefonu.
NicTelefon 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

Koszary
Koszary.
Raport bojowy z podziałem na AI
Raport bojowy (dotknij kafelków).
AIHP (limit planu)MEM (pamięć czatu)
Codextak (okno 5 h / tydzień / miesiąc)tak
Copilottak (miesięczny limit zapytań)—
Geminitylko „brak limitu”, gdy się skończytak
Claudepo 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

Trening bicza z okrągłym wskaźnikiem siły
Trening i kalibracja.

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ć

Ustawienia aplikacji

UstawienieCo daje
DźwiękiGł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 zadaniaOkrzyk „Mission complete” po zadaniach dłuższych niż 2 minuty.
Przypominaj o czekających rozkazachDźwięk co 2 minuty, dopóki rozkaz czeka.
Zablokowany telefonBezpieczny (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 dostarczanieStał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órkaWyglą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ść

Aktualizacje

Problemy

ObjawCo 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 uruchamiaZainstaluj 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 pytaTelefon nie jest zaufany (np. nowy telefon) — uruchom kreator albo /horncall:approver pair i odpowiedz na rozkaz w ciągu 10 minut.
Gemini pyta dwa razyUruchamiaj go z --approval-mode yolo (patrz wyżej).
Codex nie wysyła rozkazówW Codexie /hooks — hooki Horncall muszą być zaufane i włączone.
Gest nie łapie / łapie za łatwoTrening 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ę.