Skip to content
v1.0.2MIT

Fill the monthly KUP report (Polish 50% creative-work tax deduction) from your merged GitHub pull requests and write it to your KUP Google Sheet.

kup

Fill the monthly KUP report (Koszty Uzyskania Przychodu, the Polish 50% tax deduction for creative work). The skill collects your merged GitHub pull requests for a month, has the agent write a Polish creative-work description for each, and writes the row to your KUP Google Sheet. It also reads and edits that sheet, or any other Google Sheet shared with the same service account.

The plugin is a portable Agent Plugin with one Agent Skill, so the same package works in Claude Code, Codex and other compatible agents. It runs on macOS and Linux.

Installation

Claude Code:

claude plugin marketplace add smykla-skalski/sai
claude plugin install kup@sai

Codex:

codex plugin marketplace add smykla-skalski/sai
codex plugin add kup@sai

Other agents that read Agent Skills can use skills/kup/ directly, for example by linking it into ~/.agents/skills/kup.

Setup

Setup takes about 15 minutes, once: install uv and gh, create a Google service account key, share your KUP sheet with it, and write ~/.config/kup/config.toml. Follow the setup guide, which also lists fixes for common errors.

Usage

Ask in plain words, for example "fill my KUP report", "catch up the KUP sheet" or "preview KUP for 2026-03". In Claude Code, /kup works too, and in Codex $kup. The agent previews every row before it writes.

How it works

skills/kup/scripts/kup.py does the deterministic part: it finds the month and its row in the sheet, searches GitHub, drops backports and dependency bumps, stores the plan, writes the row and keeps a CSV history in ~/.local/share/kup/. The agent writes the Polish descriptions following skills/kup/references/kup-rules.md. The script's own checks run with uv run --script skills/kup/scripts/test_kup.py.

License

MIT