Przejdź do głównej zawartości

Konfiguracja

ZenCopy działa od razu, bez żadnej konfiguracji. Ta strona przyda się, gdy zechcesz lepiej dopasować go do siebie. Pierwsza połowa, o oknie ustawień, jest dla wszystkich; druga połowa, o plikach konfiguracyjnych, dla zaawansowanych użytkowników.

Otwórz je z menu ikony w zasobniku albo ikoną koła zębatego w okienku. Ma trzy karty: Ogólne, AI i Prompty.

  • Pozycja okienka — w którym rogu ekranu pojawiają się wyniki.
  • Motyw — jasny / ciemny / zgodny z systemem.
  • Rozmiar tekstu — Mały / Standardowy / Duży.
  • Język interfejsu — domyślnie zgodny z systemem.
  • Uruchamiaj przy logowaniu — ZenCopy czeka w gotowości, gdy tylko komputer jest włączony.
  • Potwierdzaj przed wysłaniem obrazów i plików — czy pytać jednorazowo, zanim obrazy lub pliki trafią do AI.

Tu zmienisz usługę AI (dostawcę, model, klucz API). Przycisk Testuj od razu mówi, czy połączenie działa.

Na tej karcie jest też pole O Tobie. To miejsce, by w kilku prostych zdaniach, w dowolnym języku, opisać swoją rolę i preferencje.

Przykład: „Sprzedaż. Piszę głównie e-maile do klientów — uprzejme, ale nie sztywne, wniosek na początku.”

Z wypełnionym polem każdy prompt dopasowuje wyniki do Ciebie. Wyjaśnienia przychodzą na Twoim poziomie wiedzy, a wersje robocze wracają w preferowanym przez Ciebie tonie. Pole nigdy nie wpływa na niezwiązane zadania, a sam jego tekst nigdy nie pojawia się w wynikach.

Lista tego, „co dzieje się po podwójnym kopiowaniu”.

  • Wstępnie zainstalowane prompty można otwierać i czytać — służą zarazem jako gotowe przykłady.
  • Nowy prompt wymaga tylko nazwy i opisu, co ma zostać zrobione. Na przykład: nazwa „Streszczenie w 3 linijkach”, instrukcja „Streść to w 3 linijkach”.
  • Nie masz pewności, jak pisać instrukcje? Zanotuj z grubsza, czego chcesz, i naciśnij Szkicuj z AI — skonfigurowane przez Ciebie AI zamieni to w porządną instrukcję.
  • Reguły pozwalają wybrać inny prompt dla każdego rodzaju treści (tekst / obraz / pliki).

Zbudowane przez Ciebie prompty można udostępniać: Eksportuj (.md) zapisuje prompt jako plik, a odbiorca po prostu wkleja go w Importuj albo wybiera plik.

Wolisz powierzyć całe zadanie sztucznej inteligencji? Każdy czat AI może napisać dla Ciebie gotowy do zaimportowania prompt — wklej to i uzupełnij puste miejsce:

Przeczytaj https://zencopy.app/llms-full.txt — pełną dokumentację ZenCopy, w tym format pliku promptu, zmienne szablonu oraz sposób działania reguł. Następnie napisz prompt ZenCopy, który robi następujące rzeczy: [co chcesz osiągnąć]. Wygeneruj jeden kompletny plik promptu (Markdown z frontmatterem) w pojedynczym bloku kodu, gotowy do wklejenia w ZenCopy w Ustawienia → Prompty → Importuj. Jeśli prompt ma sens tylko w konkretnej aplikacji lub na określonej stronie, dodaj jedno zdanie informujące mnie, którą regułę należy ustawić.

Blok kodu w odpowiedzi trafia bezpośrednio do Ustawienia → Prompty → Importuj. W przypadku pytań, na które dokumentacja nie odpowiada („czy ZenCopy w ogóle potrafi…?”), jedno kliknięcie pakuje odpowiedni kod źródłowy — przekaż wynik tej samej sztucznej inteligencji.

Pliki konfiguracyjne (dla zaawansowanych użytkowników)

Dział zatytułowany „Pliki konfiguracyjne (dla zaawansowanych użytkowników)”

Od tego miejsca strona dotyczy bezpośredniej edycji plików tekstowych. Wszystko, co niezbędne, jest dostępne z okna ustawień, więc śmiało możesz zakończyć lekturę tutaj.

Pliki są odczytywane z katalogu konfiguracyjnego aplikacji danego użytkownika. Dokładna ścieżka jest też wypisywana do logu przy starcie:

%APPDATA%\app.zencopy

Domyślne reguły są wbudowane w aplikację; rules.json może je jedynie nadpisywać. Pliki promptów są addytywne: definiują nowe prompty, a wbudowane pozostają nienaruszalne (lokalny plik podszywający się pod id wbudowanego promptu jest ignorowany). Zmiany obowiązują od następnego wyzwolenia — restart nie jest potrzebny.

Dostawcy plus mapowanie rola → model. Format pliku ma swój dom w ai-sdk-catalog — każde pole jest tam udokumentowane (łącznie z $schema do walidacji i podpowiedzi w edytorze), a w examples/ znajdują się konfiguracje w trzech rozmiarach. Punkty startowe w stylu ZenCopy (to, co zapisuje interfejs ustawień, lokalny Ollama, role dla promptów) znajdziesz w Przepisach.

Jedno wymaganie pochodzi od samego ZenCopy, nie od formatu: roles musi zawsze zawierać default. Każdy prompt działa z tym role, o ile jego frontmatter nie wskazuje innego role, a test połączenia w ustawieniach pinguje właśnie to role.

Klucze API trafiają wprost do tego lokalnego pliku (interfejs ustawień zapisuje ten sam format); nigdy nie opuszczają Twojego komputera. Zmienne środowiskowe nie są odczytywane — aplikacje z interfejsem graficznym uruchamia system, a nie Twoja powłoka, więc zmienne wyeksportowane w .zshrc i podobnych nigdy do nich nie docierają. Plik jest walidowany schematem przy każdym odczycie. Zepsuta edycja pokazuje się jako czytelny komunikat w okienku i w edytorze ustawień — nic nie zawodzi po cichu.

Który prompt obsługuje który rodzaj przechwycenia: płaska mapa kind → prompt plus opcjonalna lista overrides o wyższym priorytecie (wygrywa pierwsze dopasowanie). Trzy rodzaje to text, image i files (kopia tekstu sformatowanego liczy się jako text); fabrycznie tekst trafia do promptu Streść, a obrazy i pliki do promptu Wyjaśnij. Płaską mapę można edytować w aplikacji (Ustawienia → Prompty → Reguły), więc tego pliku potrzebujesz tylko dla overrides.

{
"text": "zencopy-summarize",
"image": "zencopy-explain",
"files": "zencopy-explain",
"overrides": [{ "when": { "app_name": "Slack", "min_chars": 200 }, "prompt": "summarize" }]
}

Warunki when: kind (jeden z trzech rodzajów, dopasowanie dokładne), app_name, exec_name, window_title, url (wszystkie z wieloznacznikiem *), file_name (wieloznacznik, do którego musi pasować nazwa każdego kopiowanego pliku, bez uwzględniania wielkości liter — np. *.pdf), plus min_chars / max_chars.

Dla przechwyceń image i files do modelu wysyłana jest sama treść (łącznie do 10 MB na jedno przechwycenie). Typy plików są rozpoznawane po zawartości, nie po nazwach: obrazy, PDF-y i audio są dołączane bez zmian, a pliki tekstowe (Markdown, kod źródłowy, CSV, …) stają się tekstem przechwycenia ({{ text }}) i zachowują się dokładnie tak, jakby ich zawartość została skopiowana. Dokumenty Office (Word, Excel, PowerPoint) również stają się tekstem: ich treść jest wyodrębniana i wysyłana, ale układ i obrazy już nie. Kodowania znaków są wykrywane automatycznie, z konwersją starszych formatów takich jak Shift_JIS i UTF-16. Wszystko inne jest odrzucane z czytelnym komunikatem. Razem z zawartością wysyłane są pełne ścieżki, aby model mógł odróżnić pliki od siebie i wiedział, gdzie się znajdują. Ponieważ załączniki binarne mogą kosztować więcej niż tekst, okienko pyta przed ich wysłaniem (pliki tekstowe działają bez pytania) — potwierdzenie można wyłączyć na miejscu albo w Ustawieniach.

Jeden plik = jeden prompt: frontmatter YAML + treść promptu w Liquid. Ten sam pojedynczy plik jest zarazem formatem udostępniania — Ustawienia → Prompty → Importuj przyjmuje go jako wklejony tekst albo wybrany plik.

---
id: summarize
label: Streszczenie
role: default
instructions: Jesteś zwięzłym asystentem.
---
Streść w 3 linijkach, w języku {{ locale }}:
{{ text }}
FrontmatterZnaczenie
idNazwa, do której odwołuje się rules.json (domyślnie: nazwa pliku) — prefiks zencopy- jest zarezerwowany dla promptów preinstalowanych
labelWyświetlana w okienku
roleRola z katalogu użyta do uruchomienia (domyślnie: default)
instructionsPrompt systemowy (szablon Liquid)

Zmienne szablonu, z przykładowymi wartościami dla akapitu skopiowanego w przeglądarce:

ZmiennaPrzykład
{{ text }}Skopiowany tekst (kopie HTML stają się Markdownem)
{{ markup }}Źródło HTML/RTF kopii sformatowanej
{{ format }}html (lub rtf; puste dla zwykłych kopii)
{{ file_name }}report.pdf (nazwa pierwszego kopiowanego pliku)
{{ file_names }}Nazwa każdego kopiowanego pliku, jedna w linii
{{ file_paths }}Pełna ścieżka do każdego kopiowanego pliku, jedna w linii
{{ app_name }}Safari
{{ exec_name }}Safari / chrome.exe
{{ exec_path }}/Applications/Safari.app/Contents/MacOS/Safari
{{ window_title }}Cennik – Example
{{ url }}https://example.com/pricing (tylko przeglądarki)
{{ process_id }}8123
{{ now }}2026-07-08 20:15:00
{{ locale }}pl

Jest też specyficzny dla ZenCopy filtr language_name: {{ locale | language_name }} rozwija się do „Polish” zamiast „pl”, co brzmi naturalnie w promptcie. Aby zobaczyć rzeczywiste wartości, włącz w Ustawieniach Pokaż zmienne szablonu — zmienne każdego przechwycenia pojawiają się w okienku jako JSON.

Proste prompty (nazwa i instrukcja) można też tworzyć z okna ustawień; to, co ono zapisuje, to dokładnie ten format pliku.

Zarówno frontmatter instructions, jak i treść są pełnoprawnymi szablonami LiquidJS: działają instrukcje warunkowe, pętle i filtry. Jeden prompt może dostosować się do tego, skąd pochodzi kopia:

---
id: context-aware
label: Zależna od kontekstu
---
{% if url contains "github.com" %}
Zrób przegląd tego kodu i wskaż jedno największe ryzyko:
{% elsif app_name == "Slack" %}
Streść ten wątek czatu w 2 linijkach:
{% else %}
Wyjaśnij to w języku {{ locale }}:
{% endif %}
{{ text | truncate: 8000 }}

Logi strukturalne (z usuniętymi sekretami i skopiowaną treścią) trafiają w trybie deweloperskim do terminala, a w wydaniu do pliku z rotacją:

%LOCALAPPDATA%\app.zencopy\logs