Twoje spotkania w twoim własnym repozytorium
Jeśli folder z transkryptami leży w repozytorium git, Earkeep zapisuje w nim plik z każdego dnia jako commit: po zakończeniu dnia, przy zmianie spotkania albo w obu przypadkach. Wypycha też na remote'y, które twoje repozytorium już ma. Każdy element jest ustawieniem, a repozytorium zostaje twoje.
Problem: zapis nie ma historii
Zapis w Earkeep to już zwykłe pliki: jeden plik JSONL na dzień, w wybranym przez ciebie folderze, często w repozytorium z twoimi notatkami. Folder ma jednak historię wersji tylko wtedy, gdy ktoś go commituje, a ręczne commitowanie kończy się najpóźniej w środę. Dlatego commity robi Earkeep, a resztę repozytorium zostawia tobie.
Jak to działa
Włącza się tylko w repozytorium. Gdy folder z transkryptami lub folder nad nim jest repozytorium git, funkcja jest dostępna w Ustawienia → Przechowywanie i Git. W przeciwnym razie zobaczysz jeden przycisk, który uruchamia git init. To jedyny sposób, w jaki Earkeep tworzy repozytorium.
Ty wybierasz, kiedy commituje: po zakończeniu dnia, przy zmianie spotkania, w obu przypadkach (domyślnie) albo wcale.
- Po zakończeniu dnia oznacza pięć minut po północy. Laptop uśpiony o północy zapisze wczorajszy dzień po wybudzeniu.
- Przy zmianie spotkania oznacza zapisanie, zakończenie, zmianę długości, zmianę nazwy lub usunięcie, kilka sekund po ostatniej edycji, więc przeciągnięcie krawędzi to jeden commit. Rozpoczęcie spotkania nie tworzy commitu, tak samo jak same nowe linie transkryptu.
Jeden commit na plik dnia i nic więcej. To, co sam dodasz do poczekalni (staging), nie trafia do commitów Earkeep, a plik dnia wykluczony w twoim .gitignore jest pomijany.
Tylko na dozwolonej gałęzi: main (lub master), dowolnej aktualnie wybranej albo takiej, którą wskażesz. Na każdej innej gałęzi nic nie jest commitowane, a Ustawienia podają powód.
Komunikaty commitów, które mówią, co się stało
Każdy komunikat podaje dzień i spotkanie, więc git log --oneline czyta się jak twój tydzień:
$ git log --oneline -- meetings/
4e1c0a7 Earkeep 2026-10-12: transcript of the day
9b2f61d Earkeep 2026-10-12: Roadmap review
51d8e3a Earkeep 2026-10-12: update Weekly sync
c07a9f2 Earkeep 2026-10-12: Weekly sync
8a44b1e Earkeep 2026-10-11: transcript of the day
Każdy komunikat to szablon, który możesz zmienić w Ustawieniach, osobno dla każdego zdarzenia, z {date} i {meeting} jako symbolami zastępczymi.
Wypychanie to osobna decyzja
Wypychaj na każdy remote (domyślnie), na wybrane przez siebie albo wcale, a wtedy każdy commit zostaje na twoim urządzeniu.
To jedyna droga, którą transkrypt opuszcza twoje urządzenie, i to tylko na skonfigurowany przez ciebie remote, na twoje własne konto. Earkeep nie ma na tej ścieżce żadnego serwera.
To twój własny git, więc działają twój agent SSH, pomocnicy poświadczeń i hooki, tak jak w terminalu. Wypychanie, które wymagałoby hasła lub frazy dostępu, kończy się od razu błędem z wyjaśnieniem, zamiast czekać na monit, którego nikt nie widzi.
Remote, który poszedł naprzód, jest pobierany, a nie odrzucany. Earkeep robi to, co git pull --rebase --autostash, a potem wypycha. Nagrywanie trwa dalej, a edycja spotkania jest na ten moment wstrzymana i widzisz o tym informację.
Konflikty rozwiązuje agent, nie ty
Gdy commity z remote'a kolidują z twoimi, Earkeep przekazuje zatrzymany rebase jednemu z agentów ACP na twoim komputerze, na przykład Claude Code lub Codex. Potem sprawdza repozytorium, a nie odpowiedź agenta: rebase się zakończył, commity obu stron są na miejscu, nie został żaden znacznik konfliktu. Dopiero wtedy wypycha.
Wszystko poniżej tego standardu jest cofane: rebase jest przerywany, twoja gałąź i niezacommitowane zmiany wracają do poprzedniego stanu, a Earkeep pokazuje, co powiedział agent. Agent to twoje własne narzędzie z twoim własnym kluczem, więc to, co czyta, trafia tam, dokąd ten agent zwykle to wysyła.
Gdy wypchnięcie się nie uda, dowiesz się o tym
Błąd pojawia się nad transkryptem prostymi słowami (remote odrzucił twój klucz, nie udało się połączyć z hostem, konflikt wymaga twojej uwagi), a pod spodem są słowa samego gita. Earkeep ponawia próbę co pięć minut, więc po usunięciu przyczyny wypchnięcie się powiedzie.
Powiązane
- Prywatność z założenia: pliki, które ta funkcja commituje.
- Agenci i MCP: agenci, którzy piszą twoje notatki ze spotkań i rozwiązują twoje konflikty.
- PKM dla programistów: notatki jako repozytorium git.
- Wiki dla LLM: czym staje się wersjonowany folder ze spotkaniami.
Najczęstsze pytania
Czy Earkeep potrzebuje repozytorium git, żeby działać?
Nie. Bez repozytorium transkrypty to zwykłe pliki w folderze, a z repozytorium Earkeep dodatkowo je commituje. Możesz to wyłączyć.
Czy będzie commitować moje inne pliki?
Nie. Każdy commit zawiera jeden plik z transkryptem dnia i nic więcej, a to, co sam dodasz do poczekalni (staging), w nim nie trafia.
Czy moje transkrypty opuszczają urządzenie?
Tylko na remote'y, które sam skonfigurujesz. Wyłącz wypychanie, a każdy commit zostaje na twoim urządzeniu.
Czy synchronizuje moje spotkania między komputerami?
Nie. Earkeep commituje i wypycha, a pobiera tylko po to, żeby móc wypchnąć. To, co trafia na twoje inne komputery, zależy od twojego repozytorium.
Co, jeśli gdy kończy się dzień, jestem na gałęzi roboczej?
Nic się tam nie commituje. Ustawienia pokazują, że dzień czeka, a commit powstaje, gdy wrócisz na dozwoloną gałąź.
Czy spotkanie jest commitowane, gdy się zaczyna?
Nie. Jest commitowane, gdy się kończy lub gdy je zmienisz, a nie w trakcie zapisywania jego transkryptu.
Co się stanie, jeśli agent rozwiązujący konflikty się pomyli?
Earkeep sprawdza wynik przed wypchnięciem. Jeśli coś jest nie tak, rebase jest przerywany, twoje repozytorium wraca do poprzedniego stanu, a ty widzisz powód.
Czy mogę pisać własne komunikaty commitów?
Tak: w Ustawienia → Przechowywanie i Git jest szablon dla każdego zdarzenia, z {date} i {meeting} jako symbolami zastępczymi.
Historia każdego spotkania, w repozytorium, które należy do ciebie
14-dniowy pełny okres próbny, bez konta.