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.
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.
The CodeTogether view in Eclipse is displayed in a simplified layout without the two-panel structure.
CodeTogether view shown in IntelliJ IDEA
The method for opening the CodeTogether view depends on the client you are using.
- VS Code
- IntelliJ
- Eclipse
- Browser
- Select View > Open View > CodeTogether.
- Select View > Tool Windows > CodeTogether.
- Select Window > Show View > Others > CodeTogether > CodeTogether.
- The CodeTogether view defaults to the right sidebar in the browser. You can click the CodeTogether icon to quickly show/hide the view.
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
Alternatively, use any of the following options to log in:
- VS Code
- IntelliJ
- Eclipse
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.
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:
- VS Code
- IntelliJ
- Eclipse
- Use the CodeTogether: Start Hosting Session command.
- Click CodeTogether in the status bar and select Start Hosting Session.
- Select Help > CodeTogether: Start Hosting Session.
- Use the CodeTogether: Host Session action.
- Select Help > CodeTogether > Start Hosting Session.
- Use the Start Hosting Session command.
- Right-click in the editor and select Start Hosting Session from the menu.
- Select text in the editor, and then click Start from the annotation that appears below the selection.
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
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.
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.
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:
- VS Code
- IntelliJ
- Eclipse
- Use the CodeTogether: Stop Sharing command.
- Click In Session in the status bar and select Stop Session.
- Select Help > CodeTogether > Stop Session.
- Use the CodeTogether: Stop Session action.
Use the Stop Session command.
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.
- VS Code
- IntelliJ
- Eclipse
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.
To directly invite a project member:
- Select Invite others under Hosting in the CodeTogether view or use the Invite Team Members button, and then select the project member.
- Click the Invite to Session button next to the project member’s name in the Projects panel of the CodeTogether view.
- Use the Invite action, and then select the project member.
- Select Help > CodeTogether > Invite, and then select the project member.
To copy the session URL to your clipboard:
- Select Invite others under Hosting in the CodeTogether view, and then click Copy.
- From Invite others under Hosting in the CodeTogether view, use the Invite Team Members button.
- Use the Invite action and click Copy.
- Select Help > CodeTogether> Invite, and then click Copy.
- Click the copy invite URL link at the bottom of an open editor (visible only when there are no guests).
To directly invite a project member:
- Select Invite others under Hosting in the CodeTogether view, or use the Invite Team Members button, and then select the project member.
To copy the session URL to your clipboard:
- Select Invite others under Hosting in the CodeTogether view, and then click Copy.
- From Invite others under Hosting in the CodeTogether view, use the Copy Invite URL button.
- Click the copy invite URL link at the bottom of an open editor (visible only when there are no guests).
- If you start a session from selected text, click Invite URL from the annotation that appears below the selection.
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.
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.
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.
Alternatively, use any of the following IDE-specific options to join a session:
- VS Code
- IntelliJ
- Eclipse
- Use the CodeTogether: Join Remote Session command.
- Click CodeTogether in the status bar and select Join Remote Session.
- Select Tools > CodeTogether: Join Remote Session.
- Use the CodeTogether: Join Remote Session action.
- Select Help > CodeTogether > Join Remote Session.
- Use the Join Remote Session command.
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.
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.
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:
- VS Code
- IntelliJ
- Eclipse
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.