Working in Citet

Citations

Citet handles bibliographies via plain .bib files, Zotero library integration, or both. All sources feed the same editor features: autocomplete, hover previews, and the citation picker.

In the Backmatter family, Nocite is the companion reference manager for sources not cited yet. Nocite keeps the research library; Citet turns selected sources into writing.

From Research

Papers you collect in Research (or in Nocite, which shares the same library) reach a project in a few steps:

  1. In the editor, open Citations and, on the Research library card, choose Add papers.
  2. Under Bibliographies, tick the papers and choose Add to followed by your project name.
  3. Citet writes research.bib to the project root. Once your main file contains a \cite and no bibliography yet, adding papers also inserts \bibliography{research} for you. Adding papers again replaces only your own papers in it, so collaborators keep theirs, and a research.bib you created yourself is never overwritten.

Research can also show which of these papers the manuscript actually cites. The project's owner turns this on in Project settings → Research; it is off by default. Then the browsers of people editing the project send the citation keys used in the text to the Research library that research.bib came from. Research keeps that list readable on its own service; nothing else of the encrypted project is sent.

Plain .bib files

Add one or more .bib files to the project — they can have any name. The editor parses them immediately and uses their entries for:

→Autocomplete inside \cite{
type part of a key, author, title, or year to filter entries.
→Hover tooltips
shows authors, year, and full title on existing cite keys.
→Linting
flags \cite keys that do not appear in any .bib file in the project.

Compile with the usual \bibliographystyle and \bibliography commands. You can split your bibliography across multiple files and list them all: \bibliography{refs,extra}. Citet merges them for autocomplete.

▶How .bib files are parsed

.bib files are parsed in the browser using a LaTeX-aware parser from packages/lang-latex. It handles the most common entry types (article, book, inproceedings, misc, etc.) and standard field names. Entries with syntax errors are silently skipped; if entries seem to be missing from completions, check the raw file for malformed entries.

Projects are end-to-end encrypted: .bib files are parsed in your browser from their decrypted text, and Zotero references are stored in the project's encrypted citation library, so the server never sees your entries.

Citation picker

Press ⌘' / Ctrl+' while typing inside a \cite{ argument to open the citation picker. It searches across all citation sources — local .bib files and Zotero — by title, author, year, or tag.

Selecting an entry inserts the cite key at the cursor. If the entry came from Zotero and is not already in a .bib file, it is appended to the project's main bibliography file so the compiler can find it.

You can also open the citation library sidebar from the command palette (Open citations). The sidebar lets you browse and search the full library without requiring a cursor inside a \cite argument.

Hover previews and jump-to-source

Hovering a cite key shows the full resolved entry: authors, year, title, and container. Hold ⌘ / Ctrl and click a key to jump to its definition:

  • For entries in a .bib file — jumps to that entry's line in the bibliography file.
  • For Zotero entries — opens the entry in the local Zotero client if it is running.

Zotero integration

Attaching a Zotero collection adds its references to the picker and autocomplete without copying entries into a .bib file by hand. Citet reads your library with a read-only Zotero API key; it never sees your Zotero password.

The quickest way: in a project's citation library (under Zotero sync source) or in your account settings, choose Sign in with Zotero, sign in at zotero.org and allow access. Then choose a collection and attach it. If your Citet server does not offer sign-in, or you prefer to manage the key yourself, create one by hand:

  1. On zotero.org, open Settings → Security → Create new private key. Turn on Allow library access and leave write and notes access off. For group libraries, set group access to Read Only. Save the key.
  2. In a project, open the citation library, paste the key under Zotero sync source and choose Connect Zotero. You can also connect from your account settings.
  3. Choose a collection and attach it. Sync Zotero now fetches it again after you change it in Zotero.
▶Zotero API key and privacy

Your browser talks to the Zotero Web API directly. Citet's servers never keep your Zotero key and never receive your library or the references you import: fetched references are stored in the project's end-to-end encrypted citation library. With Sign in with Zotero, the server only completes the sign-in with zotero.org (Zotero requires that step) and passes the new key straight to your browser without storing it.

The key is stored as an encrypted account setting that only your own unlocked devices can open, so it follows you to every device where you unlock encryption. Disconnecting removes it from Citet; delete the key on zotero.org/settings/keys to revoke it completely.