alefragnani/vscode-project-manager
alefragnani/vscode-project-manager has 2,699 GitHub stars and 351 forks. GitHot measured +2 stars in 24 hours and +6 in 7 days. Last checked 2026-11-12 13:59 UTC. Last push 2026-10-29.
Project Manager Extension for Visual Studio Code
实测星标增长
- 24小时
- +2
- 7天
- +6
- 15天
- 正在收集历史
- 1个月
- 正在收集历史
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.zh-CN.md
原文English | 简体中文
Project Manager 13.1 更新内容
- 改进了 Tags 支持
- 改进了自动检测项目支持
- 再次完全开源
- 增加 Profile 支持
- 在 Side Bar 中高亮当前项目
- 发布到 Open VSX
- 增加 Getting Started / Walkthrough
- 使用 Tags 组织项目
- 增加 Virtual Workspaces 支持
- 增加 Workspace Trust 支持
支持项目
Project Manager 是为 Visual Studio Code 打造的扩展。如果你觉得它有帮助,欢迎支持本项目。
|
|
|
Project Manager
它可以帮助你轻松访问自己的项目,无论这些项目位于哪里。不要再错过那些重要项目。
你既可以定义自己的项目(也叫 Favorites),也可以自动检测 Git、Mercurial、SVN 仓库、VSCode 文件夹,或者任意其他文件夹。
以下是 Project Manager 提供的部分功能:
- 将任意文件夹或工作区保存为项目
- 自动检测 Git、Mercurial 或 SVN 仓库
- 使用 Tags 组织项目
- 在当前窗口或新窗口打开项目
- 识别已_删除/重命名_的项目
- 通过 Status Bar 标识当前项目
- 提供专用 Side Bar
功能
可用命令
Project Manager: Save Project将当前文件夹/工作区保存为新项目Project Manager: Edit Project手动编辑你的项目(projects.json)Project Manager: List Projects to Open列出所有已保存/已检测项目并选择一个打开Project Manager: List Projects to Open in New Window列出所有已保存/已检测项目并在新窗口打开Project Manager: Filter Projects by Tag按选定标签筛选 Favorite 项目
管理项目
Save Project
你可以随时将当前文件夹/工作区保存为一个项目,只需输入项目名称。

扩展会_自动_为你建议一个名称 :)
Edit Projects
为了更方便地自定义项目列表,你可以直接在 Code 中编辑 projects.json 文件。只需执行 Project Manager: Edit Projects,扩展就会打开 projects.json 文件。就这么简单:
[
{
"name": "Pascal MI",
"rootPath": "c:\\PascalProjects\\pascal-menu-insight",
"tags": [],
"enabled": true,
"profile": "Delphi"
},
{
"name": "Bookmarks",
"rootPath": "$home\\Documents\\GitHub\\vscode-bookmarks",
"tags": [
"Personal",
"VS Code"
],
"enabled": true,
"profile": "VSCode"
},
{
"name": "Numbered Bookmarks",
"rootPath": "~\\Documents\\GitHub\\vscode-numbered-bookmarks",
"tags": [
"Personal",
"VS Code"
],
"enabled": false,
"profile": "VSCode"
}
]
你可以在路径中使用
~或$home,它们会被替换为你的 HOME 文件夹。
请确保 JSON 文件格式正确。否则,Project Manager 将无法打开它,并会显示如下错误提示。在这种情况下,请使用
Open File按钮进行修复。

访问
List Projects to Open
显示你的项目并选择一个打开。
List Projects to Open in New Window
与 List Projects 类似,但始终在新窗口打开。
键盘优先用户
如果你是键盘优先用户,并使用类似 Vim 的键盘导航方式,你可以通过自定义键绑定在项目列表中导航。
只需使用 when 条件 "inProjectManagerList",例如:
{
"key": "cmd+j",
"command": "workbench.action.quickOpenSelectNext",
"when": "inProjectManagerList && isMac"
},
{
"key": "cmd+shift+j",
"command": "workbench.action.quickOpenSelectPrevious",
"when": "inProjectManagerList && isMac"
},
{
"key": "ctrl+j",
"command": "workbench.action.quickOpenSelectNext",
"when": "inProjectManagerList && (isWindows || isLinux)"
},
{
"key": "ctrl+shift+j",
"command": "workbench.action.quickOpenSelectPrevious",
"when": "inProjectManagerList && (isWindows || isLinux)"
}
远程开发场景
该扩展支持 Remote Development 场景,你可以根据自己的需要使用。
我会访问远程环境,但大部分工作仍在本地
这是最_常见_的场景,所以你不需要做任何额外配置,扩展开箱即用。
当扩展安装在本地时,你可以将 Container、SSH、WSL 或 Codespaces 项目保存为 Favorites。每种类型都有对应图标可用于区分,选择后 VS Code 会自动打开对应远程。
It just works
如果我大部分工作都在远程环境中
如果你通常连接远程环境(如 SSH/WSL),并希望在远程端保存 Favorites,或自动检测远程上的仓库,你必须让扩展在远程端激活/安装。
你只需要在 User Settings 中添加如下配置:
"remote.extensionKind": {
"alefragnani.project-manager": [
"workspace"
]
},
更多细节请参考 VS Code documentation
可用设置
你可以选择项目列表的排序方式:
Saved: 按保存顺序Name: 按项目名称Path: 按项目完整路径Recent: 按最近使用
"projectManager.sortList": "Name"

- 选择项目列表是否按类型分组(Favorites、Git、Mercurial、SVN 和 VS Code)。
"projectManager.groupList": true
- 是否将当前项目从列表中移除(默认
false)
"projectManager.removeCurrentProjectFromList": true
- 是否在列出项目时识别_无效路径_(默认
true)
"projectManager.checkInvalidPathsBeforeListing": false
- 是否在
baseFolders上支持符号链接(默认false)
"projectManager.supportSymlinksOnBaseFolders": true
- 当检测到同名项目时,是否显示父目录信息(默认
false)
"projectManager.showParentFolderInfoOnDuplicates": true
- 通过完整路径筛选项目(默认
false)
"projectManager.filterOnFullPath": true
- 自定义项目文件(
projects.json)位置
如果你希望在 Stable 和 Insider 安装之间_共享_项目,或者将设置存储在不同位置(如云服务),可以为 projects.json 指定一个_备用_目录。
"projectManager.projectsLocation": "C:\\Users\\myUser\\AppData\\Roaming\\Code\\User"
你可以在目录路径中使用
~或$home,它们会被替换为你的 HOME 文件夹。
- 自动检测项目(Git
, Mercurial
, SVN
和 VSCode
)
"projectManager.git.baseFolders": [
"c:\\Projects\\code",
"d:\\MoreProjects\\code-*",
"$home\\personal-coding"
]
指定用于搜索项目的文件夹或 glob patterns
"projectManager.git.ignoredFolders": [
"node_modules",
"out",
"typings",
"test",
"fork*"
],
指定搜索项目时需要忽略的文件夹或 glob patterns
"projectManager.git.maxDepthRecursion": 4
定义搜索项目的深度
- 从自动检测结果中排除 base folders 本身(默认
false)
"projectManager.any.excludeBaseFoldersFromResults": true
启用后,配置在
projectManager.any.baseFolders中的 Any base folders 不会作为项目本身返回,只会返回其匹配的子文件夹。
- 是否忽略位于其他项目内部的项目(默认
false)
"projectManager.ignoreProjectsWithinProjects": true
- 缓存自动检测的项目(默认
true)
"projectManager.cacheProjectsBetweenSessions": false
- 在状态栏显示项目名称(默认
true)
"projectManager.showProjectNameInStatusBar": true
- 点击状态栏时在_新窗口_打开项目(默认
false)
"projectManager.openInNewWindowWhenClickingInStatusBar": true
指示
New Window命令在窗口为空时是否改为在当前窗口打开(默认always)always: 每次调用 Open in New Window 命令时,如果窗口为空则在当前窗口打开onlyUsingCommandPalette: 仅通过命令面板调用时在当前窗口打开onlyUsingSideBar: 仅通过侧边栏调用时在当前窗口打开never: 与当前行为一致,Open in New Window 命令始终在新窗口打开
"projectManager.openInCurrentWindowIfEmpty": "always"
- 指示用于组织项目的标签列表(默认
Personal和Work)
"projectManager.tags": [
"Personal",
"Work",
"VS Code",
"Learning"
]
控制 Favorites 视图里标签分组如何展开/折叠,以及是否记住状态(默认
startExpanded)alwaysExpanded: 标签分组始终展开alwaysCollapsed: 标签分组始终折叠startExpanded: 标签分组初始展开,并记住上一次展开/折叠状态startCollapsed: 标签分组初始折叠,并记住上一次展开/折叠状态
"projectManager.tags.collapseItems": "startExpanded"
可用颜色
- 选择用于在 Side Bar 高亮当前项目的前景色
"workbench.colorCustomizations": {
"projectManager.sideBar.currentProjectHighlightForeground": "#e13015"
}
Side Bar
Project Manager 扩展有自己的 Side Bar,提供了多种命令来提升你的效率。

Project Tags - View and Filter
从 v12.3 开始,你可以使用 Tags 来组织项目。
你可以定义自定义标签(通过 projectManager.tags 设置)、为每个项目定义多个标签,并根据标签筛选项目。

扩展 API
如果你是扩展开发者,并希望与 Project Manager 扩展进行交互,可以使用它的公开 API。
首先,你必须在 package.json 文件中添加 extensionDependencies 条目:
"extensionDependencies": [
"alefragnani.project-manager"
],
然后,在源代码中通过 vscode.extensions.getExtension("alefragnani.project-manager") 获取扩展实例,以便使用它公开的方法。
import { ProjectManagerPublicApi } from './api/projectManager/api';
async function useProjectManagerApi() {
const projectManagerApi = <ProjectManagerPublicApi>vscode.extensions.getExtension('alefragnani.project-manager')?.exports;
await projectManagerApi.saveProject("My Project", "/path/to/project", ["work"], "Default");
}
契约定义在 /api/api.d.ts。
更多详情请参阅 VS Code 扩展 API 参考
安装与配置
你可以参考官方文档来:
许可证
GPL-3.0 with VS Code Extension Host API Exception © Alessandro Fragnani



