Coducate makes instructor-led live coding sessions more interactive, structured, and efficient. Whether you are teaching programming concepts, demonstrating coding techniques, or guiding participants through hands-on exercises, Coducate simplifies the process with powerful tools. It allows instructors to share their code in real-time, grant participants write access for interactive participation, and manage contributions with a built-in diff editor. Features like AI-powered code suggestions, terminal mirroring, interactive notes, and a customizable web view help create an engaging and structured learning environment. The web view separates the instructor's view from the participants' view, allowing instructors to maintain their preferred setup while participants access a distraction-free interface on any browser-accessible device. This also enables the use of in-editor notes and AI code suggestions without exposing them to participants.
Access all Coducate commands from the Coducate Control Panel in the Activity Bar sidebar, without needing the command palette. Commands are organized into groups:
- Session — Start, end, and manage sessions
- Access Control — Grant or revoke participant write access
- Terminal — Create a Coducate Terminal
- Web View — Toggle explorer, terminal, and room ID in the web view
- Appearance — Change font size and theme
- Notes — Create notes, remove notes, toggle suggestions
- Session Data — Export session, review changes
When no session is active, only Session commands are shown. All commands are also available via the command palette (Ctrl+Shift+P / Cmd+Shift+P).
Effortlessly begin or end your live coding sessions with Coducate.
- Command:
Coducate: Start Session- Starts a new session or joins an existing session. Allows the instructor to set a room name, password, and optionally add a task description and/or learning goals.
- Command:
Coducate: End Session- Ends the current live coding session.
Easily manage past and ongoing sessions.
- Command:
Coducate: Manage Sessions- View, rename, or delete previous sessions and retrieve room passwords.
Export your session as a distributable ZIP file.
- Command:
Coducate: Export Session- Exports the current session's workspace files and hidden notes (stored in a
.coducate.jsonfile) as a ZIP file. Files and directories matchingcoducate.exclusion.excludedFilePatternsorcoducate.exclusion.excludedDirectoriesare excluded from the export.
- Exports the current session's workspace files and hidden notes (stored in a
Control participant permissions to foster collaborative coding.
- Command:
Coducate: Grant Write Access- Grant editing permissions to specific participants or all participants.
- Command:
Coducate: Revoke Write Access- Revoke editing permissions from specific participants or all participants.
- Diff-Editor View: When participants make changes, a status bar item shows the number of files with unresolved changes. Click it to open a side-by-side diff editor comparing the current version (left) with the rollback version (right). The rollback version is the instructor's last saved or accepted version before any participant changes were detected.
- Accept Current Version: Keep the participants' changes and continue from there.
- Restore Rollback Version: Revert the file to the instructor's version before the participant changes, broadcasting the rollback to all participants in real-time.
Provide participants with a real-time view of the instructor's terminal activity.
Note: The terminal displayed in the web view is mirrored from the instructor's environment and is always read-only for participants. The instructor interacts with the actual terminal directly within VS Code.
- Command:
Coducate: Create Coducate Terminal - Creates a native integrated terminal in the instructor's VS Code environment. Input and output from this terminal are synchronized and displayed in the mirrored terminal across all web views.
- Uses your default terminal settings (shell, environment variables, working directory, etc.) configured in VS Code
- Supported shells:
- Linux/macOS: bash, fish, pwsh, zsh
- Windows: Git Bash, pwsh
Configuration:
- Use the
coducate.terminal.mirrorOnlyCoducateTerminalssetting to control whether all integrated terminals or only Coducate Terminals are mirrored to the web view.
Enhance your session with dynamic in-editor notes.
-
Command:
Coducate: Create Note- Replace selected lines of code with a named note, providing inline suggestions in multiple modes:
- type it manually
- reveal it word-by-word (
Ctrl+Right(Windows/Linux),Cmd+Right(Mac)) - line-by-line (
Ctrl+Shift+Right(Windows/Linux),Cmd+Shift+Right(Mac)) - display it all at once (
Tab).
- Replace selected lines of code with a named note, providing inline suggestions in multiple modes:
-
Command:
Coducate: Remove Notes- Delete notes from the current file, the entire workspace, or specific notes by clicking their Code Lens.
Use AI-driven inline suggestions based on your notes or merge them with other AI tools like GitHub Copilot.
- Command:
Coducate: Toggle Suggestions- Enables or disables inline code suggestions which are based on the notes. Suggestions from other AI tools remain visible.
- Keybinding:
Ctrl+Shift+U
Modify the web view appearance to create an optimal teaching environment, such as adjusting the font size to ensure readability. Customizations can also be made directly within the web view.
Note: This command affects all web views, including those of the instructor and participants.
-
Command:
Coducate: Open Terminal/Coducate: Close Terminal- Open or close the mirrored terminal in the web view.
Note: The following commmands only affect the instructor's web view.
-
Command:
Coducate: Open Explorer/Coducate: Close Explorer- Open or close the file explorer in the instructor's web view.
-
Command:
Coducate: Show Room ID/Coducate: Hide Room ID- Display the room ID on full screen in the instructor's web view.
-
Command:
Coducate: Change Font Size- Adjust the font size of the editor and the mirrored terminal in the instructor's web view.
-
Command:
Coducate: Change Theme- Switch between light and dark themes in the instructor's web view.
Set the task description and learning goals for your live coding session by selecting two Markdown files when starting a new session.
Coducate requires the following:
- VS Code Version: 1.95.0 or higher.
- Internet Connection
Coducate includes the following settings. These can be set in user or workspace settings.
The coducate.exclusion.excludedDirectories setting is used to exclude directories from syncing. By default, the following directories are excluded:
{
"coducate.exclusion.excludedDirectories": [
"node_modules",
".git",
"dist",
"build",
".vscode",
"coverage",
"out",
"tmp",
"logs",
".cache",
"__pycache__",
".DS_Store",
".idea",
".next",
".expo",
"venv",
"target"
]
}The coducate.exclusion.excludedFilePatterns setting is used to exclude files with specific file name patterns (suffixes) from syncing. By default, the following file patterns (suffixes) are excluded:
{
"coducate.exclusion.excludedFilePatterns": [
".coducate.json",
".DS_Store",
".env",
".env.local",
".env.development",
".env.production",
".env.test",
".env.example",
".ipynb"
]
}The coducate.terminal.mirrorOnlyCoducateTerminals setting controls which terminals are mirrored to the web view:
{
"coducate.terminal.mirrorOnlyCoducateTerminals": true
}- When set to
true(default): Only terminals created with theCoducate: Create Coducate Terminalcommand will be mirrored. - When set to
false: All integrated terminals will be mirrored to the web view.
Coducate includes the following default keybindings:
- Toggle Suggestions:
Ctrl+Shift+U - Accept Next Line Suggestion:
Ctrl+Shift+Right(Windows/Linux),Cmd+Shift+Right(Mac) when inline suggestions are visible.
-
ZSH Theme Compatibility: Some ZSH themes, particularly those with complex prompts like
powerlevel10k, may interfere with terminal output detection. This can result in missing or incorrectly displayed content in the mirrored terminal.If you experience issues with complex ZSH themes:
- Edit your
~/.zshrcfile - Find the line with
ZSH_THEME="powerlevel10k/powerlevel10k"(or similar) - Change to a simpler theme:
ZSH_THEME="robbyrussell" - Reload your configuration:
source ~/.zshrc
- Edit your