# CLI — interfejs wiersza poleceń

KSeFka dostarcza CLI (`ksefka`) do zarządzania fakturami, kontrahentami i danymi bezpośrednio z terminala lub skryptów.

## Instalacja

CLI jest dołączone do instalatora KSeFka i dostępne jako `ksefka` w terminalu po zainstalowaniu aplikacji. Na Windows instalator automatycznie dodaje katalog instalacji do zmiennej `PATH`.

Weryfikacja instalacji:

```
ksefka --version
```

## Opcje globalne

| Opcja | Opis |
| --- | --- |
| `--env <środowisko>` | Środowisko KSeF: `test`, `demo`, `production` (domyślnie: `production`) |
| `--company <nip>` | NIP firmy, gdy masz skonfigurowanych kilka firm |
| `--help` | Wyświetl pomoc dla komendy |

## Jak znaleźć pomoc

Każda komenda ma wbudowaną dokumentację:

```
ksefka --help                    # lista wszystkich komend
ksefka <komenda> --help          # szczegóły konkretnej komendy
```

## Komendy

| Komenda | Opis |
| --- | --- |
| Faktury |  |
| `list-invoices` | Lista faktur z filtrowaniem |
| `get-invoice` | Szczegóły faktury z pozycjami |
| `create-invoice` | Utwórz fakturę z pliku JSON lub stdin |
| `finalize` | Przenieś fakturę roboczą do stanu "gotowa do wysłania" |
| `unfinalize` | Cofnij finalizację faktury do wersji roboczej |
| `copy-invoice` | Skopiuj fakturę jako nowy szkic z dzisiejszą datą |
| `open` | Otwórz fakturę w aplikacji desktopowej |
| `payment-file` | Wygeneruj plik przelewów (Elixir-0) dla faktur otrzymanych — PRO, 1 darmowy eksport |
| Kontrahenci |  |
| `list-contractors` | Lista kontrahentów z wyszukiwaniem |
| `get-contractor` | Szczegóły kontrahenta |
| `create-contractor` | Dodaj kontrahenta z pliku JSON lub stdin |
| `update-contractor` | Zaktualizuj dane kontrahenta |
| `delete-contractor` | Usuń (dezaktywuj) kontrahenta |
| Produkty |  |
| `list-products` | Lista produktów/usług z katalogu |
| `get-product` | Szczegóły produktu |
| `create-product` | Dodaj produkt do katalogu |
| Raporty |  |
| `monthly-summary` | Podsumowanie miesięczne (przychody/koszty) |
| `dashboard-stats` | Statystyki bieżącego miesiąca |
| Inne |  |
| `mcp` | Uruchom serwer MCP (stdio) |

## Wejście JSON

Komendy tworzące obiekty (np. `create-invoice`, `create-contractor`) przyjmują dane jako:

```
# z pliku
ksefka create-invoice --file faktura.json

# ze stdin (pipe)
cat faktura.json | ksefka create-invoice --file -

# lub przekierowanie
ksefka create-invoice --file - < faktura.json
```

Strukturę JSON znajdziesz w pomocy komendy: `ksefka create-invoice --help`.
