Skip to main content

Getting Started with Live Collaboration

The CodeTogether Live module, included with CodeTogether, allows you to host and join collaborative live coding sessions from Eclipse, IntelliJ or VS Code, as well as IDEs based on these. Guests can join a session from their own IDE with the CodeTogether Live module installed, even if it’s different from the host’s IDE. Guests can also join a session from a browser with no additional setup. This guide includes detailed information to help you get started.

Important Notes on Terminology and Client-Specific Instructions

Because CodeTogether supports multiple IDEs and browsers, the following details will help guide you through our documentation:

  • Client-specific instructions—Tabs are frequently used to outline the differences across different IDEs and browsers.
  • Select—The term "select" is used when executing actions from items in the CodeTogether view:
    • In Eclipse and IntelliJ, double-click to select.
    • In VS Code or a browser, click to select.
  • Views—The term "view" is used throughout this documentation (e.g., CodeTogether view):
    • In IntelliJ, this refers to a tool window.
  • Actions—To access available actions in the CodeTogether view, hover over an item to reveal buttons:
    • In Eclipse and IntelliJ, any action available as a button on an item in the CodeTogether view can also be accessed via the context menu.

The CodeTogether View

The CodeTogether view is your interface for managing and collaborating in CodeTogether sessions.

Eclipse IDE

The CodeTogether view in Eclipse is displayed in a simplified layout without the two-panel structure.

CodeTogether view shown in IntelliJ IDEA
CodeTogether view shown in IntelliJ IDEA

The method for opening the CodeTogether view depends on the client you are using.

  • Select View > Open View > CodeTogether.

Understanding the CodeTogether View

The CodeTogether view includes two main sections: the Session panel, which displays overall session information, and the Projects panel.

Session Panel

The Session panel, located at the top of the CodeTogether view, is your central hub for starting or managing a live collaboration session. Once in an active session, the panel provides an overview with the following information:

  • Virtual Cursors—CodeTogether allows coding alone, coding with others while sharing a virtual cursor, or presenting in a mode where only the host has a cursor. Each virtual cursor in the session is displayed along with options for changing the virtual cursors. See Working in a Live Collaboration Session for details.
  • Terminals—Hosts can share their terminals with guests. Guests can observe commands the host executes in the Terminal view and their output. The host controls access to terminals, with the option to grant write access. See Working in a Live Collaboration Session for details.
  • Shared Servers— Servers running on the host system are automatically detected and displayed. Hosts can choose to start or stop sharing servers at any time. See Working in a Live Collaboration Session for details.
  • Recently Modified—Lists the latest files updated in the current session. Select a file to open the file, or click the Open Modified File button.

Projects Panel

The Projects panel includes an overview of online project members and sessions they are currently running. To view this information, you must be logged in and have completed the setup of your projects using the full CodeTogether suite.

The panel provides the following information:

  • Connected—Displays your name in the current session. You can click the Go Offline button to disconnect from the CodeTogether server. You can also click the Open Settings button to manage your preferences for the CodeTogether Live module including the option to change your name.
  • Remote Sessions—Lists sessions currently hosted by project members. You can join any session without being explicitly invited to the session.
  • Your Projects—Lists projects connected to CodeTogether and online project members. From here you can invite project members to a session or ask them to host a session.

Logging In

To log in to CodeTogether, click the Log in button in the CodeTogether view.

Logging in from IntelliJ IDEA
Logging in from IntelliJ IDEA

Alternatively, use any of the following options to log in:

  • Use the CodeTogether: Log in command.

Hosting a Session

You can host a live collaboration session directly from your IDE. All sessions are end-to-end encrypted.

Starting a Session

In the CodeTogether view, click the Host Session button.

tip

To request an online project member to host a session, locate the project under Your Projects in the Projects panel. Hover over the project member's name and click the Ask to Host a Session button.

Alternatively, use any of the following IDE-specific options to start the session:

  • Use the CodeTogether: Start Hosting Session command.
  • Click CodeTogether in the status bar and select Start Hosting Session.

​Controlling Access to the Session

When you start a session, you can manage who joins, how they join, and set their permissions.

Starting a session in IntelliJ IDEA
Starting a session in IntelliJ IDEA

Approval

The default, Authorize via prompt, does not permit guests who are not project members to join a session unless the host explicitly authorizes access via a prompt that appears in the host’s IDE when the guest joins the session. Hosts can persist this approval to allow repeat guests to join without reauthorization. When signed in, project members never need authorization to join a session, other than a one-time authorization to enable end-to-end encryption between the host and the joining member.

Virtual Cursors

The host assigns how cursors behave in a session and assigns the default cursor behavior when a guest joins the session.

For more details on how these modes work, see Working in a Live Collaboration Session.

Cursor owner

Select one of the following options to define driving and editing privileges in the session.

  • Dynamic driver based on activity—CodeTogether assigns and manages the driver role based on participants' actions such as typing, selecting, navigating between files, IDE dialog use, etc. Non-driver participants can navigate to other files, analyze and edit code, and are eligible to become the driver. This is the default and recommended cursor mode.
  • Explicitly assigned driver (strong-style pairing)—The current driver must explicitly grant the driver role to another participant in the session. Non-driver participants can navigate to other files, analyze and edit code; however, they will not become the new driver unless the role is assigned to them by the current driver.
  • Only host has a cursor (presentation mode)—The host remains the sole driver throughout the session. While guests can navigate between files and review code, they cannot make edits.

When joining

Select the default cursor behavior for guests when they join a session. Guests can always change their cursor behavior after joining the session.

note

This option is unavailable in presentation mode.

  • Guests decide cursor behavior—Guests choose whether to begin with a shared cursor, or work independently with their own cursor.
  • Guests follow your cursor—Guests begin with a shared cursor, following the host.
  • Guests have their own cursor—Guests begin working independently with their own cursor.

Editing

Choose who can edit files. Selecting 'Everyone' allows both project members, and guests who join via a URL, to make edits.

Run/Unit Test

By default, both project members and guests who join via a URL, can run remote launches and unit tests, however, you have the option to limit access to this feature.

Limit Access

Select the Restrict session to project members checkbox to prevent guests who are not members of the project from joining the session entirely. This option is only available in the cloud-based (SaaS) version when using the full suite.

note

Persisted authorizations can be reset via your Codetogether Preferences .

Stopping a Session

In the CodeTogether view under Hosting, select Stop sharing or use the Stop Sharing button.

Alternatively, use any of the following IDE-specific options:

  • Use the CodeTogether: Stop Sharing command.
  • Click In Session in the status bar and select Stop Session.

Inviting Users to a Session

You can directly invite project members to a session; or copy the session URL to your clipboard and then share the URL with anyone you would like to invite to the session, including guests that are not project members.

To directly invite a project member:

  • Click the Invite to Session button next to the project member’s name in the Projects panel of the CodeTogether view.

To copy the session URL to your clipboard:

  • When you start a session, the Invite URL is automatically copied to the clipboard.
  • Select Invite others under Hosting in the CodeTogether view, or use the Copy Invite URL button.
  • Use the CodeTogether: Copy Invite URL command.
  • Click In Session in the status bar and select Copy Session URL to Clipboard.
note

Guests can also invite users to a session using similar techniques.

Hiding Files and Folders

To exclude files, folders or projects from the CodeTogether session, right-click on the resource and select Add to CodeTogether Ignore. The resource is added to a .codetogether.ignore file in the root of the corresponding project. Note that this action cannot be used in a running session.

For additional flexibility, you can also create the .codetogether.ignore file manually in the root of the project, and use Glob patterns to match resources to exclude from the session. To undo an exclusion, remove the corresponding line from the file. If the session is active when changes are made, you must restart the session for them to take effect.

Session Timeout

Sessions automatically timeout:

  • When no guest joins for 90 minutes
  • 45 minutes after the last guest leaves
  • After 90 minutes of inactivity

Joining a Session

You can join a session from a supported IDE or browser. Whichever method you choose, you lose access to all shared projects when you leave the session or the session ends.

note

To join from an IDE, the CodeTogether Live module must be installed in your IDE. See CodeTogether IDE Setup for details.

Joining from an IDE

You can join a session in your IDE either directly or via the session URL.

Direct Joining

The quickest way to join a session is to select an active session session under Remote Sessions in the Projects panel of the CodeTogether view. This option is only available when using the full CodeTogether suite.

note

Project members have the ability to directly invite you to a session. If you receive an invitation in your IDE, accept the invitation to immediately join the session.

Joining Via URL

Click the Join Session button in the CodeTogether view to join a session via URL. Use the URL that was shared with you and enter the name that others will use to identify you in the session.

Join by URL

Alternatively, use any of the following IDE-specific options to join a session:

  • Use the CodeTogether: Join Remote Session command.
  • Click CodeTogether in the status bar and select Join Remote Session.

Cursor Behavior

When you join a session, if the host has allowed guests to choose their initial cursor behavior, the Joining Session dialog will allow you to decide between sharing a cursor with other guests, or having an independent cursor when you first join the session. You can choose to persist this setting, and automatically join the session as soon as your client is ready—the setting can be reset in your IDE’s CodeTogether settings/preferences. After joining the session, you can change your virtual cursor mode.

Cursor Selection

The resulting workspace is slightly different based on which IDE you use to join the session:

  • Eclipse—A new CodeTogether project is created in your existing workspace. All projects shared in the session appear under this new project.
  • IntelliJ—You can choose to join the session from the current window or from a new window. Whatever you choose, the projects shared will appear as top level nodes within the Project view.
  • VS Code—A new window is automatically opened with a CodeTogether workspace. The projects shared appear as top level nodes under this workspace.

Joining from a Browser

Open the Invite URL in a browser to join the session. Guests still get a full-fledged IDE experience.

note

If the session is restricted only to project members, logging in is mandatory.

Customizing the IDE Experience

When you open the Invite URL the first time, you are prompted to customize your IDE experience. You can change these settings every time you join a session; or, from within a session, select File > Settings > CodeTogether: Change IDE Experience.

  • Preferred IDE Theme—Select the Light or Dark theme for your preferred IDE.
  • Preferred Cursor Mode—Select Shared Cursor to follow the host when joining or Personal Cursor to code with your own cursor. Note that you only have this option if the host chose to allow guests to decide their own cursor behavior when starting the session.
  • Key Bindings—Select your preferred IDE to use key bindings you are familiar with for a smooth coding experience.

Specifying Your Name and Joining

After opening the Invite URL in the browser (and customizing the IDE on the initial session), you are prompted for the name to use in the session. Type your name and click Join Now. To change your name during a session, click your name in the status bar or the CodeTogether view and type a new name—the name can be changed at any time, and is persisted across sessions.

Workbench Layout

Use the following options to adjust the layout to your liking:

  • Double-click on an editor tab to have it take up the entire browser window, and maximize your coding real estate.
  • Press Alt+Shift+C to collapse all side panels.
  • Select the View menu to access additional options to customize the workbench.

Logging Out

To log out of CodeTogether:

  • Use the Log out button in the CodeTogether view.
  • Use the CodeTogether: Log out command.

Signing Out of Projects

If you added projects to CodeTogether, instead of logging out, you can sign out of your projects. When you sign out of projects, you will no longer be visible to other project members who are currently online. Sessions you start will not be shown under Remote Sessions, but you can join sessions while remaining offline by joining via the invite URL.

To sign out of a project, use the Go Offline action from the Connected item in the Projects panel of the CodeTogether view.

Once signed out of projects, you can use the Reconnect Now link to easily sign back in to the project.