Skip to main content

Builtin plugins

Chive includes 24 builtin plugins for metadata enrichment, author verification, and backlink tracking.

Metadata enrichment

Semantic Scholar

ID: pub.chive.plugin.semantic-scholar

Fetches citation data, author profiles, and SPECTER2 recommendations from Semantic Scholar.

// Available methods
await plugin.getPaper(s2Id);
await plugin.getPaperByDoi(doi);
await plugin.getPaperByArxiv(arxivId);
await plugin.getAuthor(authorId);
await plugin.searchAuthors(query);
await plugin.searchPapers(query);
await plugin.getCitations(paperId, { limit: 100 });
await plugin.getReferences(paperId, { limit: 100 });
await plugin.getRecommendations(paperId, { limit: 10 });

Configuration:

VariableDefaultDescription
S2_API_KEY(none)API key for higher rate limits
S2_CACHE_TTL604800Cache TTL (7 days)
S2_RATE_LIMIT3000Delay between requests (ms)

OpenAlex

ID: pub.chive.plugin.openalex

Fetches work metadata, concepts, and institution affiliations from OpenAlex.

await plugin.getWork(openAlexId);
await plugin.getWorkByDoi(doi);
await plugin.getAuthorByOrcid(orcid);
await plugin.autocompleteAuthors(query);
await plugin.searchWorks(query, { filters });
await plugin.classifyText(text);
await plugin.getRelatedWorks(workId);
await plugin.getWorksBatch(ids); // Up to 50

Configuration:

VariableDefaultDescription
OPENALEX_EMAIL(required)Email for polite pool
OPENALEX_CACHE_TTL604800Cache TTL (7 days)

CrossRef

ID: pub.chive.plugin.crossref

Fetches DOI metadata and reference lists from CrossRef.

await plugin.getWork(doi);
await plugin.searchWorks(query);
await plugin.getReferences(doi);
await plugin.getCitationCount(doi);

Configuration:

VariableDefaultDescription
CROSSREF_EMAIL(required)Email for polite pool
CROSSREF_CACHE_TTL2592000Cache TTL (30 days)

Wikidata

ID: pub.chive.plugin.wikidata

Links entities to Wikidata for multilingual labels and external identifiers.

await plugin.getEntity(qid);
await plugin.search(query, { language: 'en' });
await plugin.getSparqlResults(sparqlQuery);

Author verification

ORCID

ID: pub.chive.plugin.orcid

Verifies author identity by checking ORCID profiles.

await plugin.fetchOrcidProfile(orcidId);
await plugin.searchAuthors(name);
await plugin.isValidOrcid(orcidId); // Validates format and checksum

The plugin validates ORCIDs using the Luhn checksum algorithm.

Configuration:

VariableDefaultDescription
ORCID_CACHE_TTL86400Cache TTL (24 hours)

ROR

ID: pub.chive.plugin.ror

Verifies institution affiliations using the Research Organization Registry.

await plugin.getOrganization(rorId);
await plugin.search(query);
await plugin.autocomplete(prefix);

Eprint archives

arXiv

ID: pub.chive.plugin.arxiv

Imports eprints from arXiv using OAI-PMH and the Atom API.

// Bulk import via OAI-PMH
for await (const eprint of plugin.fetchEprints()) {
// Process eprints
}

// Search via Atom API
const results = await plugin.search(query);

// Get single paper
const paper = await plugin.fetchPaperDetails(arxivId);

Configuration:

VariableDefaultDescription
ARXIV_CATEGORIEScs.CL,cs.AI,cs.LGDefault categories
ARXIV_RATE_LIMIT3000Delay between requests (ms)

LingBuzz

ID: pub.chive.plugin.lingbuzz

Imports linguistics eprints from LingBuzz.

for await (const eprint of plugin.fetchEprints()) {
// Process eprints
}

const results = await plugin.search(query);

Uses RSS feed and web scraping with a 10-second delay between requests.

Semantics archive

ID: pub.chive.plugin.semanticsarchive

Imports semantics eprints from Semantics Archive.

for await (const eprint of plugin.fetchEprints()) {
// Process eprints
}

Uses web scraping with a 5-second delay between requests.

PsyArXiv

ID: pub.chive.plugin.psyarxiv

Imports psychology eprints from PsyArXiv via the OSF API.

OpenReview

ID: pub.chive.plugin.openreview

Imports conference papers from OpenReview with peer review metadata.

for await (const eprint of plugin.fetchEprints({ venue })) {
// Process submissions
}

const results = await plugin.search(query);

Supports OAuth authentication for author profile verification.

Data and software

Zenodo

ID: pub.chive.plugin.zenodo

Links eprints to software and datasets archived on Zenodo.

await plugin.getRecord(doi);
await plugin.search(query, { type: 'dataset' });

Figshare

ID: pub.chive.plugin.figshare

Links eprints to supplementary materials on Figshare.

Dryad

ID: pub.chive.plugin.dryad

Links eprints to research data on Dryad.

Software heritage

ID: pub.chive.plugin.software-heritage

Links eprints to archived source code on Software Heritage.

OSF

ID: pub.chive.plugin.osf

Links eprints to Open Science Framework projects.

Code repositories

GitHub

ID: pub.chive.plugin.github

Detects and links GitHub repositories mentioned in eprints.

await plugin.getRepositoryInfo(owner, repo);
await plugin.detectRepositories(eprint);

Extracts repository metadata including stars, forks, license, and language.

GitLab

ID: pub.chive.plugin.gitlab

Links eprints to GitLab repositories.

Subject classification

FAST

ID: pub.chive.plugin.fast

Searches FAST (Faceted Application of Subject Terminology) headings.

await plugin.searchSubjects(query);
await plugin.getSubject(fastId);

FAST provides 1.7 million controlled vocabulary terms from OCLC.

DOI registration

DOI registration

ID: pub.chive.plugin.doi

Registers DOIs for eprints via DataCite.

await plugin.registerDoi(eprint);
await plugin.updateDoi(doi, metadata);

Requires DataCite credentials.

These plugins track references to Chive eprints from ATProto apps.

ID: pub.chive.plugin.bluesky-backlinks

Tracks references from Bluesky posts (app.bsky.feed.post).

Detects embedded eprint links and external URLs pointing to Chive.

ID: pub.chive.plugin.cosmik-backlinks

Tracks references to Chive eprints from Cosmik cards and collections (network.cosmik.card).

ID: pub.chive.plugin.leaflet-backlinks

Tracks references from Leaflet semantic annotations.

ID: pub.chive.plugin.whitewind-backlinks

Tracks references from WhiteWind research notes.

Plugin dependencies

Some plugins depend on others:

If optional plugins are unavailable, the service falls back to local data.