Turn-key LLM-assisted title/abstract screening for systematic reviews, on a laptop.
New to R? The getting-started guide walks through installation and a first run with no programming experience assumed.
screenllm operationalises the two workflow choices systematically
evaluated in Spillias et al. (2026):
The reviewer then screens the records above the stop point using either a Shiny mini-app (interactive), an exported Excel worksheet (offline / team), or a plain CSV. Everything below the stop point is treated as excluded.
Two options depending on how much you have to install.
Turn-key (recommended for a fresh machine):
install.packages("screenllm") # once available on CRAN
# or: remotes::install_github("s-spillias/screenllm")
library(screenllm)
install_prereqs() # detects OS, offers to install
# Ollama, pulls the four paper models
launch_app() # opens the Shiny workflow in browser
install_prereqs() walks through:
brew on macOS, winget on Windows, official
install script on Linux — asks first).Laptop-friendly alternative (~10 GB total):
install_prereqs(models = c("gemma3:4b", "llama3.2:3b",
"qwen3:4b", "mistral:7b"))
Then choose the "Light (4 small models)" preset in the Setup tab of the
app, or from R use default_ensemble_light(). Slightly lower accuracy
than the paper ensemble, but runs comfortably on 8-16 GB of RAM.
Manual install (if you prefer to install Ollama yourself):
sh
ollama pull gemma3:27b
ollama pull gpt-oss:20b
ollama pull mistral-small3.2:24b
ollama pull qwen3:30b-a3b-instruct-2507
check_setup() in R to confirm all models are visible.library(screenllm)
records <- read_records("my_search_results.csv")
criteria <- define_criteria(
scope = "Field-based coral reef restoration and performance",
inclusions = c(
"The study is conducted at a field-based coral reef restoration site.",
"The study describes a project with an explicit restoration goal.",
"The study describes an active restoration intervention.",
"The study monitors at least one restoration-performance metric."
)
)
ranked <- rank_records(records, criteria) # overnight on a laptop
plan <- plan_screening(ranked) # SAFE at recommended default
launch_screening_app(plan, ranked, out_file = "decisions.csv")
decisions <- read_decisions("decisions.csv")
summarise_screening(ranked, decisions, plan = plan)
audit_disagreements(ranked, decisions) # LLM–human disagreement audit
digest::digest(list(criteria_hash, model, replicate, id, temperature)).
An interrupted run resumes where it left off.rank_records() iterates models × replicates × records; the
progress bar shows where you are.custom_ensemble(models = c("...", ...)).inst/prompts/standard.txt) and can be inspected with build_prompt().Following the paper's own scoping:
0.1.0 — first public release. The public API is small (six calls in the manual path, one call via the Shiny app) and stable; internals may change between minor versions.
screenllm targets locally-served open-weights ensembles with an
integrated stopping rule. If your use case is different, you may want:
If screenllm contributes to a review or a publication, please cite the
methods paper it implements:
Spillias, S., Avila Turriago, L., Brown, C., Easton, A., Roberts, J., Sievers, M., Swearer, S., Taylor, A., Wright, B., & Komyakova, V. (2026). Operationalising LLM-assisted screening of literature to support systematic reviews. Manuscript in submission; preprint forthcoming.
The canonical, machine-readable entry ships with the package. From R:
citation("screenllm") # formatted reference
toBibtex(citation("screenllm")) # BibTeX for a reference manager
The citation is updated with the volume, page, and DOI once the paper is
published, so re-run citation("screenllm") against the version you used.
screenllm does not include or distribute Ollama or any Ollama models. It
provides functionality to help you install Ollama and download and manage
models, including through the Shiny application.
Ollama and individual models are subject to their own licence terms, which
vary between models and may include use restrictions or other conditions.
You are responsible for reviewing and complying with the applicable licence
terms for Ollama and any models you install or use through screenllm.
The screenllm MIT licence applies to the screenllm software itself and
does not grant any rights to Ollama or to third-party models.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.