How Kite works
How data flows
In a simplified view of the Kite system, there are a number of important components. All of these components function locally on your own computer. We'll describe briefly the roles each component plays.
You'll primarily access Kite's services through your editor. In some cases, Kite will send data back to your editor automatically while in other cases, you may need to request information from Kite explicitly.
The plugin is a piece of software which integrates directly with your editor. Kite ships with plugins for all the supported editors, though theoretically, anyone could write a plugin for any editor. The main responsibility of the plugin is to send and receive data from the Kite Engine as you interact with the editor. When sending data, the plugin uses the Kite API and when receiving data, the plugin uses the editor's API (to render responses, for example).
The Kite Engine consists of an HTTP server listening at
localhost:46624 and multiple components that provide the core functionality of the product. The HTTP server exposes a REST API for the plugin to interact with and forwards requests to the other components, which perform services such as code indexing, code analysis, and running machine learning models.