As coding becomes easier, the scope of things I want to build expands. I frequently find myself working on ideas that require multiple, disparate components. Clibbits, for example, is a super developer tool that ties voice transcriptions to your clipboard history. So far, there are 4 key pieces:
An Electron app
A VS Code extension
A React website
A Flutter app
Each has a totally different tech stack but needs to be aware of the data models and interfaces used by the others (The website is easy to update when I can reference new features added in the Electron app, too).
In this article, I'll walk you through setting up a multi-project workspace in VS Code that plays nicely with Claude Code.
Create Your Workspace
Technically every VS Code project is a workspace: a collection of one or more folders open in a VS Code window. Most of the time you just have one.
Fortunately, turning your single folder workspace into a multi-folder workspace is easy. In the top menu, select File > Add Folder to Workspace...
Then select the new folder you want to work with. By default, this creates an untitled workspace.
You can save it for later using the File > Save Workspace As... option. This creates a {project-name}.code-workspace file.
Give Claude Permission
When you run "claude" in a directory, it has read and write access to the contents of that directory and it's subdirectories.
Most of the time, the folders you're working with in a VS code workspace will be completely isolated from one another. In this case, the Claude you run in workspace folder 1 (eg. the Electron app) won't have access to workspace folder 2 (eg. the React app).
The fix is easy. In .claude/settings.local.json, add the following additionalDirectories array to the permissions section:
It should point at all folders in your workspace. To be safe, add this to the .claude/settings.local.json file in each workspace folder.
Update Your File Suggestions
Setting additionalDirectories is all you need to start working but the developer experience won't be nice. When you type "@" in Claude Code, the default behavior is to suggest files inside the current working directory. This means you won't be able to reference files from all of the projects within the workspace.
To fix this, update the fileSuggestion field in ~/.claude/settings.json.
First, create this script at ~/.claude/file-suggestions.sh:
This script reads the "additionalDirectories" array from your .claude/settings.local.json file and uses those pathways to expand the search radius.
Then add it to the fileSuggestion section of your global ~/.claude/settings.json file (if you want this logic to apply to all Claude instances):
And just like that, you have full workspace file suggestions!