{"id":35222222,"url":"https://github.com/evil-mind-evil-sword/bibval","last_synced_at":"2026-01-13T21:48:22.513Z","repository":{"id":327160405,"uuid":"1108119192","full_name":"evil-mind-evil-sword/bibval","owner":"evil-mind-evil-sword","description":"Citation validator. Check BibTeX entries against CrossRef, DBLP, Semantic Scholar, and OpenAlex.","archived":false,"fork":false,"pushed_at":"2026-01-10T01:29:51.000Z","size":230,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-13T07:46:56.829Z","etag":null,"topics":["academic","bibliography","bibtex","citations","zig"],"latest_commit_sha":null,"homepage":null,"language":"Zig","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/evil-mind-evil-sword.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-12-02T03:39:59.000Z","updated_at":"2026-01-09T16:13:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/evil-mind-evil-sword/bibval","commit_stats":null,"previous_names":["femtomc/bibval","evil-mind-evil-sword/bibval"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/evil-mind-evil-sword/bibval","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mind-evil-sword%2Fbibval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mind-evil-sword%2Fbibval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mind-evil-sword%2Fbibval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mind-evil-sword%2Fbibval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/evil-mind-evil-sword","download_url":"https://codeload.github.com/evil-mind-evil-sword/bibval/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/evil-mind-evil-sword%2Fbibval/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28401058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T14:36:09.778Z","status":"ssl_error","status_checked_at":"2026-01-13T14:35:19.697Z","response_time":56,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["academic","bibliography","bibtex","citations","zig"],"created_at":"2025-12-30T00:18:52.460Z","updated_at":"2026-01-13T21:48:22.501Z","avatar_url":"https://github.com/evil-mind-evil-sword.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bibval\n\n**Citation validator.** Check BibTeX entries against academic databases.\n\nValidates bibliographic references by querying CrossRef, DBLP, Semantic Scholar, and OpenAlex.\n\n## Install\n\n```sh\ncurl -fsSL https://evil-mind-evil-sword.github.io/releases/bibval/install.sh | sh\n```\n\n\u003cdetails\u003e\n\u003csummary\u003eFrom source\u003c/summary\u003e\n\nRequires [Zig](https://ziglang.org/) 0.15.2+:\n\n```bash\nzig build -Doptimize=ReleaseFast\n```\n\nThe binary is in `zig-out/bin/bibval`.\n\u003c/details\u003e\n\n## Why?\n\nBibTeX files accumulate errors over time. You copy a citation from Google Scholar, but the year is wrong. You import from Zotero, but the title has curly quotes that break compilation. You cite a preprint that's since been published, but now your bibliography points to the wrong venue.\n\nbibval catches these by checking your entries against the source of truth: CrossRef for DOIs, DBLP for CS publications, Semantic Scholar for AI-powered search, and OpenAlex for broad coverage. It queries them in parallel and caches responses locally, so repeated runs are fast. When it finds a mismatch—wrong year, different title, missing DOI—it tells you exactly what's wrong and where the correct data came from.\n\n## Usage\n\n```bash\nbibval references.bib\n```\n\nValidate multiple files:\n\n```bash\nbibval paper.bib thesis.bib\n```\n\n### Options\n\n| Flag | Description |\n|------|-------------|\n| `--no-crossref` | Disable CrossRef API |\n| `--no-dblp` | Disable DBLP API |\n| `--no-semantic` | Disable Semantic Scholar API |\n| `--no-openalex` | Disable OpenAlex API |\n| `--no-cache` | Disable caching of API responses |\n| `-s, --strict` | Exit with error if any issues found |\n| `-v, --verbose` | Verbose output |\n| `-k, --key KEY` | Only validate entries with these citation keys (comma-separated) |\n| `--json` | Output JSON format |\n\n### Example Output\n\n```\nbibval Report\n==================================================\n\nProcessed: 84 entries\n  58 validated, 9 warnings, 13 errors, 4 not found\n\nERRORS (13)\n  [bingham_pyro_2019] ERROR Year mismatch: 2019 vs 2018 (via DBLP)\n       Local:  2019\n       Remote: 2018\n  ...\n\nWARNINGS (9)\n  [carpenter_stan_2017] WARN Title slightly different (similarity: 88%) (via CrossRef)\n  ...\n\nOK (58)\n  [lew_probabilistic_2023] Validated against CrossRef\n  ...\n```\n\n## Validators\n\nbibval queries multiple academic databases:\n\n- **CrossRef** - DOI resolution and metadata\n- **DBLP** - Computer science bibliography\n- **Semantic Scholar** - AI-powered academic search\n- **OpenAlex** - Open catalog of 250M+ scholarly works\n\n## What It Checks\n\n- **Year mismatches** - Publication year differs from database\n- **Title differences** - Fuzzy matching with similarity scores\n- **Author discrepancies** - Missing authors or spelling variations\n- **Missing DOIs** - Entry lacks DOI when one exists\n\n## Caching\n\nAPI responses are cached locally to speed up repeated validations. Cache is stored in `~/.cache/bibval/`.\n\nDisable with `--no-cache`.\n\n## Exit Codes\n\n- `0` - All entries validated successfully (or warnings only)\n- `1` - Errors found or validation failed\n\nUse `--strict` to treat warnings as errors.\n\n## Related\n\nbibval builds on the APIs of several academic databases:\n\n**Primary Sources.** [CrossRef](https://www.crossref.org/) is the canonical source for DOI metadata—bibval checks here first for published articles. [DBLP](https://dblp.org/) has been the computer science community's bibliography since 1993, maintained by Schloss Dagstuhl and released as open data. [Semantic Scholar](https://www.semanticscholar.org/) adds AI-powered features like paper embeddings and citation context.\n\n**Other Databases.** [OpenAlex](https://openalex.org/) is an open catalog of 250M+ scholarly works that replaced Microsoft Academic.\n\n**Reference Managers.** For managing bibliographies rather than validating them, [Zotero](https://www.zotero.org/) is open-source with good browser integration. [JabRef](https://www.jabref.org/) is BibTeX-native. Both can export entries that bibval can then validate.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevil-mind-evil-sword%2Fbibval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fevil-mind-evil-sword%2Fbibval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fevil-mind-evil-sword%2Fbibval/lists"}