A command-line tool for managing your bibliography (i.e., .bib
files and .pdf
files) across multiple machines using Dropbox.
Features:
- add papers, sorted by citation key, to Dropbox
- easily open any paper given its citation key
- organize papers by tagging them
- generate a full
.bib
file of all your papers - export papers with a particular tag
./install-deps.sh
Fill in ck.config
and put it in your user_config_dir folder.
For auto tag-suggesting, you can install pdfgrep (optional):
apt install pdfgrep # Ubuntu/Debian
brew install pdfgrep # Mac OS
To install bash auto-completion, run
source bash_completion.d/ck
Other dependencies:
brew install pango libffi # Mac OS
Just search GitHub for more: "ieeexplore downloadcitations"
# add a paper to your library given a paywall URL (e.g., ACM DL, SpringerLink, IEEEXplore)
# or an eprint url (e.g., IACR eprint)
ck add <paper-url> <citation-key>
# add a bib file to your library without a PDF
ck open <citation-key>.bib
# ...and edit the .bib file and save it
# open a paper's PDF
ck open <citation-key>
ck open <citation-key>.pdf
# open a paper's .bib file
ck open <citation-key>.bib
# tag the paper with <tag> (or enter tag manually from keyboard)
ck tag <citation-key> [<tag>]
# search all your .bib files and print matching papers' citation keys
ck search <query>
Q: How to deal with multiple published versions of the same paper (eprint, conference, journal)?
A: Have each version as a different CK, since it might contain additional info that needs to be cited.
- some springerlink URLs don't work because they have .ris citations only
Might want separate addbib
and addpdf
commands, to support adding the PDF and .bib file from different locations. Then, ck add
can just call both of them, with overwrite=false
- If called individually, they will leave the library in an inconsistent state, so the user should be warned (since either PDF or .bib file might be missing)
- URL handler should be split into a
download_pdf
and adownload_bib
, so we can call them separately inaddbib/addpdf
- this is useful when PDFs are paywalled, but we still want the .bib
Add support for adding PDF from local file too.
Add support for downloading a webpage as a PDF and adding it.
ck tag/untag/genbib/copypdfs
autocompletion of tags- figure out how to have a
setup.py
that installs this thing- add a
requirements.txt
too
- add a
- if PDFs are not available from publisher, try sci-hub.tw: see python example here
- Cryptology ePrint updater: need it to update papers to their latest versions
ck
should run this once a day
- should move old paper to
CK<year>.<ckdateadded>.pdf
(make sure no naming conflicts)
- tools for making the .bib files consistent
- titles should have double brackets
- same conference shouldn't have different names
- author names should always be separated by ' and '
- similar or incomplete author names
ck
commandlist
subcommand- display associated file info
- nopdf
- nobib
- md
- any other files (e.g., ABC19.slides.pdf)
- list all conferences across papers
- when invoked without recursion, tell user what other subtags are there in the current subdir?
- display associated file info
open
subcommand- add support for various associated files: .bib, .html, .md, .notes.[0-9]*.pdf, .slides.pdf, .etc
- if you type in a partial citation key, should list all matches
- if just one match, should just open it, displaying a warning that it only partially matched so as to not train you to use the wrong CK
- if you type an ambiguous citation key (lowercase / uppercase), maybe you should be prompted for what to open, because there won't be many matches.
untag
subcommand- right now, if we only have a
.bib
file without any PDFs,untag
will not detect any untagged papers. how to handle?
- right now, if we only have a