SSMS is abbreviation of SQL Server Management Studio, according to Microsoft description it is “an integrated environment for accessing, configuring, managing, administering, and developing all components of SQL Server. SQL Server Management Studio combines a broad group of graphical tools with a number of rich script editors to provide access to SQL Server to developers and administrators of all skill levels”.
Microsoft enables developers to enhance or alter features of their development tools (SSMS in this case) by creating “add-in” (or addin). Add-In is software component which is installed on same computer as SSMS and is fully integrated in dev. environment. Fully integrated means that your add-in is loaded when SSMS is starting and begin to do its job. SSMS addins are written in .NET and utilize SSMS internal object model (or “services”) to achieve their goal. One big issue on SSMS addins development is that mentioned object model (or its interfaces) sometimes dramatically differs from one SQL version to the other. It really depends on addin logic if “version inconsistent” interfaces will be hit.
Who is interested in more deeper implementation view, read e.g. this article.