IntelliJ API Watcher

Compatible with: IntelliJ IDEA PhpStorm WebStorm PyCharm RubyMine AppCode CLion GoLand DataGrip Rider MPS Android Studio
Jan 17, 2019
51 889
The plugin provides 'Find External Usages' action which allows developers to quickly find plugins which use IntelliJ platform classes, methods or fields and 'Check external usages' option in 'Commit Changes' dialog which checks that changes in IntelliJ platform classes don't break external plugins.

Note: it makes no sense to install this plugin if you don't contribute to IntelliJ IDEA sources. Also the plugin requires connection to a server which isn't accessible outside of JetBrains internal network.

Download plugin

Recent change notes


  • Add number of plugins and total usages to Copy in "Most Used API" search result tree.


  • Minor optimizations


  • Fix MP-1972: New methods with @JvmDefault annotation added to interfaces are wrongly reported as breaking changes


  • Fix pre-push checks for a case when API gets broken and fixed in outgoing commits
  • Add discontinuous tree selection option in API conflicts panel
  • MP-1938: Make API Watcher panel Dumb Aware


  • Fix a highlighter exception thrown on opening a class file with the usage


  • Improve precision of Find External Usages for fields: do not show usages of fields hidden in subclasses


  • Fixed exclusion of methods with empty parameters in Find Most Used API Methods action. Just write '()' in the parameters field.
  • Display options of the Find Most Used API action in the tree


  • Added filtering and grouping by module in Find Most Used Classes/Methods/Fields actions


  • Added grouping by module in Find Most Used Classes/Methods/Fields tree
  • Implemented Find External Usages for packages that requests usages of all methods/fields/inner-classes belonging to classes from a selected package. It may be invoked if the caret is placed over the package declaration as usual Find External Usages action.


  • Hot-fix: most used classes search exception is fixed


  • MP-1709: API Watcher shows usages of hidden static method.
  • Added new actions "Find Most Used API Classes/Methods/Fields", which may be found with Search Action. They request usage statistics from the indexing server and show N most popular classes/methods/fields respectively. You may find most used deprecated/experimental/undocumented API. There is the Copy action available on the resulting tree, which may be useful to share results. There are options to filter API to be processed by package. For methods exclusion by method name regexp is available.


  • Added searching for package usages. Fixed MP-1751
  • MP-1746 Fix commit/push cancellation with Escape key in Dumb mode.


  • MP-1665: Show a warning if user searches for external usages of compile-static constant


  • Fix up 'Find External usages' icon


  • Fix MP-1470: API watcher leaks AST via VirtualFile user data
  • Fix MP-1505: API Watcher reports false properties deletions on any registry property deletion during pre-push checks


  • Add searching for external usages of keys from .properties files: for instance, IdeBundle.message() is invoked with keys from 'message.IdeBundle'. You can invoke 'Find external usages' action when navigated on a property, say 'title.warning' and see its usages in plugins. Also added pre-commit checks for changes in .properties files: the API Watcher would warn you if you delete an externally used .property key.
  • Handle HTTP 404 error in the following case: a plugin had been indexed, and later it was removed from the Plugin Repository. Show a clear message on an attempt to request a class file of such plugin, don't throw an exception.

6.16.0 (important)

  • 'Check external usages' checkbox in the Commit Dialog is restored, and pre-commit API checks work again: the plugin used to fail to detect that the IDEA project is open after the Great Module Rename.


  • Fix AIOOBE caused by use of the thread-unsafe ArrayList in a concurrent environment


  • Update icons
  • Exclude test data from the API checks
  • Handle PIEAE thrown sometimes on the class file de-compilation
  • Fixes of some false-positives


  • Fix PR-974: Pre-push check processes changes for commits made by other developers:
    • from now only the commits of the current user will be checked
    • performance improvement on rebase and force-push of a feature-branch
  • Fix some incorrect warnings on:
    • addition of a new abstract method
    • moving a method or a field upward in the classes hierarchy
    • removing a method that has an implementation in its parent
  • In conflicts panel a new popup option 'Open Current Version' is added. It allows to navigate to the current version of the modified code.

6.1.0 - 6.12.0

  • Various analysis bug fixes
  • Presentation and message fixes


  • More intelligent API conflicts analysis


  • Fix long-running check tasks in Kotlin files
  • Increase the connection timeout: fix the spurious connection failures


  • Check only the commits of the current user before push: rebasing a feature-branch on master and then force-pushing it is not so slow
  • Replace the annoying 'see bytecode' popup with a suggestion on top of the opened class file


  • Fix the LOG.assertTrue errors on some commits

5.9.0 and 5.10.0

  • Fix the 'Read access is allowed from EDT only' problem


  • Hot fix of 5.7.0: fixed highlighting of the Kotlin


  • PR-245: Added pre-push IntelliJ API checks (they are enabled by default and can be disabled in the API Watcher settings)
  • PR-244: More support for working offline: added offline sessions
  • PR-522: Added an option to see the bytecode of the class file containing the usages
  • PR-517: Adjusted Find External Usages panel borders


  • Fixed NoClassDefFoundError on the IDEA merged with Android Studio sources


  • Fixed NoClassDefError during Kotlin classes API check


  • Sources search fixes
  • Multi-selection fixes

5.2.0 and 5.3.0

  • Minor usability fixes
  • Fixes in the server side


  • Saving toggle states
  • A tiny improvement of the methods highlighting in the decompiled code
  • Minor bugfixes


  • Kotlin code usages search (including Kotlin classes, methods and fields)
  • Added check of Java to Kotlin source conversion (do not be surprised that the API Watcher complains on some "deleted" methods: they are actually deleted in the resulting bytecode. In some cases adding the appropriate annotations may help (e.g. if static method is moved to the Companion-Object @JvmStatic is expected)
  • Find External Usages from the Project View
  • Searching for packages works again
  • Added new button in the usages panel: "Open Source code". For the classes of the currently opened Project (i.e. IJ Ultimate project) it will open their current source. For the external plugins which have specified their source-code url (e.g. on it will try to search them and open in the editor. The other button "Open Decompiled class" now serves for loading and opening a .class-file from the Plugin Repository (an actual indexed usage). Don't be surprised if these two files don't match.
  • Added some more intelligent analysis of binary breakages (so decreased an amount of false-positives when the API Watcher complains on a breakage but actually there are no problems) Not all possible cases are considered, so don't hesitate to create new issues on YouTrack.


  • Fixed non-decompiled class-file problem


  • Usability fixes


  • Usages of classes in XML descriptors
  • Various bug fixes


  • Properties search


  • Decompiled code highlighting improvements


  • Various bug fixes


  • Relocation of default indexing server to
  • More correct error handling


  • Various bug fixes


  • Remake of pre-commit dialog (no more unexpected closing)
  • Convenient "Update plugin" button
  • TeamCity-plugin indexed separately


  • More descriptive notifications


  • Added pre-commit check option ("Check external usages") which checks risky IntelliJ API changes (e.g deleting methods, changing access modifiers) since last VCS revision. It checks if there were any usages in external plugins. In case there were some usages, pretty informative usages panel will be shown. Otherwise commit will be passed as always.


  • Request performance improved
  • Added possibility to search package usages
  • Multi-selection in left side double-pane
  • Server auto-updating indices (always recent versions of plugins!)


  • Got rit of annoying read-access exception
  • Now you can discover list of indexed plugins at
  • New icons


  • New icons for different class-types
  • Server-side improvements
  • New error notifications


  • Added notification error when plugin is out-of-date
  • Added support of searching for usages of inherited classes
  • Fixed bug with methods override case


  • Client-server protocol changes
  • Various bug fixes


  • Added support of overriding/implementing methods
  • Got rid of irritating warning


  • Added shortcut for browser
  • Various bug fixes


  • Added expand/collapse all buttons


  • Added show in browser button


  • Got rid of unnecessary IDEA-build setting
  • Added sorting of plugins and classes by name


  • Added new usage type: Class static member access


  • Added navigation by searched element
  • Speed search in results
  • Various bug fixes


  • Added warning messages
  • Added shortcuts


  • Added close button
  • Added group by usage type button
  • Added possibility to load and open class
  • Various bug fixes