为了更方便地给 Claude Code / Codex 喂上下文,我写了一个 VS Code 插件

最近我开源了一个新的 VS Code 插件,名字叫 At File

它的功能非常简单: 在 VS Code 里写 Markdown 或文本文件时,输入 @,就可以自动弹出当前工作区里的文件和目录。选中之后,插件会自动插入对应的相对路径。

项目地址:

https://github.com/opensource-100/vscode-at-file-extension

它不是一个复杂的插件,也不是一个大而全的 AI 工具。

它只解决一个很小、但我自己非常高频的痛点:

在 VS Code 里写需求文档、AI 开发说明、Markdown Prompt 时,更方便地引用项目文件。

插件效果

在支持的文件里输入 @,会自动弹出当前 workspace 里的文件和目录。

At File 使用演示

选中之后,会插入类似这样的相对路径:

@src/components/Button.tsx
@src/components/

为什么要写这个插件?

我现在写需求、写开发说明、写 AI 编程提示词的时候,越来越习惯用 Markdown。

比如我会先写一个 xxx.md 文件,把需求背景、实现思路、参考文件、修改范围、注意事项都整理好,然后再交给 Claude Code、Codex 这类 AI 编程工具去执行。

但这里有一个很实际的问题:

我经常需要在 Markdown 里告诉 AI:

以前我会手动去复制文件路径。

比如写着写着,突然要引用一个文件:

请参考 src/pages/order/detail/index.tsx 的实现方式,修改当前页面逻辑。

这时候就要切到资源管理器里找文件、右键复制路径,或者自己凭记忆手写路径。

项目小的时候还好。

项目一大,路径层级一深,这个动作就非常打断思路。

而且在 AI 编程场景里,文件引用其实非常频繁。

很多时候,我不是直接在写代码,而是在写给 AI 的开发任务。

这个过程本身也需要很顺畅地组织上下文。

所以我就想,能不能像很多 AI 编程工具里的 @文件 一样,在普通 Markdown 文件里也支持这种能力?

于是就有了这个插件。

它解决的不是大问题,而是一个高频小痛点

At File 只解决一个问题:

在 VS Code 的 Markdown / 文本文件里,更快地引用当前项目里的文件和目录。

当你输入 @ 的时候,插件会基于当前 workspace 给出文件和目录补全。

选中之后,插入的是相对路径。

这对于写 AI Prompt、需求文档、开发说明、代码走查记录、任务拆解文档都挺有用。

尤其是现在很多开发流程已经变成:

人负责描述问题、梳理上下文、制定目标;
AI 负责读代码、改代码、补测试、生成实现。

在这种流程里,怎么把上下文准确地交给 AI,变得越来越重要。

而文件路径,就是非常重要的一类上下文。

我的真实使用场景

我的典型使用方式是这样的:

先在项目里新建一个 Markdown 文件,比如:

docs/tasks/fix-order-price.md

然后在里面写:

请帮我优化订单详情页的价格展示逻辑。

参考文件:
@src/pages/order/detail/index.tsx
@src/components/PriceDisplay.tsx

需要修改:
@src/pages/order/detail/components/PriceInfo.tsx

注意:
1. 保持现有接口不变
2. 不要影响其他页面
3. 参考已有价格格式化逻辑

写完之后,把这个 Markdown 文件交给 Claude Code 或 Codex,让它基于这个任务文件进行开发。

以前写这些路径比较麻烦。

现在输入 @,直接搜索并选择文件就可以了。

它并不会替代 AI 编程工具,但它能让给 AI 准备上下文这一步更顺。

插件的优势

1. 功能简单

这个插件只做一件事:

输入 @ 后补全当前 workspace 的文件和目录。

没有复杂 UI,也没有额外面板。

它不会试图接管你的工作流,只是在你需要引用文件的时候出现一下。

2. 轻量级

我不想把它做成一个很重的插件。

因为这个需求本身就很简单:

写文档时快速插入文件路径。

所以插件整体保持轻量,不做多余的 AI 集成,不绑定任何具体模型,也不依赖外部服务。

它只是增强 VS Code 里一个非常细碎但高频的编辑体验。

3. 基于 VS Code 自带能力

插件主要是基于 VS Code 自身的补全能力来做的。

所以使用体验会比较自然:

你输入 @,它就像普通代码补全一样弹出候选项。

不用学习新的交互方式,也不用打开额外窗口。

4. 速度快

对于这个插件来说,速度很重要。

因为它出现的场景通常是在写文档、写需求、写 Prompt 的过程中。

如果补全很慢,就会打断思路。

所以它会对工作区文件建立索引,并且支持刷新索引。

同时也可以配置排除目录,比如:

{
  "atFile.exclude": ["node_modules", "target", ".git", "dist", "build"]
}

这样可以避免把一些无意义的大目录也纳入补全范围。

支持配置

目前插件支持一些简单配置。

比如可以配置在哪些文件类型中启用:

{
  "atFile.enabledExtensions": ["md", "txt"]
}

也可以配置排除目录:

{
  "atFile.exclude": ["node_modules", "target", ".git", "dist", "build"]
}

还可以配置最大补全结果数量:

{
  "atFile.maxResults": 20
}

另外也提供了一个命令:

At File: Refresh Index

用于刷新当前工作区的文件索引。

它适合哪些人?

这个插件首先适合 使用 VS Code 的开发者

因为它本身就是一个 VS Code 插件,核心场景也是在 VS Code 里写 Markdown、写需求文档、写 AI 开发说明时,快速引用当前项目里的文件。

更具体一点,它适合这些人:

第一类,是平时就用 VS Code 写项目、写文档的人。

第二类,是经常在 VS Code 里写 Markdown 任务文档的人。

第三类,是使用 Claude Code、Codex、Cursor、Cline 等 AI 编程工具,并且习惯先整理上下文再让 AI 改代码的人。

第四类,是在大项目里经常需要引用文件路径的人。

如果你本身不用 VS Code,那这个插件可能就不适合你。

但如果你的主要开发环境就是 VS Code,并且你经常需要在文档里引用项目文件,那么这个插件会比较顺手。

为什么没有做得更复杂?

其实一开始也想过要不要做更多功能。

比如:

但后来还是决定先克制一点。

因为我真正想解决的是一个很明确的问题:

在写 Markdown 任务文档时,快速引用项目文件。

很多工具一开始就是因为想法太多,最后变得臃肿。

所以这个插件第一版只保留最核心的能力。

如果后面真的有更多实际使用场景,再慢慢加。

开源

这个插件已经开源。

项目地址:

https://github.com/opensource-100/vscode-at-file-extension

目前功能还很简单,后面我也会继续根据自己的使用情况慢慢迭代。

我开源它的原因也很简单:

这个插件不是什么复杂项目,但它确实解决了我在 AI 编程工作流里的一个小痛点。

如果你也有类似习惯,欢迎试试看。

也欢迎提 issue 或 PR。

最后

现在 AI 编程工具越来越强,但我越来越感觉到:

真正影响效果的,不只是模型能力,还有我们怎么组织上下文。

把需求写清楚,把参考文件说清楚,把修改范围限定清楚,AI 的输出质量就会明显稳定很多。

而这个插件,就是为了让引用文件这件小事更顺一点。

它不复杂,也不炫技。

但对于我自己的开发流程来说,挺实用。