Jenkins Remoting
| This site is the new docs site currently being tested. For the actual docs in use please go to https://www.jenkins.io/doc. | 
Jenkins Remoting is a library, and executable Java archive, which implements the communication layer in Jenkins. This includes the TCP-based communication protocols, remote procedure calls, class loading, data streaming, etc. Currently Remoting is primarily used in communications between the Jenkins controller and Jenkins agents.
The Remoting sub-project includes the Remoting library itself, package for agents, and a number of Remoting-specific plugins and core modules.
Remoting Usage in Jenkins
- 
Agent executables ( remoting.jaris a namedagent.jarorslave.jarin Jenkins)
- 
Controller to Agent communication protocols being used in various Agent types, including Java Web Start (aka JNLP) and SSH agents 
- 
Jenkins CLI, Remoting mode is deprecated since 2.54 (announcement) 
- 
Communication with Maven instance in the Maven Integration plugin. 
Project Components
Remoting Library
Remoting Library is the main component of the the sub-project. The code base is located in a separate repository, which also contains Remoting developer and user documentation. This library also has an independent release cycle and LTS release lines.
Links:
- 
Troubleshooting (under construction) 
===
Although Remoting library is a standalone component, Jenkins core includes some extensions and modules for working with Remoting. Core extensions also allow implementing custom protocols on-demand (e.g. for Jenkins CLI). There is ongoing activity on detaching these core components to Jenkins plugins (see https://issues.jenkins.io/browse/JENKINS-44099), but in the meantime upgrading of Jenkins core may be required to fix Remoting issues.
Jenkins core extensions:
- 
Agent Protocol - Protocol Implementations 
- 
JNLP Agent Receiver - Receives Incoming connections 
Modules:
- 
Agent Installer Module - Generic API for Remoting Agent installations 
- 
Windows Agent Installer Module - Provides logic for installing Jenkins agents as Windows services, powered by WinSW project 
- 
etc. 
Packaging
There are several packages which bundle the Remoting library and allow connecting Jenkins agents via one of remoting protocols.
- 
Docker Agent: Base image, which bundles Remoting 
- 
Docker Inbound Agent: Image, which can be used to connect agents using TCP (JNLP protocols) or WebSockets 
- 
Jenkins CLI executable (Requires Remoting CLI to be enabled on the Jenkins controller) 
- 
Swarm Agent Connector executable in Swarm Plugin