1. Ease of distribution - distributing a precompiled wasm blob is immensely easier than distributing an application
2. Sandboxing - both on the fs level and regarding special permissions, which brings us to
3. Stronger capabilities - you can use the terminal workspace around you by manipulating panes, tabs and other plugins, creating a workspace experience rather than a single app
4. More knowledge about the application - want to trigger when the user enters a certain folder? When a certain pane is focused? When certain text appears on screen?
5. Composability - integrate with other plugins to render a dashboard-like experience rather than a single app that a user needs to manually compose
While some of these are also achievable with native apps, I have found that if you give users (developers in this case) opinionated defaults that make integration easier - you'll get more people building more interesting things. Even if they technically can implement them all on their own.
A few reasons:
1. Ease of distribution - distributing a precompiled wasm blob is immensely easier than distributing an application
2. Sandboxing - both on the fs level and regarding special permissions, which brings us to
3. Stronger capabilities - you can use the terminal workspace around you by manipulating panes, tabs and other plugins, creating a workspace experience rather than a single app
4. More knowledge about the application - want to trigger when the user enters a certain folder? When a certain pane is focused? When certain text appears on screen?
5. Composability - integrate with other plugins to render a dashboard-like experience rather than a single app that a user needs to manually compose
While some of these are also achievable with native apps, I have found that if you give users (developers in this case) opinionated defaults that make integration easier - you'll get more people building more interesting things. Even if they technically can implement them all on their own.