Find the places where a copied project still has the old name, in IntelliJ IDEA, Android Studio, PyCharm and WebStorm, and let Claude Code, Cursor or another AI coding agent check the rename

To find the places where a project you copied from another project or template still has the old name, install Copy Leftover Finder in IntelliJ IDEA, Android Studio, PyCharm, WebStorm or another JetBrains IDE, run Tools | Find Copy Leftovers... and enter the old name once. One search covers MyApp, myApp, my_app, my-app, my.app, My App and myapp in file contents and in file and folder names, and lists shipped pages and text, app and package ids, tests and build scripts at the top. To let Claude Code, Cursor or another AI coding agent check its own rename, turn on the IDE's MCP server and connect the agent: it runs the same search and gets a first line that says LEFTOVERS FOUND, ONLY ORIGIN NOTES FOUND or NO LEFTOVERS FOUND. So the privacy page that still names the other product, the test that still checks the other app's id and the build script that still copies the other project's files are the first things you see.

Try it free for 7 days on JetBrains Marketplace — every feature is included in the trial.

Copy Leftover Finder — a plugin for IntelliJ IDEA, Android Studio, PyCharm, WebStorm, PhpStorm, GoLand, RubyMine, CLion, Rider and other JetBrains IDEs (2025.2 and later). Sold on JetBrains Marketplace with a 7-day free trial that includes every feature.

> I copied this app from PipeCalc and renamed it to StitchView. Check that nothing still carries the old name.

find_copy_leftovers  copiedFrom: PipeCalc  newName: StitchView
LEFTOVERS FOUND: 5 places still mention "PipeCalc". Text files read: 318.

Shipped and public text (2) - users, stores or search engines will see these:
  store/privacy.html:12: <h1>PipeCalc Privacy Policy</h1>
  res/values-de/strings.xml:3: <string name="app_name">PipeCalc</string>

Identifiers and config (1) - package, bundle, product or ad ids that still point at the other project:
  app/build.gradle.kts:9: applicationId = "com.example.pipecalc"

Tests and checks (1) - a check that still expects the other project can pass or fail for the wrong reason:
  tests/listing.test.mjs:8: expect(title).toContain('PipeCalc')

Build and scripts (1) - these run on build or install and can pull the other project in:
  package.json:7: "bundle": "node ../pipe-calc/tools/bundle.mjs"

Notes about the origin (1) - lines that say where the code came from; usually fine to keep:
  src/calc.js:1: // copied from PipeCalc

Images are checked by file name only: open store screenshots yourself.

One search for the old name, in its usual spellings

Results grouped by where they hurt

Results open in the Copy Leftovers tool window, in this order:

Double-click a result or press Enter to jump to the line. Search Again... opens the search with the same names filled in, so you can check again after you fix a few places, and Copy Report puts the full list on the clipboard as plain text, ready to paste into an issue or a pull request.

Let Claude Code, Cursor and other AI agents check a rename

With this plugin, Claude Code, Cursor or any AI agent connected to the IDE's MCP server can check its own work right after it clones, copies or scaffolds a project from an existing one and renames it, before it reports that the rename is finished.

Setup

  1. Install Copy Leftover Finder from Settings | Plugins | Marketplace, restart the IDE if it asks, then start the 7-day free trial in the dialog the IDE shows.
  2. Run Tools | Find Copy Leftovers..., enter the name the project was copied from (and the new name, if it contains the old one) and click Search.
  3. For AI agents: open Settings | Tools | MCP Server, enable the MCP server and connect your agent there (Claude Code, Cursor and other MCP clients). find_copy_leftovers then appears in the agent's tool list.
  4. Ask the agent, for example: "I copied this project from PipeCalc and renamed it to StitchView. Use find_copy_leftovers to check that nothing still carries the old name, and fix what it finds."

Maintained and supported

This is a paid product that we keep working on: bug fixes and updates for new IDE releases. An annual subscription includes a perpetual fallback license: after twelve consecutive paid months, you keep a working version even if you stop subscribing. Questions sent to gramshift.official@gmail.com get an answer within two business days when a problem blocks your work and within five business days for everything else, and errors inside the plugin can be reported straight from the IDE's error dialog.

Frequently asked questions

How do I find the places that still have the old name after I copied my project to start a new app?

Install Copy Leftover Finder from Settings | Plugins | Marketplace, run Tools | Find Copy Leftovers... and enter the name of the project you copied from. The Copy Leftovers tool window lists each file and line that still carries that name, grouped as shipped and public text, identifiers and config, tests and checks, build and scripts, file and folder names, other code, and notes about the origin. Double-click a result or press Enter to jump to the line. It works in IntelliJ IDEA, Android Studio, PyCharm, WebStorm and other JetBrains IDEs from version 2025.2.

Does one search find MyApp, my_app and my-app?

Yes. Enter the old name with its word breaks, as MyApp or My App, and one search covers MyApp, myApp, my_app, my-app, my.app, My App and myapp, in upper or lower case, in file contents and in file and folder names. Several old names can be searched at once, separated by commas.

How do I find an old package name or applicationId left in a copied Android project?

Enter the old app name, for example PipeCalc. The same search finds it inside the old id com.example.pipecalc and in a source folder named pipecalc. Lines with applicationId, package, namespace, bundle ids, product codes or ad unit ids, and files such as AndroidManifest.xml, Info.plist and google-services.json, are listed under Identifiers and config, near the top of the list. Matches inside test files are listed under Tests and checks.

What if the new name contains the old name, like Note and NotePro?

Enter the new name as well. If the project was copied from Note and is now NotePro, places where Note is only part of NotePro are not reported, while other places that still say Note are listed.

How can Claude Code or Cursor check that a project rename is finished?

Enable the MCP server in Settings | Tools | MCP Server of your JetBrains IDE and connect the agent there. Copy Leftover Finder adds the tool find_copy_leftovers, which takes the old name and, if you like, the new name. The first line of the result is LEFTOVERS FOUND, ONLY ORIGIN NOTES FOUND or NO LEFTOVERS FOUND, followed by the matching lines grouped the same way as in the tool window, so the agent can check its own work before it reports that the rename is finished.

Are comments like "copied from MyApp" reported as problems?

They get their own group, Notes about the origin, which comes last and is collapsed in the tool window. Lines such as "copied from MyApp" or "based on MyApp" are usually fine to keep, so they stay out of the way of the places to fix. When these notes are the only matches, the result starts with ONLY ORIGIN NOTES FOUND.

Does the plugin send my code anywhere?

No. The plugin makes no network connections and only reads the files of the open project. The find_copy_leftovers tool returns the matching lines only to the AI agent you connected.

Install Copy Leftover Finder and try it free for 7 days

Compatible IDEs

Works in IntelliJ IDEA, PyCharm, WebStorm, PhpStorm, GoLand, RubyMine, CLion, Rider, RustRover, DataSpell, DataGrip and other IntelliJ-based IDEs from version 2025.2, and in Android Studio from Otter 2025.2.1.

Limits

The plugin finds and lists the places; it does not rename anything or edit any file.

Text files up to 2 MB under the project folder are read; larger files are counted in the result. Files saved as UTF-8 or UTF-16 (as many iOS .strings files are) are read from version 2026.1.5. Files in other encodings, such as Shift_JIS, are read as UTF-8: an old name written in Latin letters and digits is found there, but a name in another script may be missed. Dependency, build-output and version-control folders such as node_modules, build, dist, target, vendor and .git are skipped. Minified files, source maps, binary files and images are checked by file name only, so open store screenshots yourself. A search stops after 20,000 text files or 5,000 places and says so. Files and folders that cannot be read (locked, no permission) are counted and named in the result as NOT SEARCHED.

Enter the old name with its word breaks, as MyApp or My App: a name typed as one lowercase word (myapp) has no word breaks to work from, so it is searched as that one word only. The old name is also found inside longer words, for example "Note" inside "Notebook"; entering the new name filters out only the places where the old name is part of the new one. Names shorter than 3 letters or digits are not accepted because they match almost everything, and up to 20 names of at most 80 characters can be searched at once.

The agent tool needs an IDE that includes the built-in MCP server. It reads files from disk, so edits that are not yet saved in the editor are not seen by the agent; the search from the Tools menu saves them first.

Privacy

The plugin makes no network connections and only reads the files of the open project. The agent tool returns the matching lines only to the AI agent you connected. If an error occurs inside the plugin, the IDE may offer to send an error report to JetBrains Marketplace (or sends it automatically if you turned on automatic error reporting in the IDE); for the failures the plugin detects itself, the error text is removed first, so file contents, file names and the names you searched for are not included. See the Privacy Notice.

Get Copy Leftover Finder (7-day free trial) · All GRAMSHIFT plugins · Support: gramshift.official@gmail.com · Issue tracker