Theia Plugins

  1. Does plugin enable a “one time” action?
    Is Extension the right approach for continuously bg running process

2)When/why does a plugin fall in the ~/.theia/plugins location. Is it on “theia pack” ?


[original thread by Shashank Polasa]

  1. Could you elaborate on “one time” action?

Is this process async or always sync? Sync process will block Theia extensions and plugins. You will need to fork it in any case. Async process can be fine in both cases.

  1. Only when they are installed by a user.

[Shashank Polasa]

thanks for the reply. to clarify:

  1. I see plugins can enable statusBar / toast notifications. Can it do a background running process to watch for file changes & then trigger another process? or is an Extension a better approach

  2. How does one install a plugin. It showed up magically in ~/.theia/plugins. I’m not sure which action I did caused it.

What Theia do you use? Some end product, docker image? Plugins should not show up in these location by default. That’s a location for plugins installed by a user via UI.

With VS Code extension you can use whatever runtime want. It is Node.js process, you can listen to file changes, spawn other processes and so on.

You can do the same with the backend entry module of Theia extenison.

The decision whether to use one or another is about whether you want to reuse such functionality between VS Code and Theia based IDEs. If you don’t want to then you can go with Theia extension and don’t bother with the extension host process. If you need to reuse then build VS Code extension.

[Shashank Polasa]

Using a custom build (
Pretty sure I haven’t installed any plugin via UI, anyways…

I’m looking for functionality that helps both on frontend & backend (like listening to file changes, spawning processes). Targeting Theia only, not VS Code.

What is the right place for learning regarding this?
Docs ( is rudimentary right now
Are the non-core @theia modules (eg: @theia/terminal) built as extensions?

How to develop Theia extension:

All packages including the core are extension packages.

[Shashank Polasa]

thats great! thank you