Claude Code 怎么打开多个项目?附 3 种方法与选择建议

编程狮(w3cschool.cn) 2026-08-24 17:27:30 浏览数 (37)
反馈

Claude Code 怎么打开多个项目?答案很简单——最稳的做法是多开几个终端窗口,每个窗口先进到一个项目目录再启动它;如果两个项目需要互相参照,用 --add-dir 把额外目录挂进同一个会话;同时盯三四个项目,就交给终端分屏或 tmux 统一管理。之所以要专门讲这件事,是因为 Claude Code 不是图形界面软件,它没有「文件 → 打开项目」这种菜单,项目边界完全由你启动它时所在的目录决定。这个机制不搞清楚,很容易出现「它看不到我另一个仓库的文件」或者「上下文被两个项目串在一起」的尴尬。这篇文章,编程狮把三种做法和各自的适用边界一次讲清。

Claude Code 怎么打开多个项目?

本文先讲清工作目录机制,再逐个拆解三种做法的操作步骤,最后给出选择标准和踩坑清单。看完你能按项目数量和协作方式,挑出最省心的那一种。

一、先搞懂 Claude Code 的项目边界

打开多个项目这件事之所以让人困惑,根源在于它的目录机制和图形化 IDE 完全不同。

1.1 工作目录就是项目边界

启动 Claude Code 时,你所在的那个目录(也就是终端里 pwd 显示的路径)就是它的工作根目录。它默认只能读写这棵目录树里的文件,往外的路径需要你显式授权。这个设计有三层含义:

  • 一个会话默认只对应一个项目,想开第二个项目,得再开一个会话;
  • 项目级配置按目录生效:放在项目根的 CLAUDE.md 只对这个项目起作用,换项目就换一份;
  • 会话历史按目录区分:在 A 项目里 --continue 恢复的是 A 的对话,不会把 B 的上下文带进来。

1.2 三种做法总览

做法 一句话概括 上下文是否隔离 适合的项目数
多开终端 一个窗口一个项目,各自启动 完全隔离 2-3 个
--add-dir 一个会话挂多个目录 共享同一上下文 2 个强关联项目
分屏 / tmux 多会话集中排布在一屏 完全隔离 3 个以上

💡 小提示:判断标准就一句话——两个项目要不要互相看到对方的代码。要,用 --add-dir;不要,就开两个会话。

二、方法一:多开终端,一个项目一个会话

这是最常用、也最不容易出错的做法,推荐作为默认选择。

操作步骤:

  1. 打开终端(Windows 用 Windows Terminal,macOS 用 Terminal 或 iTerm2);
  2. Ctrl + Shift + T(macOS 是 Cmd + T)新建一个标签页;
  3. 在这个标签里进入第一个项目目录,然后启动:

# 标签 1:进入项目 A 并启动
cd ~/code/w3cschool-web
claude


# 标签 2:新开一个标签,进入项目 B 并启动
cd ~/code/w3cschool-api
claude

  1. 之后按标签切换即可,每个标签是一个独立会话,上下文互不干扰;
  2. 想给标签改个好认的名字,Windows Terminal 里右键标签选「重命名」,iTerm2 里按 Cmd + I 改。

这种做法的好处很实在:上下文完全隔离,A 项目的代码风格约定不会被误用到 B 项目上;某个会话卡住了直接关掉重开,不影响另一个。终端里频繁用到的目录跳转、进程查看命令,可以对照 Linux 速查手册 随手查。

⚠️ 注意:每个会话都会独立消耗额度。同时开五六个窗口挂着不用,是很多人月底发现用量异常的原因,用完记得退出。

三、方法二:用 --add-dir 让一个会话跨目录

当两个项目必须互相参照时(典型场景是前后端分离、或者一个仓库拆成了主库和组件库),多开窗口就很麻烦——你得在两个会话之间人工传递信息。这时候该用 --add-dir

两种用法:

# 用法一:启动时就挂上额外目录
cd ~/code/w3cschool-web
claude --add-dir ~/code/w3cschool-api


# 用法二:已经在会话里了,用斜杠命令追加
# /add-dir ~/code/w3cschool-api

挂上之后,这个会话就能同时读写两棵目录树的文件,你可以直接说「照着 api 项目里的接口定义,把 web 项目的请求层补上」,它能自己去两边找文件。

不过要清楚代价:

  • 上下文是共享的,两个项目的文件都会进同一个对话,项目一大上下文消耗明显变快;
  • 配置以启动目录为准,挂进来的那个目录的 CLAUDE.md 不一定生效,约定冲突时容易出现风格串味;
  • 权限范围扩大,被挂进来的目录是可写的,操作前务必确认路径没写错。

具体的斜杠命令清单和参数写法会随版本更新,动手前建议先跑一次 claude --help,或者对照 Claude Code 编程技能教程 确认当前版本的用法。

四、方法三:终端分屏或 tmux 统一管理

要同时打开多个项目、数量上到三个以上时,光靠切标签就开始乱了——你会忘记哪个标签对应哪个项目。这时候把会话排布到一屏上更省心。

做法一:终端自带分屏

Windows Terminal 用 Alt + Shift + D 分屏,iTerm2 用 Cmd + D 左右分、Cmd + Shift + D 上下分。分完在每个窗格里各自 cd 加启动,四个项目摊在一屏,扫一眼就知道谁跑完了。

做法二:tmux(推荐给需要长时间挂着的场景)

# 建一个会话,按项目命名窗口
tmux new -s w3cschool
# Ctrl+b c 新建窗口,Ctrl+b , 重命名,Ctrl+b 数字 切换


# 关掉终端也不丢:先 Ctrl+b d 脱离,之后再接回来
tmux attach -t w3cschool

tmux 最大的价值是断开不丢会话:远程开发时网络断了、笔记本合盖了,重新连上 attach 回去,任务还在继续跑。这一点是普通终端标签做不到的。

多项目往往同时意味着多仓库,分支切换、暂存、对比这些操作会比平时频繁得多,命令记不住时翻 Git 速查手册 比凭印象试要快。

五、三种方法怎么选,附踩坑清单

方法 优点 代价 典型场景
多开终端 隔离干净、零学习成本 项目多了容易切错 日常两三个项目并行
--add-dir 能跨项目协同 上下文共享、消耗快 前后端联调、主库带组件库
分屏 / tmux 一屏看全、断线不丢 要记快捷键 三个以上项目、远程开发

三条判断标准:

  1. 项目之间要不要互相读文件:要 → --add-dir;不要 → 各开会话,这是第一优先级的判断;
  2. 同时盯几个:两三个用标签就够,三个以上直接上分屏或 tmux;
  3. 会不会断线:本地开发随意,远程 SSH 一律用 tmux,能省下重跑任务的时间。

四个高频坑,提前避开:

  • 忘了 cd 就启动:在家目录直接敲启动命令,工作根目录会变成整个家目录,它既看不清项目结构,权限范围还大得离谱。启动前先 pwd 确认一眼;
  • --add-dir 挂了不相关的项目:上下文被无关代码占满,回答质量反而下降。只挂真正需要参照的目录;
  • 多个会话共用一份全局配置:项目风格不同却只写了全局约定,结果 A 项目的规范被套到 B 项目上。约定尽量写进各自项目根目录的 CLAUDE.md
  • 会话开着不管:额度按会话消耗,长期挂着的空闲会话是白花钱,不用就退出。

Claude Code 多项目怎么开?

总结

Claude Code 打开多个项目,核心是理解「工作目录就是项目边界」。

要点带走:

  • 默认做法是多开终端,一个窗口一个项目,上下文完全隔离,最不容易出错;
  • 需要跨项目协同才用 --add-dir,代价是上下文共享、消耗变快,别拿它当默认;
  • 三个以上项目或远程开发用分屏和 tmux,一屏看全、断线不丢会话。

下一步建议先养成一个习惯:每次启动前用 pwd 确认目录。这个动作只要两秒,能挡掉多项目场景下一半以上的莫名其妙问题。

延伸学习

想把 AI 编程工作流搭得更顺,可以按这个顺序补:

  1. 想跟着项目练手,AI 驱动的 Python 编程实战 这门配套课程从环境到成品走了一遍完整流程;
  2. 想弄懂底层理念,什么是 Agentic Coding 用零基础的话讲清了这类工具的工作方式;
  3. 日志或接口返回里出现看不懂的编码串时,用 编码解码工具 还原成明文再判断。

常见问题

Q:能不能在一个会话里直接切换到另一个项目?
A:不建议。工作根目录在启动时就确定了,会话中途换项目会让上下文混在一起。要么退出重新在新目录启动,要么用 --add-dir 把目录挂进来,两种都比中途硬切更可控。

Q:多开几个会话,历史记录会串吗?
A:不会。会话历史按工作目录区分,在 A 项目里恢复上次对话,恢复的是 A 的记录。这也是推荐多开窗口而不是一个会话包打天下的原因之一。

Q:--add-dir 挂进来的目录,它能改里面的文件吗?
A:能,挂进来就在可操作范围内。所以路径一定要写对,尤其别把家目录或者系统目录整个挂进去。只挂真正需要的子目录最安全。

Q:Windows 上没有 tmux 怎么办?
A:Windows Terminal 自带分屏,快捷键 Alt + Shift + D,日常够用。要用 tmux 可以在 WSL 里装,命令和 Linux 完全一致,远程开发场景下值得配一套。

0 人点赞