npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

konverter

v0.1.2

Published

Wandelt Tabellen (Excel/CSV/JSON) ins tokensparendste Format fürs LLM — lokal & modellbewusst. CLI + Browser-Tool.

Readme

Konverter

Wandelt Tabellen-Dateien in das tokensparendste Format fürs LLM um — und zeigt schwarz auf weiß, wie viele Token (und damit Geld) du sparst.

Läuft vollständig lokal — als Browser-Tool und als CLI für Automatisierung/CI. Deine Datei verlässt nie deinen Rechner: kein Upload, kein Server, keine Netzwerkaufrufe. Auch die Token-Zählung passiert lokal.

Idee in einem Satz

Dieselben Daten kosten je nach Format sehr unterschiedlich viele Token. JSON wiederholt jeden Schlüssel in jeder Zeile; CSV/TOON/Markdown sind oft deutlich schlanker. Der Konverter probiert alle Formate durch, zählt mit dem echten Tokenizer des Zielmodells und wählt automatisch das sparsamste — typisch 40–60 % weniger Token bei gleicher Aussage.

Was reingeht / rauskommt

  • Eingabe: .xlsx / .xls, .csv, .json (tabellarisch: eine Liste flacher Objekte). Mehrere Tabellenblätter werden unterstützt.
  • Ausgabe: JSON · CSV · Markdown · TOON — das schlankste ist mit ★ markiert und vorausgewählt.
  • Modelle: GPT-4o, GPT-4/3.5, Llama 3, Llama 2 (exakter lokaler Tokenizer) sowie Claude (lokale Schätzung, mit „≈" gekennzeichnet — kein API-Call).

Geltungsbereich & Grenzen

Konverter arbeitet in einer semantischen Domäne: tabellarische Daten (flache Datensätze — Kopfzeile + Zeilen). Intern wird jede Eingabe in ein gemeinsames Tabellen-Modell überführt (eine kanonische Zwischendarstellung) und daraus ins Zielformat kodiert.

Daraus folgt, was bewusst nicht unterstützt wird bzw. wo eine Konversion vereinfacht — offen benannt statt versteckt:

  • Verschachtelte Daten (Objekte/Arrays in Zellen) werden mit klarer Meldung abgewiesen, nicht heimlich plattgeklopft.
  • Typen über Formatgrenzen: JSON und Excel kennen Zahl/Boolean; CSV, Markdown und TOON sind textuell — ein true wird dort zum Text true. JSON↔CSV ist für Strings und Zahlen verlustfrei, Boolean ist die benannte Grenze.
  • Excel-Eigenheiten: Datumszellen werden zu ISO-Text normalisiert; Formeln werden als Werte gelesen, nie ausgeführt; reine Anzeige-Formatierung (Währung, Tausenderpunkte) entfällt — der Rohwert bleibt (fürs LLM kompakter und rechenbar).

Kurz: innerhalb tabellarischer Daten verlustfrei bis auf die genannten Typgrenzen — alles andere wird ehrlich abgewiesen statt verfälscht.

Lokal starten

npm ci --ignore-scripts   # reproduzierbarer Install aus dem Lockfile, ohne postinstall-Scripts
npm run dev               # Browser-Entwicklungs-Server (Vite)
npm run build             # Web-Produktions-Build nach dist/
npm run build:cli         # CLI-Build nach dist-cli/cli.js

CLI (Automatisierung / CI)

Gleiche Engine wie das Browser-Tool, für die Kommandozeile. Verhält sich wie ein normales Unix-Werkzeug: Ergebnis nach stdout (pipebar), Infos nach stderr, Fehler mit Exit-Code ≠ 0. So läuft es unverändert in jeder CI/Automatisierung — etwa als npx konverter …-Schritt in einer GitHub-Action.

npm run build:cli        # baut dist-cli/cli.js
npm link                 # optional: macht den Befehl `konverter` global verfügbar

konverter daten.xlsx                      # → das schlankste Format nach stdout
konverter daten.json -o daten.csv         # in eine Datei schreiben
konverter *.csv -m claude --report        # mehrere Dateien (zusammengeführt), für Claude, mit Spar-Anzeige
cat export.json | konverter --from json   # aus einer Pipe lesen

| Flag | Bedeutung | Standard | |------|-----------|----------| | -f, --format | auto | json | csv | markdown | toon | auto (das schlankste) | | -m, --model | gpt-4o | gpt-4 | llama-3 | llama-2 | claude | gpt-4o | | -o, --out | Zieldatei | sonst stdout | | --from | Eingabeformat erzwingen (für stdin) | aus Endung erkannt | | --report | Spar-Statistik (nach stderr) | aus | | --safe-csv | CSV-Formel-Zellen entschärfen (sicheres Öffnen in Excel) | aus |

Sicherheit & Datenschutz

  • Lokal-only: keine Daten verlassen den Browser-Tab.
  • Keine Formel-Ausführung: Excel-Formeln werden als Werte gelesen, nie ausgewertet.
  • Härtung der Parser: Größen-Limit (50 MB), Zeilen-/Spalten-Limits gegen DoS/Zip-Bombs, Prototype-Pollution-Schutz bei JSON.
  • Originalgetreue Ausgabe: Zellwerte werden standardmäßig nicht verändert. Für sicheres Öffnen einer heruntergeladenen CSV in Excel entschärft das CLI-Flag --safe-csv formel-artige Zellen (Opt-in).

Aufbau

src/
  table.ts          internes Tabellen-Modell (abhängigkeitsfrei) + Sicherheits-Limits + dedupeNames
  parse/            Eingabe-Parser → Table[]
    csv.ts            Trennzeichen-Erkennung, RFC4180-Parse, konservative Zahl-Erkennung
    json.ts           tabellarisches JSON, weist Verschachteltes ab
    xlsx.ts           Excel (nur per dynamic import geladen)
    index.ts          Dispatcher (kindFromName) + textToTables
  formats/          Ausgabe-Encoder (json | csv | markdown | toon), reine Funktionen + encodeWorkbook
  tokens.ts         Modell-Registry + Lazy-geladene Tokenizer (lokal)
  convert.ts        Orchestrierung: alle Formate kodieren, Token zählen, schlankstes wählen
  main.ts           Browser-UI
  cli.ts            Kommandozeile (Node): liest Dateien, ruft dieselbe Engine

Konfiguration:
  vite.config (implizit, via index.html)   Web-Build
  vite.cli.config.ts                        CLI-Build → dist-cli/cli.js

Lizenz

MIT — siehe LICENSE.