
Research
/Security News
Miasma Mini Shai-Hulud Hits ImmobiliareLabs npm Packages
Miasma Mini Shai-Hulud hits @immobiliarelabs Backstage plugins, targeting GitLab and LDAP auth packages on npm.
@ksefnik/cli
Advanced tools
Command-line interface for Ksefnik — fetch KSeF invoices, reconcile with bank statements, run MCP server
Wiersz poleceń do Krajowego Systemu e-Faktur (KSeF 2.0) — pobieranie faktur, import wyciągów bankowych (MT940, mBank, ING, PKO BP, Santander), reconcyliacja faktur z przelewami, walidacja przed wysyłką i uruchamianie serwera Model Context Protocol dla Claude Desktop i Cursora. Część Ksefnika — otwartego KSeF SDK w TypeScript / Node.js. Jeden komfortowy binarny interfejs dla developerów, zespołów fintech, automatyzacji w CI / cron i agentów AI.
Znany również jako: KSeF CLI, ksef command line, e-faktura CLI, Polish e-Invoice CLI, KSeF MCP launcher. Dokumentacja CLI →
npx @ksefnik/cli --help
# globalnie
npm install -g @ksefnik/cli
# albo jednorazowo, bez instalacji
npx @ksefnik/cli <komenda>
Wymaga Node.js 22+.
CLI czyta parametry z trzech miejsc (priorytet od najwyższego):
--nip, --env, --token, --public-keyKSEF_NIP, KSEF_TOKEN, KSEFNIK_ENV, KSEFNIK_ADAPTER, KSEF_PUBLIC_KEY_PATH.env w bieżącym katalogu (przez --env-file)Rekomendowane — .env w katalogu projektu:
# .env
KSEF_NIP=7010002137
KSEF_TOKEN=twój-token-z-portalu-MF
KSEFNIK_ENV=production # production | demo | test
KSEFNIK_ADAPTER=http # http (produkcja) | simulator (testy)
KSEF_PUBLIC_KEY_PATH=./mf-public.pem
Środowiska KSeF:
--env | Bazowy URL |
|---|---|
production | https://api.ksef.mf.gov.pl/v2 |
demo | https://api-demo.ksef.mf.gov.pl/v2 |
test | https://api-test.ksef.mf.gov.pl/v2 |
Domyślnie test — czyli CLI z nieskonfigurowanym środowiskiem nie wyśle Ci nic przypadkiem na produkcję. Żeby ruszyć produkcję, musisz świadomie ustawić KSEFNIK_ENV=production.
ksefnik fetch — pobierz faktury z KSeFksefnik fetch --from 2026-03-01 --to 2026-03-31 --format table
| Flaga | Opis |
|---|---|
--from <date> | Data początkowa (YYYY-MM-DD), wymagane |
--to <date> | Data końcowa (YYYY-MM-DD), wymagane |
--format <fmt> | json (default) albo table |
Pod spodem woła ksef.invoices.fetch() z @ksefnik/core przez adapter HTTP. Obsługuje retry, 429, refresh tokenów, cache klucza publicznego MF.
ksefnik bank import <plik> — zaimportuj wyciąg bankowyksefnik bank import ./wyciag.mt940
ksefnik bank import ./export-mbank.csv --format table
Auto-detekcja formatu: MT940, mBank CSV, ING CSV, PKO BP CSV, Santander CSV. Wypisuje liczbę wczytanych transakcji i zrzuca je w wybranym formacie. Kwoty są normalizowane do groszy (int) — jeżeli widzisz 123.45, to jest to 12345 groszy pod spodem.
ksefnik reconcile --bank <plik> — odpal reconcyliacjęksefnik reconcile --bank ./wyciag.mt940 --format table
Uruchamia 6-stopniowy pipeline z @ksefnik/core:
Na wyjściu dostajesz pełny raport: dopasowane (z score i strategy), niedopasowane faktury, niedopasowane przelewy, średnią pewność. W --format table od razu czytelnie w terminalu, w --format json gotowe do wpięcia w pipeline w CI / GitHub Actions / cron.
ksefnik validate <plik> — zwaliduj fakturę(y) przed wysłaniemksefnik validate ./faktura.json
ksefnik validate ./faktury.json --format table
Wczytuje pojedynczą fakturę albo tablicę faktur z pliku JSON, odpala wszystkie reguły walidacji z @ksefnik/core i raportuje. Każdy błąd ma kod, severity i human-readable message po polsku — nadaje się bezpośrednio do wyświetlenia użytkownikowi. Do użycia jako pre-send gate przed ksefnik send.
Testowane reguły obejmują m.in.: format NIP (sprzedawca + nabywca), poprawność waluty (ISO 4217), dodatnie kwoty, spójność netto+VAT=brutto, kolejność dat, poprawne stawki VAT (PL: 0/5/8/23/zw/np/oo), duplikaty, długość opisów, format numeru faktury.
ksefnik send <plik.xml> — wyślij fakturę do KSeFksefnik send ./faktura.xml
MVP:
sendInvoicew@ksefnik/httpjest w tym momencie stubem. Komenda wywoła adapter, ale na realny KSeF wrzuci rzut"not implemented". W pełnym asynchronicznym flow (POST /invoices/exports+ polling + UPO) wejdzie w v0.1.
ksefnik mcp — uruchom serwer MCP dla ClaudePelna konfiguracja MCP: docs.ksefnik.pl/mcp/konfiguracja
ksefnik mcp
To jest ta komenda, której używa Twoja konfiguracja Claude Desktop w claude_desktop_config.json:
{
"mcpServers": {
"ksefnik": {
"command": "npx",
"args": ["-y", "@ksefnik/cli", "mcp"],
"env": {
"KSEF_NIP": "7010002137",
"KSEF_TOKEN": "...",
"KSEFNIK_ENV": "production",
"KSEF_PUBLIC_KEY_PATH": "/abs/path/do/mf-public.pem"
}
}
}
}
Serwer używa StdioServerTransport z oficjalnego @modelcontextprotocol/sdk i wystawia 9 narzędzi (sync-invoices, query-invoices, import-bank, reconcile, get-unmatched, confirm-match, validate-invoice, send-invoice, get-upo). Szczegóły w @ksefnik/mcp.
Wszystkie komendy akceptują flagi globalne programu:
| Flaga | Opis |
|---|---|
--nip <nip> | NIP firmy (nadpisuje KSEF_NIP) |
--env <env> | production / demo / test (nadpisuje KSEFNIK_ENV) |
--token <token> | Token KSeF (nadpisuje KSEF_TOKEN) |
--adapter <kind> | http (default) / simulator (offline, do testów) |
--public-key <pathOrPem> | Ścieżka do PEM klucza publicznego MF albo PEM inline |
--debug | Rozszerzone logi (m.in. żądania HTTP, retry, stan sesji) |
#!/usr/bin/env bash
set -euo pipefail
export KSEF_NIP=7010002137
export KSEF_TOKEN="$(op read 'op://vault/ksef/token')" # np. 1Password CLI
export KSEFNIK_ENV=production
export KSEF_PUBLIC_KEY_PATH=/etc/ksefnik/mf-public.pem
# 1. Pobierz wczorajsze faktury kosztowe
ksefnik fetch --from "$(date -v-1d +%F)" --to "$(date -v-1d +%F)" > /tmp/invoices.json
# 2. Ściągnij wyciąg z bankiera (np. przez ich API albo scp)
# ...
# 3. Reconcyliacja
ksefnik reconcile --bank /tmp/wyciag.mt940 --format json > /tmp/report.json
# 4. Wyślij raport na Slack, do Linear, do bazy, gdziekolwiek
# .github/workflows/validate.yml
- run: npx @ksefnik/cli validate ./invoices/*.json --format json
KSEFNIK_ADAPTER=simulator ksefnik fetch --from 2026-03-01 --to 2026-03-31
Zero requestów do produkcji, zero potrzeby tokenu — pipeline wciąż ten sam.
Dla dystrybucji bez node_modules:
pnpm --filter @ksefnik/cli build
bun build --compile ./apps/build/dist/main.js --outfile ksefnik
./ksefnik --help
Efekt: pojedynczy plik wykonywalny, bez potrzeby instalowania Node.js na maszynie docelowej. Przydaje się, kiedy wrzucasz Ksefnika do firmowego image'u Dockerowego albo do niestandardowego środowiska, gdzie nie chcesz ciągnąć npm.
@ksefnik/core — silnik, który CLI opakowuje@ksefnik/http — produkcyjny adapter HTTP@ksefnik/simulator — mock do trybu offline@ksefnik/mcp — serwer MCP uruchamiany komendą ksefnik mcpMIT. Część monorepo ksefnik. Ksefnik jest rozwijany przez CodeFormers.it — budujemy integracje KSeF, automatyzacje w n8n, dedykowane CLI-boty i narzędzia backoffice w TypeScript. Jeżeli Twój zespół potrzebuje CLI skrojonego pod Twój workflow księgowy (np. własne komendy eksportu do ERP, własny format wyciągu, integracja z Twoim systemem magazynowym) — napisz do nas.
FAQs
Command-line interface for Ksefnik — fetch KSeF invoices, reconcile with bank statements, run MCP server
The npm package @ksefnik/cli receives a total of 17 weekly downloads. As such, @ksefnik/cli popularity was classified as not popular.
We found that @ksefnik/cli demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Research
/Security News
Miasma Mini Shai-Hulud hits @immobiliarelabs Backstage plugins, targeting GitLab and LDAP auth packages on npm.

Security News
Rolldown paused Rust React Compiler integration after a 5MB binary size increase raised concerns about shipping React-specific code to all Vite users.

Security News
/Research
Mini Shai-Hulud expands into the Go ecosystem after hitting LeoPlatform npm packages and targeting GitHub Actions workflows.