46,961
stars
+2
4,167
forks
533
watchers
1,012
prs
4,044
issues
197
releases
376
discussions
README
Monaco Editor The Monaco Editor is the fully featured code editor from VS Code. Check out the VS Code docs to see some of the supported features. !image Try it out Try out the editor and see various examples in our interactive playground. The playground is the best way to learn about how to use the editor, which features is supports, to try out different versions and to create minimal reproducible examples for bug reports. Installing npm install monaco-editor You will get: - inside /esm: ESM version of the editor (compatible with e.g. webpack) - monaco.d.ts: this specifies the API of the editor (this is what is actually versioned, everything else is considered private and might break with any release). :warning: The monaco editor also ships an AMD build for backwards-compatibility reasons, but the AMD support is deprecated and will be removed in future versions. Localization To load the editor in a specific language, make sure that the corresponding nls script file is loaded before the main monaco editor script. For example, to load the editor in German, include the following script tag: html Check the sources for available languages. Concepts Monaco editor is best known for being the text editor that powers VS Code. However, it's a bit more nuanced. Some basic understanding about the underlying concepts is needed to use Monaco editor effectively. Models Models are at the heart of Monaco editor. It's what you interact with when managing content. A model represents a file that has been opened. This could represent a file that exists on a file system, but it doesn't have to. For example, the model holds the text content, determines the language of the content, and tracks the edit history of the content. URIs Each model is identified by a URI. This is why it's not possible for two models to have the same URI. Ideally when you represent content in Monaco editor, you should think of a virtual file system that matches the files your users are editing. For example, you could use file:/// as a base path. If a model is created without a URI, its URI will be inmemory://model/1. The number increases as more models are created. Editors An editor is a user facing view of the model. This is what gets attached to the DOM and what your users see visually. Typical editor operations are displaying a model, managing the view state, or executing actions or commands. Providers Providers provide smart editor features. For example, this includes completion and hover information. It is not the same as, but often maps to language server protocol features. Providers work on models. Some smart features depends on the file URI. For example, for TypeScript to resolve imports, or for JSON IntelliSense to determine which JSON schema to apply to which model. So it's important to choose proper model URIs. Disposables Many Monaco related objects often implement the .dispose() method. This method is intended to perform cleanups when a r
Top issues
#264Add support for JSX59 comments · 2016-11-14#886ESM and CSS loading57 comments · 2018-05-18#953Provide ability to block editing specific lines56 comments · 2018-07-10#338Changing theme in one editor should change all editors50 comments · 2017-01-24#3409[Bug] HoverProvider does not work inside of Webcomponent (ShadowRoot)36 comments · 2022-11-13#246Any Plan for Mobile35 comments · 2016-10-25#115Is there an initialized or ready event?33 comments · 2016-08-19#45API to hide parts of the code32 comments · 2016-07-01
Discussions
#5550Questions about monaco-lsp-client: migration from monaco-languageclient and roadmap1 comments · 2026-10-23#5496The version of monaco-editor displayed on the page is outdated.1 comments · 2026-09-30#5431REMOSSH: using Monaco as a browser editor for remote SSH servers0 comments · 2026-08-03#5387Type definitions for some classes1 comments · 2026-07-16#5304What would be considered " TOO MUCH " for a MONARCH JSON1 comments · 2026-04-21#5215Standalone service instance0 comments · 2026-02-05#5204Monaco Editor with XYFlow fails to accept most space bar keypresses, who is at fault?1 comments · 2026-01-27#5183[question] Can we build inline diff without showing the line number of original content1 comments · 2026-01-12
Latest release
v0.57.0 v0.57.0 2026-09-24Changes: 5487: Prepare Monaco Editor 0.57.0 release 5415: Bump uuid and webpack-dev-server in /website 5476: Bump baseline-browser-mapping from 2.9.19 to 2.11.21 in /website 5474: Bump svgo from 2.8.3 to 2.8.4 in /samples/browser-esm-parcel 5479: Bump actions/deploy-pages from 5.0.0 to 5.0.1 in the github-actions group 5468: Bump browserslist from 4.28.1 to 4.28.8 in /website 5475: Bump js-yaml from 4.3.1 to 4.3.2 5470: Bump fast-uri from 3.1.2 to 3.1.7 in /webpack-plugin 5469: Bump nanoid from 3.3.11 to 3.3.18 in /webpack-plugin 5467: Bump fast-uri from 3.1.5 to 3.1.7 in /samples/b