<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.zotero.org/support/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.zotero.org/support/feed.php">
        <title>Zotero Documentation dev:client_coding</title>
        <description></description>
        <link>https://www.zotero.org/support/</link>
        <image rdf:resource="https://www.zotero.org/support/lib/tpl/zotero-theme/images/favicon.ico" />
       <dc:date>2026-04-30T09:53:38+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/building_pythonext_for_zotero_macword_integration?rev=1510534412&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/building_the_desktop_app_windows_notes?rev=1697537865&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/building_the_desktop_app?rev=1721458845&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/building_the_standalone_client_under_cygwin?rev=1510534412&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1_and_zotero_standalone?rev=1510534412&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1?rev=1511777364&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_3.0?rev=1511777618&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/coding_guidelines?rev=1511777914&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/connector_http_server?rev=1765449014&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/developer_tools?rev=1721459167&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/direct_sqlite_database_access?rev=1660450942&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/http_integration_protocol?rev=1658324342&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/javascript_api?rev=1724226920&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/libreoffice_plugin_wire_protocol?rev=1658324676&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.zotero.org/support/dev/client_coding/plugin_development?rev=1699951297&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.zotero.org/support/lib/tpl/zotero-theme/images/favicon.ico">
        <title>Zotero Documentation</title>
        <link>https://www.zotero.org/support/</link>
        <url>https://www.zotero.org/support/lib/tpl/zotero-theme/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/building_pythonext_for_zotero_macword_integration?rev=1510534412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-12T19:53:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:building_pythonext_for_zotero_macword_integration</title>
        <link>https://www.zotero.org/support/dev/client_coding/building_pythonext_for_zotero_macword_integration?rev=1510534412&amp;do=diff</link>
        <description>Source is available at Google Code. Build documentation is forthcoming.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/building_the_desktop_app_windows_notes?rev=1697537865&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-17T06:17:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:building_the_desktop_app_windows_notes</title>
        <link>https://www.zotero.org/support/dev/client_coding/building_the_desktop_app_windows_notes?rev=1697537865&amp;do=diff</link>
        <description>Building the Zotero Desktop App on Windows

Note:
If you 1) primarily work on macOS or Linux and just want to test a build on Windows; 2) have WSL installed, you don't need to follow these steps. You can simply create an unpackaged Windows build on your main system/WSL with</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/building_the_desktop_app?rev=1721458845&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-20T03:00:45+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:building_the_desktop_app</title>
        <link>https://www.zotero.org/support/dev/client_coding/building_the_desktop_app?rev=1721458845&amp;do=diff</link>
        <description>Building the Zotero Desktop App

Note: If you don't plan to make any code changes yourself, and only wish to run the latest prerelease versions of Zotero, you can just install a .

Build Steps

Windows users: The following commands assume a POSIX-compliant system. To build Zotero on Windows, please follow the</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/building_the_standalone_client_under_cygwin?rev=1510534412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-12T19:53:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:building_the_standalone_client_under_cygwin</title>
        <link>https://www.zotero.org/support/dev/client_coding/building_the_standalone_client_under_cygwin?rev=1510534412&amp;do=diff</link>
        <description>Moved to building_on_windows.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1_and_zotero_standalone?rev=1510534412&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-12T19:53:32+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:changes_in_zotero_2.1_and_zotero_standalone</title>
        <link>https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1_and_zotero_standalone?rev=1510534412&amp;do=diff</link>
        <description>Moved to Changes in Zotero 2.1 and Changes in Zotero 3.0.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1?rev=1511777364&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-27T05:09:24+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:changes_in_zotero_2.1</title>
        <link>https://www.zotero.org/support/dev/client_coding/changes_in_zotero_2.1?rev=1511777364&amp;do=diff</link>
        <description>Changes in Zotero 2.1

Changes to citation API

With the introduction of citeproc-js, all Zotero.CSL APIs have been removed. Styles can be loaded in the usual way by accessing Zotero.Styles, but
developers should use Zotero.Style.csl to acquire a citeproc-js engine instance for citation formatting.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/changes_in_zotero_3.0?rev=1511777618&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-27T05:13:38+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:changes_in_zotero_3.0</title>
        <link>https://www.zotero.org/support/dev/client_coding/changes_in_zotero_3.0?rev=1511777618&amp;do=diff</link>
        <description>Changes in Zotero 3.0

Changes to translators

Zotero.done() and Zotero.wait() are deprecated

Calling Zotero.done() and Zotero.wait() during translation is no longer necessary. Zotero.done() is still used to indicate item type in translators that implement asynchronous detection (currently only unAPI).</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/coding_guidelines?rev=1511777914&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-11-27T05:18:34+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:coding_guidelines</title>
        <link>https://www.zotero.org/support/dev/client_coding/coding_guidelines?rev=1511777914&amp;do=diff</link>
        <description>JavaScript code in Zotero should conform to the following coding and style guidelines. We encourage Zotero plugin writers to follow these guidelines as well for consistency and possible future integration of code into the Zotero codebase.

Note: Not all current code in Zotero conforms to these guidelines. While existing code generally should not be modified for the sole purpose of conforming, new code or modifications to existing code should follow these guidelines.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/connector_http_server?rev=1765449014&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-11T05:30:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:connector_http_server</title>
        <link>https://www.zotero.org/support/dev/client_coding/connector_http_server?rev=1765449014&amp;do=diff</link>
        <description>Zotero Connector HTTP Server

Zotero has a built-in HTTP server to communicate with the  browser extensions.

The connector server defines several endpoints by default, including:

	*  /connector/saveItems
	*  /connector/saveSnapshot
	*  /connector/selectItems</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/developer_tools?rev=1721459167&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-07-20T03:06:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:developer_tools</title>
        <link>https://www.zotero.org/support/dev/client_coding/developer_tools?rev=1721459167&amp;do=diff</link>
        <description>Connecting to Zotero with the Firefox Developer Tools

Since Zotero is based on Firefox, it's possible to use the Firefox Developer Tools to interact with the DOM, set code breakpoints, follow network requests, and more.

Zotero 7 beta builds include the Firefox 115 devtools. To start a beta build with the Browser Toolbox open, pass the</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/direct_sqlite_database_access?rev=1660450942&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-08-14T00:22:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:direct_sqlite_database_access</title>
        <link>https://www.zotero.org/support/dev/client_coding/direct_sqlite_database_access?rev=1660450942&amp;do=diff</link>
        <description>Direct Access to the Zotero SQLite Database

While it is generally preferable to access Zotero library data via either the Web API or JavaScript API, it is also possible to directly access the SQLite database of the Zotero client using an SQLite client, library, or third-party tool. All library data is stored in an SQLite database, zotero.sqlite, within the</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/http_integration_protocol?rev=1658324342&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-20T09:39:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:http_integration_protocol</title>
        <link>https://www.zotero.org/support/dev/client_coding/http_integration_protocol?rev=1658324342&amp;do=diff</link>
        <description>HTTP Citing Protocol

The Google Docs plugin uses a simple HTTP protocol to communicate with Zotero. The below documentation applies to Zotero 6.0 and newer.

Basics

Zotero operates a server on port 23119 for Zotero Connector integration. It includes endpoints for integrating with Zotero citing functionality. The integrating plugin or application only needs to be able to send HTTP JSON requests to fully implement the citing protocol.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/javascript_api?rev=1724226920&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-08-21T03:55:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:javascript_api</title>
        <link>https://www.zotero.org/support/dev/client_coding/javascript_api?rev=1724226920&amp;do=diff</link>
        <description>Zotero JavaScript API

Whereas Zotero's Web API allows read and write access to online Zotero libraries, it is also possible to access the local Zotero client through the local JavaScript API. (It is also possible to directly access the local SQLite database, but that approach is much more fragile.)</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/libreoffice_plugin_wire_protocol?rev=1658324676&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-07-20T09:44:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:libreoffice_plugin_wire_protocol</title>
        <link>https://www.zotero.org/support/dev/client_coding/libreoffice_plugin_wire_protocol?rev=1658324676&amp;do=diff</link>
        <description>LibreOffice Wire Protocol

The LibreOffice plugin uses a simple wire protocol to communicate with Zotero. (The Word for Mac and Word for Windows plugins both run in process, and use AppleEvents and COM respectively to communicate with the word processor.) The below documentation applies to Zotero 6.0 and newer.</description>
    </item>
    <item rdf:about="https://www.zotero.org/support/dev/client_coding/plugin_development?rev=1699951297&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-11-14T03:41:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dev:client_coding:plugin_development</title>
        <link>https://www.zotero.org/support/dev/client_coding/plugin_development?rev=1699951297&amp;do=diff</link>
        <description>Zotero Plugin Development

This page is a work in progress.

Introduction to Zotero Plugins

Zotero plugins run within the Zotero desktop app and interact with Zotero's internal JavaScript API and internal Firefox APIs.

If you plan to write a plugin, you can start by taking a look at the</description>
    </item>
</rdf:RDF>
