Hermes: asystent AI, który odpisuje na maile i pilnuje kalendarza
Darmowy agent z otwartym kodem. Instalujesz go w 10 minut, wklejasz jeden prompt i Hermes sam podłącza Gmaila i Kalendarz Google.
Czas15 min
KosztProgram 0 zł + Twój abonament ChatGPT
PoziomPodstawowy
Słowo z rolkiHERMES
Co dostajesz
Hermes to darmowy asystent AI z otwartym kodem. Piszesz do niego na WhatsAppie albo Telegramie, możesz też nagrać głosówkę, a on szuka maili, odpisuje i pilnuje kalendarza.
Wszystko robisz w dwóch krokach: instalujesz Hermesa i wklejasz mu jeden prompt.
Na Twoim komputerze. Za darmo. Działa, dopóki komputer jest włączony. Zamkniesz laptopa, Hermes zaśnie.
Na serwerze. Około 20 zł miesięcznie. Działa całą dobę, także gdy śpisz.
Nie wiesz, co wybrać? Zacznij od komputera. Na serwer przeniesiesz go później.
Na komputerze
Pobierz Hermes Desktop ze strony https://hermes-agent.nousresearch.com. Tylko stąd, bo w sieci krążą podróbki. Jest wersja na Windowsa, Maca i Linuxa.
Zainstaluj i otwórz. Rejestracja nie jest potrzebna. Na ekranie powitalnym kliknij kolejno Basic, Continue i Skip.
Podłącz ChatGPT: Ustawienia → Provider → ChatGPT i zaloguj się swoim kontem. Hermes korzysta wtedy z Twojego abonamentu, bez żadnych kluczy.
Podłącz komunikator: Telegram albo WhatsApp, jak niżej.
Telegram. Wejdź w Wiadomości → Telegram → Utwórz przez kod QR. Zeskanuj kod telefonem. Otworzy się bot Hermesa, który w kilku krokach założy Ci Twojego własnego bota. Potem wróć do Hermesa, zaznacz Włączone, zapisz i kliknij restart u góry. W nowym bocie napisz /start. Na to nie odpowie, to normalne.
WhatsApp. Napisz Hermesowi: „Podłącz mi WhatsAppa w trybie self-chat i pokaż kod QR”. W telefonie otwórz WhatsApp → Ustawienia → Połączone urządzenia → Połącz urządzenie i zeskanuj kod. Od teraz piszesz sam do siebie, a odpowiada Hermes.
Gotowe. Napisz „Cześć”, a Hermes odpowie. Tylko Ty możesz do niego pisać.
Na serwerze
Kup najmniejszy serwer VPS w Europie, np. w Hetznerze, za około 20 zł miesięcznie. Wybierz 2 procesory, 4 GB RAM i system Ubuntu. Po minucie dostaniesz adres IP serwera i hasło (zwykle mailem).
Wklej ten prompt do ChatGPT albo Claude i rób to, co Ci powie:
Prompt
Pomóż mi postawić Hermes Agent (https://github.com/NousResearch/hermes-agent) na moim serwerze VPS. Mam serwer z Ubuntu, jego adres IP i hasło użytkownika root. Prowadź mnie krok po kroku, prostymi słowami, jedno polecenie naraz, i mów, gdzie je wpisać (na Windowsie w PowerShellu). Kolejność: zaloguj mnie na serwer przez ssh, zainstaluj Hermesa poleceniem curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, podłącz model poleceniem hermes model (logowanie kontem ChatGPT), podłącz Telegram albo WhatsApp poleceniem hermes gateway setup i ustaw bramę tak, żeby działała całą dobę i sama wracała po restarcie serwera. Na koniec sprawdź, czy Hermes mi odpowiada.
Gdy w terminalu wpisujesz hasło, nie widać kropek ani gwiazdek. To normalne: wklej je i naciśnij Enter.
Nazwy przycisków mogą się różnić w nowych wersjach Hermesa. Jeśli czegoś nie widzisz, zapytaj o to samego Hermesa.
02
Krok 2. Podłącz pocztę i kalendarz
Niczego nie instalujesz sam. Skopiuj ten prompt, wklej go Hermesowi i wyślij. Resztę zrobi on.
Prompt
Cześć! Podłącz moją prywatną pocztę Gmail oraz Kalendarz Google najprostszym sposobem — BEZ Google Cloud Console, BEZ pliku OAuth client_secret.json i BEZ instalowania zewnętrznych narzędzi takich jak himalaya.
Korzystamy z natywnego połączenia przez Hasło aplikacji Google (IMAP + SMTP), tajny adres iCal oraz wysyłanie zaproszeń kalendarzowych (.ics).
Wykonaj całość według poniższej instrukcji:
### 1. Utwórz stały skill `gmail-calendar-lite`
Utwórz plik `skills/productivity/gmail-calendar-lite/SKILL.md` oraz skrypt `scripts/gassistant.py` WYŁĄCZNIE w oparciu o bibliotekę standardową Pythona (`imaplib`, `smtplib`, `ssl`, `email`, `urllib.request`, `json`, `datetime`, `uuid`, `pathlib`, `re`, `os`, `shutil` — bez `pip install`). Skrypt ma zwracać wynik w formacie JSON (`utf-8`) i obsługiwać polecenia:
- `inbox --limit N` oraz `search --query "..."` (przez `imap.gmail.com:993`, wyszukiwanie `X-GM-RAW`, automatyczne wykrywanie folderów po flagach `\Trash`, `\Sent`, `\Junk`).
- `read --uid UID` — pełna treść wiadomości wraz z listą załączników.
- `send --to "..." --subject "..." --body "..." [--reply-to-uid UID]` — wysyłka przez `smtp.gmail.com:465` z zachowaniem wątku (`In-Reply-To`, `References`).
- `calendar-list [--days 7]` — odczyt `GOOGLE_ICAL_URL` (jeśli jest ustawiony), parsowanie bloków `VEVENT` (w tym `RRULE`, `EXDATE`) i zwracanie planu dnia w kolejności chronologicznej.
- `calendar-create --summary "..." --start "YYYY-MM-DDTHH:MM" --end "YYYY-MM-DDTHH:MM" [--attendees "..."]` — wysyłka zaproszenia RFC 5545 `.ics` (`METHOD:REQUEST`) przez SMTP na mój adres `GMAIL_USER` oraz do wskazanych uczestników.
Wymagania techniczne dla `gassistant.py` i `SKILL.md`:
1. **Kopia zapasowa przed zapisem:** przed każdą zmianą w pliku `.env` automatycznie twórz kopię `.env.bak`, żeby żadne wcześniejsze klucze ani hasła nie zginęły.
2. **Priorytet `.env` bez restartu bramy (gateway):** przy każdym uruchomieniu wczytuj `.env` bezpośrednio z dysku i nadpisuj wartości w `os.environ` (nie używaj warunku `not in os.environ`), tak aby nowe skrzynki i hasła działały od razu bez restartowania Hermesa.
3. **Wiele skrzynek bez nadpisywania:** obsługuj wiele kont pocztowych (`--account 2`, sufiksy `_2`, `_3` w `.env`). Jeśli w `.env` jest już skonfigurowana skrzynka, przy dodawaniu kolejnej zachowaj poprzednią.
4. **Zasady bezpieczeństwa:** pocztę i kalendarz możesz czytać swobodnie, natomiast wysyłanie wiadomości do innych osób, usuwanie e-maili oraz tworzenie spotkań w kalendarzu wykonuj dopiero po moim wyraźnym potwierdzeniu na czacie. Haseł nigdy nie wypisuj w logach ani na czacie i nie zapisuj ich w `MEMORY.md` ani `USER.md` — trzymaj je wyłącznie w `.env`.
### 2. Sposób przekazania danych (bez tuneli i zewnętrznych serwerów)
Nie uruchamiaj żadnych publicznych tuneli (ngrok itp.) ani zewnętrznych serwerów WWW. Działaj prosto:
- **Jeśli działasz na komputerze z ekranem (Windows / macOS / Linux Desktop):** napisz i od razu uruchom na wierzchu wszystkich okien (`-topmost`) okienko `tkinter` (`scripts/gmail_setup_dialog.py`) po polsku z polami:
1) Przełącznik: `Zaktualizuj główną skrzynkę` / `Dodaj jako kolejną skrzynkę`;
2) `Adres Gmail` (wymagane);
3) `Hasło aplikacji (16 znaków)` (`show="*"`, spacje usuwaj automatycznie) + przycisk obok: `Otwórz Google App Passwords` (`https://myaccount.google.com/apppasswords` — z krótką wskazówką, że wymaga włączonej weryfikacji dwuetapowej 2FA i utworzenia hasła o nazwie „Hermes”);
4) `Tajny adres iCal kalendarza (opcjonalnie — możesz zostawić puste i dodać później)` + przycisk obok: `Otwórz ustawienia Kalendarza` (`https://calendar.google.com/calendar/u/0/r/settings` — ze wskazówką: wybierz po lewej swój główny kalendarz → „Integrowanie kalendarza” → skopiuj „Tajny adres w formacie iCal” zakończony na `basic.ics`).
- **Jeśli piszę z telefonu (np. przez Telegram) albo działasz na serwerze VPS bez ekranu:**
Wyślij mi krótką, czytelną instrukcję z linkami bezpośrednio na czacie. Jeśli prześlę adres e-mail, 16 znaków hasła aplikacji lub link `basic.ics` w wiadomości na czacie — zapisz je od razu do `.env` (i przypomnij jednym zdaniem, że mogę usunąć tę wiadomość z historii czatu). Jeśli wolę nie wysyłać hasła na czacie, zaproponuj wpisanie go w otwartym okienku na komputerze lub jednym poleceniem w terminalu VPS.
### 3. Sprawdzenie po słowie „gotowe”
Po otwarciu okienka (lub wysłaniu instrukcji na czacie) **poczekaj, aż zapiszę dane i napiszę „gotowe”** (albo prześlę dane w odpowiedzi).
Gdy tylko otrzymasz potwierdzenie:
- Zapisz w `MEMORY.md`, które skrzynki są podłączone przez `gmail-calendar-lite` (i używaj tego skilla przy pytaniach o pocztę, plan dnia, spotkania oraz poranny briefing);
- Sprawdź połączenie przez `gassistant.py` i pokaż mi po polsku 3 ostatnie wiadomości ze skrzynki odbiorczej oraz 3 najbliższe wydarzenia z kalendarza (jeśli podałem link iCal).
Co zobaczysz potem:
Na ekranie otworzy się okienko z dwoma przyciskami.
Otwórz Google App Passwords. Utwórz hasło aplikacji o nazwie „Hermes” i wklej 16 znaków do okienka. Musisz mieć włączoną weryfikację dwuetapową w Google.
Otwórz ustawienia Kalendarza (możesz pominąć). Wybierz po lewej swój kalendarz, przewiń do „Integrowanie kalendarza” i skopiuj „Tajny adres w formacie iCal”, który kończy się na basic.ics.
Kliknij Zapisz i napisz na czacie: gotowe. Hermes pokaże Ci 3 ostatnie maile i 3 najbliższe spotkania.
Piszesz z telefonu albo Hermes stoi na serwerze? Okienka nie będzie. Hermes wyśle Ci te same dwa linki na czacie.
Od teraz piszesz albo nagrywasz mu głosówkę, na przykład: „Co mam jutro w kalendarzu?” albo „Odpisz Markowi, że płot stawiamy w czwartek”. Zanim wyśle maila albo doda spotkanie, zapyta Cię o zgodę.
WhatsApp łączy się z Hermesem nieoficjalnie, tak jak WhatsApp Web. Nie wysyłaj przez niego masowych wiadomości, bo WhatsApp może ograniczyć konto. Najbezpieczniej podłączyć osobny numer.
Coś nie działa? Napisz Hermesowi: „sprawdź, co nie działa, i napraw”.
Nie chcesz robić tego sam?
Postawię Ci Hermesa pod Twoją firmę: podepnę pocztę, kalendarz i to, co zabiera Ci najwięcej czasu, i pokażę, jak z niego korzystać.
OpenJarvis: poranny briefing z poczty i kalendarza z jednego promptu
Wklejasz jeden prompt do Claude Code albo Codexa, a agent instaluje OpenJarvis, podpina pocztę i kalendarz i ustawia briefing, który co rano czyta Ci streszczenie dnia.