Bailii case download
Reusable Claude skills (SKILL.md) for Cowork/Claude Code, focused on legal AI: pure-Python BAILII downloader solving Anubis proof-of-work, UK employment-law verifier, legal writing, prompt generators
npx -y skills add ciaransaunders/Skills-Public --skill bailii-case-downloadAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Search BAILII (www.bailii.org) for a UK or Irish case and download the full judgment as a clean PDF. Use whenever the user wants a case from BAILII, gives a neutral citation (e.g. "[2024] EAT 114", "[2021] UKSC 5") or a BAILII URL and asks to fetch/download/save it, asks for "the full case as a PDF", wants to verify a case PDF against the authoritative source, or asks to find a case on BAILII by name. Also trigger when the user mentions BAILII, case law downloads, or building a bundle of authorities and needs the underlying judgments.
SKILL.md
3.9 KB, as published. Nobody here has run it
BAILII case downloader
Fetches UK/Irish judgments from BAILII and saves them as clean, readable PDFs (BAILII chrome, nav, search forms, donation banners and footers removed).
BAILII now sits behind Anubis — a JavaScript proof-of-work bot wall, on top
of its long-standing cloud-IP block. The bundled script solves the proof-of-work
in pure Python (no browser needed) and handles BAILII's CGI quirks, so prefer it
over web_fetch/curl, which will just hit the "Making sure you're not a bot!"
page.
The script
scripts/bailii_fetch.py — self-contained, Python 3 stdlib only for fetching.
PDF rendering uses the first available of: wkhtmltopdf → headless
Chrome/Chromium → weasyprint. If none is present it saves the cleaned HTML and
says so in the output (you can then convert it yourself).
Run it with python3 scripts/bailii_fetch.py <command> .... All commands print
JSON to stdout.
Choosing a command (in order of preference)
1. cite — when you have a neutral citation. Most reliable; use this first.
python3 scripts/bailii_fetch.py cite "[2024] EAT 114" --out DIR
Resolves the citation via BAILII's citation finder and downloads the case. Works for the usual courts: UKSC, UKHL, UKPC, EWCA, EWHC, EAT/UKEAT, UKUT, etc. Exits with code 2 and a helpful message if the citation doesn't resolve.
2. url — when you already have the BAILII case URL.
python3 scripts/bailii_fetch.py url "https://www.bailii.org/uk/cases/UKSC/2021/5.html" --out DIR
3. search — when you only have the case name. Returns candidates; does NOT auto-download.
python3 scripts/bailii_fetch.py search "Uber Aslam" --limit 6
Prints a JSON list of {url, title} candidates (title-scoped search — fuzzy by
design). Pick the right one yourself, confirm with the user if ambiguous,
then download it with url. Don't assume the first result is correct; BAILII
often returns the whole litigation chain (ET → EAT → CA → SC) and you want the
specific instance the user means.
Options
--out DIRwhere to save (default: current dir). Create/choose a sensible folder, e.g. an authorities bundle directory.--keep-htmlalso keep the cleaned standalone HTML next to the PDF.--no-pdfsave cleaned HTML only, skip PDF rendering.--limit N(search only) max candidates to return.
Output
cite and url print JSON with title, source_url, pdf (path), optionally
html, and pdf_engine. The PDF carries a small "Retrieved from BAILII · <url>"
provenance banner at the top so the source is always traceable — useful for an
authorities bundle.
Notes / caveats
- Anubis is occasionally flaky. The script already solves-and-retries and
validates the final page (rejects bot-wall pages, checks it's a real
/cases/...htmljudgment). If a fetch still fails, just run it again. - Always sanity-check the result. Confirm the returned
titlematches the case the user asked for before relying on it — especially aftersearch. - This pulls public judgments from a free public legal database. It is not a substitute for a citator: BAILII does not show subsequent treatment / whether a case is still good law.
- Filenames are derived from the case title and capped in length; the script handles the awkward characters.