Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>WorkstashNew to Visual Studio Code? Get it now.
Workstash

Workstash

simplifai

|
16 installs
| (1) | Free
Productivity toolkit for VS Code: Git shelves (stash), local file history, checkpoints, git-free baseline tracking, status-bar shortcuts, terminal capture, and Copilot chat export — one lightweight extension.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Workstash

The everyday workflow glue for VS Code — Git shelves, local file history, checkpoints, status‑bar shortcuts, and Copilot chat export, all in one lightweight extension.

License: MIT

Workstash bundles the small utilities you reach for every day into one extension. Instead of installing and trusting several single‑purpose add‑ons, you get shelves, local history, checkpoints, shortcuts, terminal capture, and chat export — unified under a single activity‑bar view, a single workstash.* command namespace, and a single settings section.

  • All‑in‑one — six utilities, one install, one place to configure.
  • Lightweight — bundled with esbuild; zero runtime dependencies.
  • Local‑first & private — data lives under a single .workstash/ folder in your workspace and never leaves your machine.
  • AI‑ready — ships language‑model tools you can call straight from Copilot Chat.

Features

Git Shelves

Set work aside without committing — like IntelliJ's Shelve Changes, built into VS Code.

  • Shelve Changes… — pick exactly which changed files to set aside, then name the shelf.
  • Quick Shelve All — snapshot every change in one click with an auto‑generated name.
  • Shelve & Revert — shelve and roll the working tree back to HEAD in one step.
  • Non‑destructive by default — shelving copies your files and leaves the working tree untouched.
  • Unshelve a whole shelf or a single file; compare a shelved file against its current version or compare two selected shelved files against each other (even across shelves); and rename, delete a file, delete, or delete all.
  • Working Changes list at the top of the Shelves view mirrors git status; multi‑select rows or right‑click files in the built‑in Source Control view to shelve them.
  • Where it lives: the Shelves view sits in the Source Control view by default, next to your Git changes; set workstash.shelves.location to workstash to move it into a dedicated Workstash activity‑bar view.

Shelves capture full file contents (not diffs), so restoring a single file or an entire set is always reliable.

Baseline — git‑free change tracking

Track work‑in‑progress without Git, in any folder.

  • Set Baseline pins a full snapshot of your workspace; Workstash then shows Changed since baseline (Modified / Added / Deleted) in a Baseline section of the Source Control view, updated live as you save.
  • Click a change to diff it against the baseline; Revert File or Revert All to roll back to the snapshot.
  • Shelve Baseline Changes feeds the changed set into a normal shelf (tagged as baseline in the Shelves list), so shelving works without Git too.
  • Update or Clear Baseline from the view title.
  • Respects .gitignore (or a built‑in default ignore list) plus workstash.baseline.exclude; Workstash's own storage is always skipped.

Git and Baseline coexist: in a Git repository the Git‑based Shelves + Working Changes stay the default; Baseline is there when you want a git‑free snapshot or aren't in a repository at all.

Local History

Automatic, per‑file version history — never lose an edit again.

  • Saves a timestamped revision every time you save a file.
  • Browse revisions in a tree, in the Explorer or in its own activity‑bar view (your choice).
  • Filter to the active file — the tree follows the file you're editing and shows just its revisions; with no file open it lists every file's history. Toggle from the view title.
  • Click a revision to diff it against the current file (opens in a reused preview tab). Right‑click for Open Revision (the raw snapshot), or compare against the active or previous version.
  • Restore or delete any revision, or clear a file's whole history.
  • Tunable retention by age and count, with glob excludes and a configurable storage path.

Checkpoints

Pin the revisions that matter.

  • Checkpoint Current File… or Label / Pin as Checkpoint to give a local‑history revision a name.
  • Pinned checkpoints are excluded from retention, so they survive automatic cleanup until you remove the label.

Status‑Bar Shortcuts

Turn any command into a one‑click button.

  • Configurable status‑bar buttons — each runs a command, with an optional icon, tooltip, label, and arguments.
  • Run Shortcut Quick Pick to fire any configured action from the keyboard.
  • Choose the side (left/right) and priority of the buttons.
  • Includes a handy Toggle Word Wrap editor‑title button.

Export Copilot Chat to Markdown

Keep a durable, searchable record of your AI sessions.

  • Export Chat to Markdown — save the latest Copilot chat for the workspace as a Markdown transcript.
  • Export All Chats to Markdown — bulk‑export every session in the workspace.
  • Transcripts include YAML frontmatter (title, date, workspace, session id, turn count, model) and preserve user, assistant, and tool/terminal turns at full fidelity.

Terminal Capture

Persist what your terminal shows to a clean, durable transcript file — something VS Code's built‑in terminal menu (clipboard‑only) doesn't do.

  • Save Terminal Transcript — write the active terminal's output to an ANSI‑stripped .txt file under .workstash/transcripts/.
  • Auto‑save on close (optional, off by default) — save a terminal's transcript automatically when you close it, using terminal shell integration.
  • Available from the terminal right‑click menu and the Command Palette.

Copilot Agent Tools

Workstash contributes language‑model tools you can reference right inside Copilot Chat:

Tool Reference What it does
Shelve All Changes #shelveAll Save a snapshot of all current changes as a named shelf — Git changes, or (without Git) everything changed since the Baseline.
Export Chat to Markdown #exportChat Export the latest Copilot chat to a Markdown transcript.
Capture Terminal Output #captureTerminal Capture the active terminal's output as plain text for the agent to read.

Commands

All commands are available from the Command Palette under the Workstash category.

Command Description
Workstash: Shelve Changes… Select changes and save them as a named shelf.
Workstash: Quick Shelve All Shelve every change with an auto‑generated name.
Workstash: Shelve Changes & Revert… Shelve, then revert the working tree to HEAD.
Workstash: Unshelve Restore a shelf into the working tree.
Workstash: Set Baseline Snapshot the workspace as the diff base for git‑free change tracking.
Workstash: Update Baseline Replace the baseline with a fresh snapshot.
Workstash: Clear Baseline Remove the active baseline.
Workstash: Shelve Baseline Changes… Shelve everything changed since the baseline.
Workstash: Revert All to Baseline Restore every changed file to the baseline snapshot.
Workstash: Show Local History for Active File Open the current file's revision history.
Workstash: Filter to Active File Filter the Local History tree to the active file's revisions.
Workstash: Show All Local History Show every file's history in the Local History tree (clears the filter).
Workstash: Compare Active File to Previous Revision Diff the current file against its last saved revision.
Workstash: Checkpoint Current File… Pin the current file's revision as a named checkpoint.
Workstash: Run Shortcut Pick and run a configured shortcut.
Workstash: Export Chat to Markdown Export the latest Copilot chat to Markdown.
Workstash: Export All Chats to Markdown Export all workspace chat sessions to Markdown.
Workstash: Save Terminal Transcript Save the active terminal's output to a .txt transcript.
Workstash: Show Logs Open the Workstash output channel for diagnostics.

Settings

Setting Default Description
workstash.storagePath "" Root folder for Workstash data. Empty = a .workstash folder at the workspace root.
workstash.localHistory.enabled true Save a revision whenever a file is saved.
workstash.localHistory.daysLimit 30 Delete revisions older than this many days (0 = never).
workstash.localHistory.maxEntries 50 Maximum revisions kept per file (0 = unlimited).
workstash.localHistory.saveDelay 0 Debounce, in seconds, before writing a revision after a save.
workstash.localHistory.maxDisplay 10 File groups shown in the tree before a "See more" node.
workstash.localHistory.exclude (globs) Files/folders that must not be saved to local history.
workstash.localHistory.treeLocation explorer Show the Local History tree in the Explorer or its own view.
workstash.localHistory.path "" Optional override for the local‑history location.
workstash.localHistory.dateLocale "" BCP‑47 locale for revision timestamps.
workstash.shortcuts.buttons (5 defaults) Status‑bar shortcut buttons ({ icon, command, tooltip, args?, text? }).
workstash.shortcuts.alignment left Side of the status bar for the shortcut buttons.
workstash.shortcuts.priority 0 Status‑bar priority for the shortcut buttons.
workstash.shelves.location scm Show the Shelves view in the Source Control view or a dedicated Workstash view.
workstash.shelves.confirmUnshelve true Confirm before unshelving (overwrites working‑tree files).
workstash.shelves.confirmDelete true Confirm before deleting a shelf.
workstash.baseline.exclude [] Extra .gitignore‑style globs to exclude when capturing a Baseline and tracking changes.
workstash.terminalCapture.autoSaveOnClose false Auto‑save a terminal's transcript when it's closed (uses shell integration).
workstash.terminalCapture.saveLocation "" Folder for saved terminal transcripts. Empty = transcripts under the storage path.

Getting Started

  1. Install Workstash from the VS Code Marketplace.
  2. Open the Workstash view from the activity bar.
  3. Make some edits — a Local History revision is saved on every file save.
  4. In a Git repository, use Shelve Changes… (or the Source Control title button) to set work aside, and Unshelve to bring it back.
  5. No Git repository? Run Workstash: Set Baseline to snapshot the folder, then keep editing — the Baseline section in Source Control lists what changed; click a change to diff it against the snapshot, then Revert it or Shelve Baseline Changes… to set it aside.
  6. In the integrated terminal, right-click and choose Workstash: Save Terminal Transcript to capture its output to a file (enable workstash.terminalCapture.autoSaveOnClose to do this automatically when a terminal closes).

Requirements

  • VS Code 1.95 or newer.
  • Git (optional) — used only by the Shelves feature (a welcome view guides you if the folder isn't a repository). Everything else — Baseline, Local History, Checkpoints, Shortcuts, Terminal Capture, and Chat Export — works without Git.

License

Released under the MIT License.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft