Skip to content
| Marketplace
Sign in
Visual Studio Code>Education>VCR (VS Code Recorder)New to Visual Studio Code? Get it now.
VCR (VS Code Recorder)

VCR (VS Code Recorder)

Impleta

|
14 installs
| (0) | Free
Course management and course-scoped editor recording.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

VCR (VS Code Recorder)

VCR records your work in VS Code within designated folders, so you or your instructor can review how your code developed over time.

Instructors: see the recording setup guide to prepare a Git repository or non-Git folder and collect recordings.

What gets recorded

While VCR is enabled, it records activity in configured folders and enrolled courses, including:

  • Files you open, edits you make (including unsaved changes), saves, and closes.
  • File and folder additions, deletions, moves, and renames.
  • Terminal commands and output when supported by VS Code, along with build and Run/Debug activity.

Your course or folder setup determines which folders are recorded. Configured folders include their subfolders. Enrolled courses also record other activity within the course folder. Opening an already configured course can start recording automatically.

VCR does not record your screen or activity while VS Code is closed. Terminal recording depends on VS Code support and may not include every command or output. To stop recording, disable VCR in the Extensions view and reload if prompted.

The recording status follows the current focused editor when a window is restored, independently of pending recording commits. Focus changes alone do not write journal events; qualifying background edits continue to be captured.

Get started

Install VCR (VS Code Recorder) by impleta from the Visual Studio Marketplace, or search for impleta.vcr in VS Code's Extensions view and select Install.

Select the VCR icon in the Activity Bar to open Student Recorder. If your instructor gave you a course repository URL, paste it into the panel to add the course, then select Open and work as usual.

Use Validate setup on the course card to check your setup. If recording has not yet been verified, open and edit a course text file, then check again.

Troubleshoot Git operations

Open View → Output → VCR Git history for live command diagnostics. Run VCR: Open Git History from the Command Palette to open the current or a previous session's JSON Lines log. The Output channel displays the current log's absolute path; you can also read that file in a terminal with Get-Content (PowerShell) or cat (macOS/Linux).

History includes VCR's course and background recording Git commands, paired start/finish IDs, timestamps, arguments, duration, exit code or launch error code, termination signal, and up to 8,192 characters of redacted standard error. Very large argument lists are capped at 256 arguments of 1,024 characters each and marked as truncated. A start without a finish can indicate an interrupted operation. Some nonzero exits are normal probes for missing refs or configuration, rather than user-facing failures. Standard output and environment variables are omitted. URL credentials and queries, common authentication headers/tokens, Git configuration values, and checkpoint descriptions are redacted. Paths and repository names remain visible; review logs before sharing because Git or hooks can emit other sensitive text.

Logs live in VCR's extension storage outside course folders and survive restarts. Each window/session has a separate file capped at 2 MiB plus one rotated backup. At startup VCR keeps the ten newest inactive sessions and logs from running processes; older inactive logs are removed. Logging failures are reported in Output and do not interrupt Git or recording. This history covers commands run after installing this version, not earlier failures or commands run outside VCR. VCR recording commits remains available for automatic commit failure messages.

Background recording commits defer to the next scheduled pass while another VCR operation owns the recording worktree. Normal contention does not display a commit-pending warning. Actual commit failures remain visible until a successful retry; captures remain on disk. Foreground recording setup and explicit commits can wait up to two minutes for the owner without taking over a live lock.

Keep your course up to date

Select Sync instructor updates to get course changes. VCR preserves your changes and shows any files that need your attention.

Change code folder chooses where future courses are saved. If you moved a course folder, use Locate folder to reconnect it. Removing a course from the panel keeps your files and recordings on disk.

Share your work

Follow your instructor's submission instructions:

  • VCR: Create Recorded Folder ZIP in the Command Palette (or the Explorer folder context menu) packages saved files and recordings for manual upload. Save your files first to include your latest code in the ZIP. Capture-folder lists and ZIP buttons are currently hidden from the VCR panel.
  • Push submission sends committed code and recordings to your own connected Git repository. Save and commit your code first.

Recordings stay local until you choose to share them; VCR does not automatically upload submissions. To review recordings, use the separate Replay extension.

Git is required for Git-based courses. Install any language tools or VS Code language extensions your course requires separately.

Configure recording in a folder

Create vcr-course.json in the folder you open in VS Code:

{
  "vcr-recording": {
    "version": 1,
    "trackedFolders": ["exercises/*", "projects/final"]
  }
}

This works in Git repositories and ordinary folders. Paths are relative to this file; selected folders include their descendants. Files outside listed folders record at the directory containing vcr-course.json. Missing or empty recording settings also record at that root. The deepest matching listed folder wins. Recording-only setup does not need remoteUrl or enrollment metadata. Git repositories store recordings in the recording worktree; ordinary folders use each selected folder's .vcr directory. Root captures use vcr-sessions/ in the Git recording worktree, or .vcr/vcr-sessions/ at the config root for ordinary folders. Root and listed folders support ZIP export. Git storage failures never switch to local storage.

For enrolled courses, add this object to the existing course manifest. Keep remoteUrl for enrollment and instructor sync. Existing vcr-recording.json files remain supported when the object is absent. With vcr-course.json, files outside legacy scopes still record at the root. A legacy-only setup without vcr-course.json continues to record only its listed folders. To migrate, copy their contents into the vcr-recording object; existing recordings stay where they are.

VCR discovers configuration even when files.exclude or search.exclude hides it. Configurations inside .git, .vcr, and node_modules remain excluded.

Recording from a valid vcr-course.json configuration does not require course enrollment or an upstream remote, even when the manifest contains remoteUrl. Embedded settings and the supported legacy vcr-recording.json select the recorded folders. Instructor remote checks still apply to enrollment and course sync. Recording keeps the manifest course ID even without enrollment, so existing course captures remain usable. Configurations without an ID use the standalone recording identity.

Student information

If your instructor adds "studentInfo": { "file": "./student.json", "properties": ["name", "email"] } to vcr-course.json, VCR asks for missing details and saves them in that JSON file inside the course. Instructors can request other property names too. Existing values and other fields are preserved; missing, null, and blank values are prompted. No details are requested without this configuration. Answers stay per course, not in VS Code settings, and follow normal Git, recording, and export behavior.

Cancel to finish later; already saved answers remain. Run VCR: Complete Student Information to retry, or reopen the window. Edit the file to change answers. Save unsaved edits and repair malformed JSON before retrying. Configured files must use safe relative JSON paths with existing parent folders and no symbolic links.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft