A VS Code extension that lets you group files by task or logic flow, then resume any group with a single click — so you can switch context without losing the exact set of tabs you were working on.
Why
When you open a repo and work on a task, you often end up with many unrelated files open. Switching to a different task means re-finding the right files later. File Grouper lets you save the current set of files as a named group and bring it back when you return to that task.
Features
- Sidebar tree view — dedicated Activity Bar icon listing all groups and the files inside each
- Create groups — name a group and add files to it
- Snapshot open tabs — save every currently open editor tab as a new group in one action
- Resume group — closes all editors and reopens the group's files in their saved order
- Rename / delete groups
- Add files from multiple entry points:
- Right-click a file in the Explorer → Add to File Grouper Group…
- Right-click an editor tab → Add to File Grouper Group…
- Command palette → File Grouper: Add Current File to Group…
- Remove and reorder files inside a group (inline up / down / × buttons)
- Per-workspace storage — each repo has its own groups; nothing leaks between projects
Getting started
Run from source
- Open this folder in VS Code.
- Run
npm install(first time only). - Press F5 to launch an Extension Development Host with File Grouper loaded.
- In the new window, open any project and click the folder-library icon in the Activity Bar.
Install as a .vsix
npx @vscode/vsce package
code --install-extension file-grouper-0.1.0.vsix
Usage
Create a group
- Click the + button in the File Grouper view title bar, or
- Run File Grouper: Create Group from the command palette and enter a name.
Snapshot your current tabs as a group
- Click the save icon in the File Grouper view title bar, or
- Run File Grouper: Snapshot Open Tabs as Group.
Every file currently open in an editor tab is added to the new group.
Add a file to a group
| Where | How |
|---|---|
| Explorer | Right-click a file → Add to File Grouper Group… |
| Editor tab | Right-click the tab → Add to File Grouper Group… |
| Command palette | File Grouper: Add Current File to Group… (acts on the active editor) |
You can pick an existing group or create a new one inline.
Resume a group
There are three ways:
- Sidebar: hover the group row → click the ▶ (play) icon.
- Right-click the group → File Grouper: Resume Group.
- Command palette: File Grouper: Resume Group → choose the group.
Resume closes all currently open editors and reopens the group's files in saved order.
Rename or delete a group
Right-click the group in the sidebar and pick Rename or Delete, or run the equivalent command from the palette.
Reorder or remove files inside a group
Hover a file row in the sidebar — three inline icons appear:
- ↑ move up
- ↓ move down
- × remove from group
The order is preserved and used when the group is resumed.
Commands
| Command | Description |
|---|---|
File Grouper: Create Group |
Create a new empty group |
File Grouper: Snapshot Open Tabs as Group |
Save all open editor tabs as a new group |
File Grouper: Rename Group |
Rename an existing group |
File Grouper: Delete Group |
Delete a group |
File Grouper: Resume Group |
Close all editors and reopen a group's files |
File Grouper: Add Current File to Group… |
Add the active editor's file to a group |
Add to File Grouper Group… |
(Context-menu) Add an Explorer or tab file to a group |
File Grouper: Refresh |
Refresh the sidebar tree |
Storage
Groups are stored per-workspace using VS Code's workspaceState under the key fileGrouper.groups.v1. File paths are stored relative to the workspace root, so groups remain valid if the project is moved.
Limitations
- Resume opens files as text documents. Binary files (images, PDFs) may not open through this path. Open an issue if you'd like full
vscode.openhandling. - Editor layout (split panes, view columns) is not restored — only the set and order of files.
- Multi-root workspaces use the first workspace folder as the root for relative paths.
Development
npm install # install deps
npm run compile # build TypeScript to out/
npm run watch # rebuild on change
Press F5 in VS Code to launch the Extension Development Host.
Project structure
src/
extension.ts # command registration + activation
groupStore.ts # persistence via workspaceState
groupTreeProvider.ts # sidebar TreeDataProvider
License
MIT