Command-line tool and TypeScript library
dip
Browse Germany’s Bundestag parliamentary record from your terminal. dip is a command-line tool over the Bundestag DIP API (search.dip.bundestag.de/api/v1): search procedures, printed papers, plenary protocols, activities and people — as clean JSON you can pipe straight into jq.
Install
Needs Node.js 20 or newer. Installs the dip command:
npm i -g @maschinenlesbar.org/dip-bundestag-cliAccess
Needs the free, publicly documented API key: pass --api-key or set DIP_API_KEY. No key is bundled; the README explains where to get it.
Quick start
export DIP_API_KEY=your-personal-key
# Procedures matching a title keyword
dip vorgang list --filter f.titel=Klimaschutz
# How many matched?
dip vorgang list --filter f.titel=Klimaschutz | jq '.numFound'
# Fetch one procedure by id
dip vorgang get 282486
# Full text of a printed paper
dip drucksache-text list --filter f.titel=Haushaltsgesetz --filter f.wahlperiode=20 \
| jq -r '.documents[0].text'Commands
-
obtain-keyObtain the DIP API key and check it still works. DIP rotates its published key, so the candidate is verified against the live API before it is printed; if no published key is accepted the command fails and points at https://dip.bundestag.de/über-dip/hilfe/api.
-
vorgangVorgänge (procedures)
-
vorgangspositionVorgangspositionen
-
drucksacheDrucksachen (printed papers)
-
drucksache-textDrucksachen with full text
-
plenarprotokollPlenarprotokolle
-
plenarprotokoll-textPlenarprotokolle with full text
-
aktivitaetAktivitäten
-
personPersonen (members)
Claude Code skills
The dip-bundestag plugin teaches Claude to use dip. Install it from the maschinenlesbar.org marketplace:
/plugin marketplace add maschinenlesbar-org/plugins
/plugin install dip-bundestag@maschinenlesbar/dip-bundestag:dip-document-digest/dip-bundestag:dip-member-dossier/dip-bundestag:dip-procedure-tracker
What the skills answer, with real examples → Skill descriptions and requirements →
TypeScript library
@maschinenlesbar.org/dip-bundestag-cli is also a typed API client you can import in your own code, with no runtime HTTP dependencies.
The tool, not the data
The data comes from the provider behind the API, under its own terms — see DATA_LICENSE.md. The code is dual-licensed AGPL-3.0-or-later or commercial — see LICENSING.md.