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.json sidecar.
  • 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