NFC Ops
April 30, 2026 · View on GitHub
NFC tag operations using libnfc — read, write, inspect, password-protect, and bulk-write from a CSV with manual tag-by-tag feed.
Targets NTAG21x and MIFARE Classic tags via any libnfc-compatible USB reader (ACR122U, PN532, etc.). Workflow is human-in-the-loop: you present one tag at a time and confirm each operation.
Skills
write-tag— Write a single NDEF payload (URL, text, raw) to a presented tag, with read-back verification.bulk-write— Iterate a CSV of payloads, prompting for each tag in turn. Resumable via a<csv>.progress.jsonsidecar.read-tag— Read and decode NDEF records from a presented tag.inspect-tag— Deep inspection: UID, tag type, memory layout, lock/CC bytes, capacity, current contents.password-protect— Apply NTAG21x PWD/PACK or MIFARE key-change protection to a single tag.bulk-password-update— Apply or rotate passwords across a CSV-defined batch of tags by UID.
Prerequisites
libnfc and tooling on the host:
sudo apt install libnfc-bin libnfc6
A USB NFC reader connected and detected by nfc-list.
Installation
claude plugins install nfc-ops@danielrosehill
Or per-project:
claude plugins install nfc-ops@danielrosehill --scope project
Data layout
Plugin state and logs live under:
${CLAUDE_USER_DATA:-${XDG_DATA_HOME:-$HOME/.local/share}/claude-plugins}/nfc-ops/
├── config.json # pointer to your CSV directory
├── state/ # write logs (audit trail of every tag written)
└── cache/ # last-read tag dumps
Your batch CSVs are user-owned — keep them wherever you like (default suggestion: ~/Documents/nfc-batches/). The plugin only stores a pointer.
License
MIT