{"id":13512274,"url":"https://github.com/deanishe/zothero","last_synced_at":"2025-09-12T05:32:55.151Z","repository":{"id":41128703,"uuid":"114930223","full_name":"deanishe/zothero","owner":"deanishe","description":"Rapidly search and cite Zotero entries from Alfred","archived":false,"fork":false,"pushed_at":"2021-04-29T20:00:17.000Z","size":12596,"stargazers_count":483,"open_issues_count":37,"forks_count":32,"subscribers_count":17,"default_branch":"master","last_synced_at":"2025-03-29T23:08:56.280Z","etag":null,"topics":["alfred","alfred-3","alfred-worklow","alfred3","alfred4","alfred4-workflow","citation-style-language","citations","zotero","zotero-standalone"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deanishe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-12-20T20:53:57.000Z","updated_at":"2025-03-25T10:49:21.000Z","dependencies_parsed_at":"2022-07-16T23:31:01.546Z","dependency_job_id":null,"html_url":"https://github.com/deanishe/zothero","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fzothero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fzothero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fzothero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deanishe%2Fzothero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deanishe","download_url":"https://codeload.github.com/deanishe/zothero/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247415967,"owners_count":20935387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["alfred","alfred-3","alfred-worklow","alfred3","alfred4","alfred4-workflow","citation-style-language","citations","zotero","zotero-standalone"],"created_at":"2024-08-01T03:01:40.599Z","updated_at":"2025-04-06T00:08:30.346Z","avatar_url":"https://github.com/deanishe.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n    \u003cimg src=\"./src/icon.png\" width=\"200\" height=\"200\"\u003e\n\u003c/div\u003e\n\nZotHero\n=======\n\n[Alfred][alfred] workflow for rapidly searching your Zotero database and copying citations.\n\n\u003c!-- MarkdownTOC autolink=\"true\" bracket=\"round\" depth=\"3\" autoanchor=\"true\" --\u003e\n\n- [Features](#features)\n- [Download \u0026 installation](#download--installation)\n- [Usage](#usage)\n    - [Pasting citations](#pasting-citations)\n- [Configuration](#configuration)\n    - [Zotero data](#zotero-data)\n    - [Citation styles](#citation-styles)\n    - [Locales](#locales)\n    - [All settings](#all-settings)\n    - [Configuration sheet](#configuration-sheet)\n- [Licence \u0026 thanks](#licence--thanks)\n\n\u003c!-- /MarkdownTOC --\u003e\n\n\n\u003ca name=\"features\"\u003e\u003c/a\u003e\nFeatures\n--------\n\n- Perform full-text search across your Zotero database, including only searching specific fields\n- Copy citations using any [CSL][csl] style you have installed in Zotero\n- Copy citations either in citation/note style or bibliography style\n- Copy citations in any [locale supported by CSL](#locales)\n- Copy Better BibTeX citekeys\n- Citations are copied in multiple formats, so the right data are automatically pasted into the application you're using\n- Trigger search while you type using the Snippet Trigger (you must assign the snippet keyword yourself in Alfred Preferences)\n\n\n\u003ca name=\"download--installation\"\u003e\u003c/a\u003e\nDownload \u0026 installation\n-----------------------\n\nDownload the `ZotHero-XYZ.alfredworkflow` file from [GitHub releases](https://github.com/deanishe/zothero/releases), and double-click the downloaded file to install.\n\n**Note**: Versions 1.3.0 and later are only compatible with Alfred 4+. If you're still using Alfred 3, download [v1.2.2][v1.2.2].\n\n\n\u003ca name=\"usage\"\u003e\u003c/a\u003e\nUsage\n-----\n\nThese are the workflow's default keywords in Alfred:\n\n- `zot \u003cquery\u003e` — Search your Zotero database (common fields).\n    - `↩` — Open the entry in Zotero. (`fn+↩` is an alternate)\n    - `⌘↩` — Copy citation to the pasteboard (see [Configuration](#configuration)).\n    - `⌥↩` — Copy bibliography-style citation to the pasteboard (see [Configuration](#configuration)).\n    - `⇧↩` — View entry attachments (if present).\n        - `↩` — Open an attachment in the default application.\n    - `^↩` — View all citation styles.\n        - `↩` or `⌘↩` — Copy citation in selected style.\n        - `⌥↩` — Copy bibliography-style citation in selected style.\n        - `^↩` — Set style as default.\n    - This search can also be triggered by typing a snippet (which you must first assign yourself in Alfred Preferences)\n    - When the Better-Bibtex plugin for Zotero is installed and `COPY_CITEKEY_MOD` is set to any of `-`(no modifier), `alt`, `ctrl`, `cmd`, `fn`, `shift`, the \"Copy citekey\" functionality can be enabled to override above operations\n\n- `zot:[\u003cquery\u003e]` — Search a specific field.\n    - `↩` — Select a field to search against.\n- `zotconf [\u003cquery\u003e]` — View and edit workflow configuration.\n    - `An Update is Available` / `Workflow is Up To Date` — Whether a newer version of the workflow is available.\n    - `Default Style: …` — Choose a citation style for the `⌘↩` and `⌥↩` hotkeys (on search results).\n    - `Locale: …` — Choose a locale for the formatting of citations. If unset, the default for the style is used, or if none is set, US English.\n    - `Reload Zotero Cache` — Clear the workflow's cache of Zotero data. Useful if the workflow gets out of sync with Zotero.\n    - `Open Log File` — Open the workflows log file in the default app (usually Console.app). Useful for checking on indexing problems (the indexer output isn't visible in Alfred's debugger).\n    - `View Documentation` — Open this README in your browser.\n    - `Report an Issue` — Open the GitHub issue tracker in your browser.\n\n\n\u003ca name=\"pasting-citations\"\u003e\u003c/a\u003e\n### Pasting citations ###\n\nWhen you copy a citation, ZotHero puts both HTML and rich text (RTF) representations on the pasteboard. That way, when you paste a citation into an application like Word, the formatted text will be pasted, but when you paste into a text/Markdown document, the HTML will be pasted.\n\n\n\u003ca name=\"configuration\"\u003e\u003c/a\u003e\nConfiguration\n-------------\n\nThe workflow reads Zotero's own config files and partly manages its own configuration with the keyword `zotconf`, but you may need to use the [workflow configuration sheet][conf-sheet] if the workflow can't read Zotero's config files.\n\n**NOTE:** Unlike its main database, Zotero does not save changes to its configuration until the application closes. As such, if you change Zotero's data or attachment directories, the workflow won't see the changes until you quit Zotero.\n\n\n\u003ca name=\"zotero-data\"\u003e\u003c/a\u003e\n### Zotero data ###\n\nThe workflow uses your Zotero database and styles, therefore it needs to know where to find them. The workflow tries to read Zotero's own configuration files, and falls back to `~/Zotero` (the default location for Zotero 5).\n\nIf the workflow can't find your data, you need to set `ZOTERO_DIR` in the [workflow configuration sheet][conf-sheet].\n\nSimilarly, if you have set a \"Linked Attachment Base Directory\" in Zotero, but the workflow can't find the directory, enter its path for `ATTACHMENTS_DIR` in the [configuration sheet][conf-sheet].\n\n**Note**: You can use the UNIX shortcut `~` to represent your home directory, e.g. `~/Zotero` for Zotero 5's default directory.\n\n\n\u003ca name=\"citation-styles\"\u003e\u003c/a\u003e\n### Citation styles ###\n\nThe workflow uses the CSL styles you have installed in Zotero, so to add a new style, simply add it in Zotero. The workflow will pick up the new style(s) on the next run.\n\nYou can copy either a citation-/note-style citation or a bibliography-style one by hitting `⌘↩` or `⌥↩` respectively on a search result or citation style.\n\nFor `⌘↩` and `⌥↩` to work on search results, you must first choose a default style. You can either do this in the configuration screen (keyword `zotconf`), or hitting `^↩` on a search result to show all citation styles, then `^↩` on a style to set that as the default.\n\n\n\u003ca name=\"locales\"\u003e\u003c/a\u003e\n### Locales ###\n\n[CSL][csl] and ZotHero support the following locales. The default behaviour is to use the locale specified in the style if there is one, and `en-US` (American English) if not. Setting a locale overrides the style's own locale.\n\nUse the `zotconf` keyword to force a specific locale.\n\n|                    Locale                    |   Code  |\n|----------------------------------------------|---------|\n| Afrikaans                                    | `af-ZA` |\n| Bahasa Indonesia / Indonesian                | `id-ID` |\n| Català / Catalan                             | `ca-AD` |\n| Cymraeg / Welsh                              | `cy-GB` |\n| Dansk / Danish                               | `da-DK` |\n| Deutsch (Deutschland) / German (Germany)     | `de-DE` |\n| Deutsch (Schweiz) / German (Switzerland)     | `de-CH` |\n| Deutsch (Österreich) / German (Austria)      | `de-AT` |\n| Eesti / Estonian                             | `et-EE` |\n| English (UK)                                 | `en-GB` |\n| English (US)                                 | `en-US` |\n| Español (Chile) / Spanish (Chile)            | `es-CL` |\n| Español (España) / Spanish (Spain)           | `es-ES` |\n| Español (México) / Spanish (Mexico)          | `es-MX` |\n| Euskara / Basque                             | `eu`    |\n| Français (Canada) / French (Canada)          | `fr-CA` |\n| Français (France) / French (France)          | `fr-FR` |\n| Hrvatski / Croatian                          | `hr-HR` |\n| Italiano / Italian                           | `it-IT` |\n| Latviešu / Latvian                           | `lv-LV` |\n| Lietuvių / Lithuanian                        | `lt-LT` |\n| Magyar / Hungarian                           | `hu-HU` |\n| Nederlands / Dutch                           | `nl-NL` |\n| Norsk bokmål / Norwegian (Bokmål)            | `nb-NO` |\n| Norsk nynorsk / Norwegian (Nynorsk)          | `nn-NO` |\n| Polski / Polish                              | `pl-PL` |\n| Português (Brasil) / Portuguese (Brazil)     | `pt-BR` |\n| Português (Portugal) / Portuguese (Portugal) | `pt-PT` |\n| Română / Romanian                            | `ro-RO` |\n| Slovenčina / Slovak                          | `sk-SK` |\n| Slovenščina / Slovenian                      | `sl-SI` |\n| Suomi / Finnish                              | `fi-FI` |\n| Svenska / Swedish                            | `sv-SE` |\n| Tiếng Việt / Vietnamese                      | `vi-VN` |\n| Türkçe / Turkish                             | `tr-TR` |\n| Íslenska / Icelandic                         | `is-IS` |\n| Čeština / Czech                              | `cs-CZ` |\n| Ελληνικά / Greek                             | `el-GR` |\n| Български / Bulgarian                        | `bg-BG` |\n| Монгол / Mongolian                           | `mn-MN` |\n| Русский / Russian                            | `ru-RU` |\n| Српски / Srpski / Serbian                    | `sr-RS` |\n| Українська / Ukrainian                       | `uk-UA` |\n| עברית / Hebrew                               | `he-IL` |\n| العربية / Arabic                             | `ar`    |\n| فارسی / Persian                              | `fa-IR` |\n| ไทย / Thai                                   | `th-TH` |\n| ភាសាខ្មែរ / Khmer                            | `km-KH` |\n| 中文 (中国大陆) / Chinese (PRC)              | `zh-CN` |\n| 中文 (台灣) / Chinese (Taiwan)               | `zh-TW` |\n| 日本語 / Japanese                            | `ja-JP` |\n| 한국어 / Korean                              | `ko-KR` |\n\n\n\u003ca name=\"all-settings\"\u003e\u003c/a\u003e\n### All settings ###\n\nTheses are all settings available in the [workflow configuration sheet][conf-sheet].\n\nYou probably shouldn't edit the `CITE_STYLE` or `LOCALE` variables yourself, as there's no guarantee the value you set is actually available. Adjust them using the `zotconf` keyword.\n\n\n|      Variable      |                                 Meaning                                 |\n|--------------------|-------------------------------------------------------------------------|\n| `ATTACHMENTS_DIR`  | Path to your Zotero attachments. Read from Zotero's config by default.  |\n| `CITE_STYLE`       | Citation style copied by `⌘↩` and `⌥↩`                                  |\n| `LOCALE`           | Locale for citations. Default: `en-US` (US English).                    |\n| `ZOTERO_DIR`       | Path to your Zotero data. Read from Zotero's config by default.         |\n| `COPY_CITEKEY_MOD` | Set to copy Better BibTeX citekey instead of CSL citation/bibliography. |\n\n\n\n\u003ca name=\"licence--thanks\"\u003e\u003c/a\u003e\nLicence \u0026 thanks\n----------------\n\nThis workflow is released under the [MIT licence][licence].\n\nIt is heavily based on [Alfred-Workflow][aw] (also MIT) for the workflow stuff, and [citeproc-js][citeproc-js] ([AGPL][citeproc-licence]) for generating the citations.\n\nIt was inspired by the now-defunct [ZotQuery][zotquery] by [@fractaledmind][smargh].\n\nThe [Zorro icon][icon-source] was created by [Dan Lowenstein][lowenstein] from [the Noun Project][noun-project].\n\n\n\n[alfred]: https://www.alfredapp.com/\n[aw]: http://www.deanishe.net/alfred-workflow/\n[citeproc-licence]: https://github.com/Juris-M/citeproc-js/blob/master/AGPLv3\n[citeproc-js]: https://github.com/Juris-M/citeproc-js\n[conf-sheet]: https://www.alfredapp.com/help/workflows/advanced/variables/#environment\n[csl]: http://citationstyles.org\n[icon-source]: https://thenounproject.com/term/zorro/14540/\n[licence]: ./LICENCE\n[lowenstein]: https://thenounproject.com/danny_mustache\n[noun-project]: https://thenounproject.com\n[releases]: https://github.com/deanishe/zothero/releases\n[smargh]: https://github.com/fractaledmind\n[zotquery]: https://github.com/fractaledmind/alfred_zotquery\n[v1.2.2]: https://github.com/deanishe/zothero/releases/tag/v1.2.2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanishe%2Fzothero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeanishe%2Fzothero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeanishe%2Fzothero/lists"}