Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>TimeMachineNew to Visual Studio Code? Get it now.
TimeMachine

TimeMachine

Preview

Tushar Anand

|
1 install
| (0) | Free
A local project timeline of file saves, terminal commands, server starts, and test failures.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

TimeMachine

TimeMachine shows what happened while you worked in a project: opened folders, saved files, integrated terminal commands, command results, and common development server readiness messages. When a command fails, it highlights files saved in that project since the previous passing run of the same command.

TimeMachine keeps its history in VS Code's local workspace storage. It does not create Git commits or upload your source code.

Requires VS Code 1.93 or newer because command tracking uses the stable terminal shell integration API.

What you can do

  • See every open project folder at the top of the Project Timeline, with activity grouped by day.
  • Expand Project Folders to browse every directory in each open project, including nested directories.
  • See each command's project directory and running, passed, or failed status. Commands from other project folders stay in their own timeline.
  • Open a saved version or compare its before and after snapshots.
  • Restore the version before a save into an unsaved editor buffer, then review and save it.
  • Expand a failed command to see changes made since its last passing run. This is a time-based clue, not proof of the cause.
  • Run TimeMachine: Check Setup if the timeline is empty or terminal commands do not appear.

Try it

  1. Open a project with File → Open Folder in VS Code and click the TimeMachine clock in the Activity Bar. The Project Timeline shows the folder name and a Project opened event. Expand Project Folders to inspect its directories.
  2. Save a text file in that project. A save appears with added and removed line counts. Right-click it for Compare Change and Restore Before Change.
  3. Open a new integrated terminal in the same VS Code window, with its working directory inside the project, and run a command. A completed command appears as passed, failed, or unknown. A long-running npm run dev command appears as running; common server-ready output adds a readiness event.

For a repeatable failure example, create check.js with process.exitCode = 0;, save it, and run node check.js. Change it to process.exitCode = 1;, save, and run node check.js again. Expand the failed run to see the intervening save.

If commands do not appear

Run TimeMachine: Check Setup from the Command Palette. It opens the TimeMachine output channel and reports the open project, event count, and shell integration status for each terminal.

TimeMachine receives command events only from terminals with VS Code shell integration. It records commands whose working directory is inside an open project folder. If the shell cannot report its working directory and exactly one project is open, TimeMachine marks the folder as assumed. It cannot see commands run in macOS Terminal, iTerm, or terminals in another VS Code window. If shell integration is off, enable terminal.integrated.shellIntegration.enabled in VS Code settings and open a new integrated terminal. On macOS, zsh and bash are supported. Some custom shell configurations prevent automatic integration.

Limits and privacy

  • TimeMachine keeps up to 500 events in local workspace storage. Text snapshots are stored only for files up to 512 KiB.
  • Terminal output is inspected only to recognize a few server-ready messages; it is not stored. Command lines and exit codes are stored locally.
  • Only saved text files are tracked. Unsaved edits and commands in external terminals are not captured. The folder browser lists directories on demand and does not store their contents.
  • Restore changes the open editor buffer; it does not save automatically.

Development

Use Node.js 22 or newer for the test and packaging tools.

npm install
npm run compile
npm test
npm run vsix

Test in VS Code on macOS

  1. Open this extension repository in VS Code. Run npm install once, then npm run compile.
  2. Choose Run → Run Without Debugging from the macOS menu bar. This opens an Extension Development Host with the repository as its project. Use the menu instead of F5 if macOS assigns F5 to Dictation. Start Debugging also works when a debugger attaches successfully.
  3. In the new window, click the TimeMachine icon. You should see Project opened. If you see There is no data provider registered, close that development window and choose Run → Run Without Debugging again; that message means the extension host has not started. Check View → Output → Log (Extension Host) if it persists.
  4. Save a text file in the open project, then open a new integrated terminal in that same window and run node -e "process.exit(0)" and node -e "process.exit(1)". The save and both commands should appear in the timeline. Run TimeMachine: Check Setup from the Command Palette to inspect the workspace and terminal shell integration.

To test a different project without a debugger, run npm run vsix in this repository. In your regular VS Code window, use Extensions → … → Install from VSIX, select timemachine-1.2.0.vsix from this repository, and reload when prompted. Open the other project with File → Open Folder in that same window, then start a new integrated terminal and run its commands. Commands started before TimeMachine activates cannot be recovered.

See PUBLISHING.md for Marketplace setup and release steps. For problems or feature requests, see SUPPORT.md.

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