Eclipse Che is the only open source cloud IDE with RESTful workspaces and Docker-based machines. It's as powerful as it sounds. Take a deeper look.

Quick Links

Workspaces with Runtimes

Workspaces are composed of projects (files) and environments (runtimes). Workspace configuration is persisted as versionable assets used to create portable replicas. Migrate workspace projects and runtimes to other Che instances, whether localhost or in the cloud. Receiving systems use the configuration to create an identical workspace state matching the source system. Che manages your workspace lifecycle, both orchestrating project state and booting / suspending / imaging / stopping / destroying workspace runtime environments.

Back to Top

Docker Machines

An environment is composed of machines powered by Docker or localhost. A machine is a runtime whose stack is instantiated by a recipe. Docker is a powerful and convenient implementation of machines providing near-instant activation, copy-on-write file system, and Dockerfile recipes for constructing custom stacks. Launch from our provided images, DockerHub, private registries, or through your own Dockerfiles. Your projects are mounted into the workspace. If using a remote workspace server projects are rsync'd with long term project storage.

Back to Top

Workspace Agents

Every workspace has one special environment called the "workspace machine" that is started when the workspace is opened, and suspended when the workspace is closed. Workspace machines provide developer services to the workspace including intellisense, machine monitoring, SSH access, and remote debugging. Che installs "workspace agents" into your machines to provide these services to your browser and the Che server. Workspace agents are injected based upon the types of projects launched by users and can be provided by plug-in authors.

Back to Top

Workspace Snapshots

Save your workspace runtime state with a snapshot. While projects are persisted on disk, workspace environment state is machine internal. For example, a maven project stores a repository of downloads that are not part of the project, but part of the workspace. Snapshots let users capture, save, and re-constitute this state. Make snapshots for workspace machines, which are stored as Docker images in a configured registry. Reopening the workspace instantiates a new workspace machine from the snapshot with the projects then mounted. This leads to superior long term performance as snapshot re-activation is immediate.

Back to Top

Collaborative Workspaces

Host Eclipse Che as a workspace server, providing shared access to programming services to workspaces and teams. Workspace environments are given a hostname and accessible by remote clients.

Host numerous workspaces concurrently, bounded by your system's disk and memory. Workspaces are isolated; users creating multiple workspaces will not have runtime conflicts with others. Workspaces can be shared amongst users by concurrent access to projects and environments. Che currently uses a last-write-wins policy during simultaneous file access, and will add multi-cursor visuals soon.

Back to Top

RESTful Workspaces

All Che services are reachable through RESTful APIs. Che exposes APIs for managing the workspace master, and also provides RESTful access to each individual workplace through the workspace agent. The Che workspace master provides workspace orchestration and user management. In each workspace agent is a micro Che server that exposes project-specific APIs. For example, Che has RESTful JDT wrappers to enable 100+ forms of distributed Java intellisense. This Java-specific API is injected as a workspace agent by Che. Programming the API is simple - get started by browsing our APIs with Swagger.

Back to Top

SSH / Terminal

Che injects an SSH daemon into workspace machines. Connect your existing IDE - Eclipse if you like - with an SSH sync point. Upload your key pair or have Che generate a new pair for each workspace. You can also access your workspace with Che's browser terminal, giving you root access to workspace machines.

Back to Top

Cloud IDE

A no-installation browser IDE and IOE accessible from any local or remote device. Thin, fast, and beautiful - it's the IDE our own engineers wanted. The IDE is packaged as cross-browser JavaScript and CSS, hosted as resources cached by browsers. Work on multiple workspaces in different browser tabs with each tab consuming ~100MB of RAM. It's a smoother interactive experience that doesn't suffer blockages from thrashing when the workspace is remote.

The tools you expect are there: embedded Orion editor, numerous key bindings, globalized keyboard support, and git / subversion tools including diff.

Back to Top

Integrated Ops Environment

The Che provides dual perspectives: developer and operations. The operations perspective provides a topological view of environments with utilities to define, monitor, and marry machines to code. The operations perspective enables a world where workspace environments match production topologies, letting users import base images from registries while pushing tagged images with project code back to a registry.

This is in development now, with input from our community.

Back to Top


Workspaces can launch multiple machines - useful for having separate runtimes for testing projects. Users provide the machine recipes and control their lifecycles. Multi-machine workspaces move us closer to development-production parity, where a developer can locally debug a topology of containers or microservices identical to what is running in production.

Back to Top


Che is a true IDE platform, recognizing projects are bound to a repository and given a type. Project types bestow special behaviors, such as when Che injects the RESTful JDT core into workspace machines when Java projects are added. Workspaces can have multiple projects, each with their own type. Projects can be independently built and run, even though all projects share a common workspace machine. Currently, Che has limited project types for JavaScript, Maven, and ‘blank’. We'll collaborate with the ecosystem to package new types for frameworks, packaging systems and programming languages.

Back to Top


A command is a process that is injected into a machine. Commands are provided by users, workspaces, or projects. Commands have a type, like projects, which imbue additional behaviors. For example, the maven command type has inherent knowledge of how maven lifecycle phases operate. When executed, a command is translated into a process and injected into a machine, where it can operate against projects or other resources within the machine itself. Commands are context sensitive, allowing a user to execute commands across projects and modules, getting context-specific outcomes.

Back to Top


Create custom previews that launch files and web pages with the context of your projects and workspaces. Embed preview intelligence inside of commands and workspaces so that logic on how to launch and debug your project travels wherever your workspace goes.

Back to Top

Java Intellisense

Over 100 forms of Java content assist that are so responsive that you will do a double take. Features include modules (sub-folders that can be independently built and run), multi-module structures, dozens of intellisense, multiple forms of refactoring, an embedded debugger, JavaDoc, jump to definition, and class structure navigation.

Back to Top

JavaScript Intellisense

The Orion editor provides dozens of assistants for interpreted languages including JavaScript (and even some hidden templating for Go)! Autocomplete, error marking, recommendations, documentation, and jump to definitions are exposed and ready to go.

Back to Top

Light Theme

Che, like Yoda, wants to bring balance to the force. Flip a switch and transform the IDE with a dark or light theme.

Back to Top

Plug-In Framework

Che is extensible, by customizing built-in plug-ins or authoring your own extensions. Package plug-ins with Che core to create new assemblies installable by your user base. You can write IDE, Che server, or workspace agent plug-ins, with Che injecting the plug-in into the right location at the right time.

Back to Top

Open Source to the Core

Eclipse Che has been developed over 4 years with contributions from Codenvy, eXo Platform, IBM, SAP, Microsoft, Intuit, WSO2, Serli, RedHat, and open source individuals from China, Brazil, France, Ukraine, Russia, Canada, India, Sri Lanka, and the United States. It is part of the Eclipse Cloud Development top-level project, and ecosystem contributions are open and encouraged.

Please participate, even if only spiritually. There are many ways to get involved including starring the GitHub repo, submitting issues, writing docs, or contributing plug-ins.

Back to Top

Dogfooded With Love

We built the product that we would love to use everyday. To do that you must build what you eat and eat what you built. Love -- and sometimes frustration -- has poured into Che as our engineers weaned off their favorite IDEs to build Che with Che.

Back to Top

Was this page helpful? Share it on Twitter