building tools as procrastination: a CLI for citations in Google docs
13 Mar 2026so this post is comprised of a few thoughts that converged into a tool.
first: building small things is the new procrastination. i acknowledge that fully. and yet i keep finding myself building small solutions for specific usecases, and i think it comes down to the fact that the famous xkcd is it worth the time has just shifted. it takes a lot less time and effort to build small tools you wish you had.
as a researcher writing papers and preprints (anything that needs proper citations) i always hated the manual labor of managing references. from early days with EndNote to more recent alternatives, it always felt like adding sand to the gears of the actual writing process.
there’s also another thought, and it collides with the first one. the idea of reducing a problem to another problem that’s already been solved.1 these days, anything that can be expressed as a CLI workflow is basically a solved problem, and if it isn’t solved yet, you mostly just need to add the right command to make it work (and the --help flag, and the skill file, but ok).
and but so, i wanted to take this specific pain point of adding citations to papers (and i’ll be more specific: papers that are edited collaboratively on a google doc) and make it frictionless.2 the result is cite-cli: a terminal-based citation manager that resolves papers by DOI, PMID, arXiv ID or title search, stores them in a local library synced with Zotero, and inserts inline citations and bibliographies directly into Google Docs. the typical workflow is: write in Google Docs, paste reference URLs inline as you go, then run cite scan and it formalizes everything.
i probably got motivated by two things. first, i find myself using and improving my own specialized tools almost all the time now. Marginalia is much more feature rich than when i first built it and i use it every other day, and i use blog-narrator for most posts. second, as procrastination. it’s a busy and also unsettling time, and working on a shiny new tool is a really nice way to spend some free time.
i already have some early success using it in testing. i hope that when the work on the current manuscript is done, the tool will be much more complete and well-used.
-
the formal term is “reduction” but the intuition is simpler than that: if you can reframe your problem as an instance of something people already know how to solve, you’re most of the way there. ↩
-
i took some time to research other available options and couldn’t find anything close to a complete solution for this specific workflow (CLI to Google Docs with Zotero sync). ↩