switching-projects — Cursor skill: what it does, how to install
Switches the active workspace directory in Cursor to another repo during a session. Useful when you need to jump between projects without opening a new window.
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a claude-codeWhat switching-projects does
The skill switches the agent's active workspace directory mid-conversation using Cursor's built-in cursor-app-control MCP server. It calls the move_agent_to_root tool with the target rootPath, updating the visible workspace and default working directory without launching a second window.
When prompted, the agent searches parent folders such as ~/projects/ or ~/code/ using ls to find the directory, or asks for clarification if the name is ambiguous. Once switched, it inspects package.json and runs git status to see the current state. It can also invoke create_project to create a directory and initialize a git repo before switching into it.
This workflow relies entirely on the cursor-app-control MCP server being enabled. Without it, the tool call fails. After a switch, all subsequent tool calls resolve relative file paths against the new root directory.
What it helps with
- switch the active workspace directory without opening a new window
- locate project folders in development directories using
ls - inspect new repositories with
git statusandpackage.json - scaffold a directory and initialize git via
create_project
Example prompts for the agent
- Switch to the my-app project in ~/projects
- Open the backend repo in the current conversation
- Create a new project named service-auth and switch to it
How to install switching-projects
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a claude-code2Manually: put the files in place
~/.claude/skills/switching-projects/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/switching-projects/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a codex2Manually: put the files in place
.agents/skills/switching-projects/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a cursor2Manually: put the files in place
.cursor/skills/switching-projects/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install spencerpauly/awesome-cursor-skills switching-projects2Manually: put the files in place
.github/skills/switching-projects/SKILL.md1Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a gemini-cli2Platform CLI
gemini skills install https://github.com/spencerpauly/awesome-cursor-skills --path resources/switching-projectsManually: put the files in place
.devin/skills/switching-projects/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about switching-projects
How to install switching-projects in Cursor?
Run npx skills add spencerpauly/awesome-cursor-skills --skill switching-projects -a cursor.
What does switching-projects do?
It uses the move_agent_to_root tool from Cursor's cursor-app-control MCP server to switch the active workspace directory without opening another window.
What is required for switching-projects to work?
Cursor's built-in cursor-app-control MCP server must be enabled. Without it, move_agent_to_root and create_project tool calls will fail.
Source text
SKILL.md · CC0-1.0
---
name: switching-projects
description: Switch the current Cursor workspace to a different project directory using the cursor-app-control MCP. Use when the user asks to switch projects, open another repo, jump to a different codebase, or move to a worktree.
---
# Switch Project
Use this skill when the user wants to switch to a different project, open another codebase, or move the current conversation to a different workspace root.
## How It Works
Cursor has a built-in MCP server called `cursor-app-control` with a tool called `move_agent_to_root` that changes the agent's active workspace directory. This lets you switch projects mid-conversation without opening a new window.
## Steps
1. **Ask or infer the target project** — if the user says "switch to my-app", search for it. Common project locations:
- `~/Documents/development/`
- `~/projects/`
- `~/code/`
- `~/repos/`
List directories in the likely parent folder to find the project:
```bash
ls ~/Documents/development/
```
If ambiguous, ask the user which project they mean.
2. **Switch the workspace** — call the `cursor-app-control` MCP tool:
```
Tool: move_agent_to_root
Arguments: { "rootPath": "/Users/<username>/Documents/development/<project-name>" }
```
This updates the visible workspace, file tree, and default working directory for all subsequent commands.
3. **Orient in the new project** — after switching, briefly describe what you see:
- Read the project's `package.json`, `README.md`, or equivalent to understand the stack.
- Run `git status` to show the current branch and state.
- List the top-level directory structure.
## Creating a New Project
If the user wants to start a new project and switch to it:
1. Call `create_project` with the desired path — this creates the directory and initializes a git repo.
2. Call `move_agent_to_root` to switch into it.
3. Begin scaffolding.
## Notes
- This only works if the `cursor-app-control` MCP server is enabled.
- The switch happens in the current conversation — no new window is opened.
- All file paths in subsequent tool calls will resolve relative to the new root.
- You can switch back to the original project the same way.
© spencerpauly · CC0-1.0 · spencerpauly/awesome-cursor-skills