Eject
Eject lets you export built-in extensions (like Journal, Monaco Editor) to user-space so you can edit and customize them.
How It Works
Section titled “How It Works”Built-in extensions run directly in the app for best performance. When you eject one:
- Its TypeScript source code is extracted
- Compiled to JavaScript
- Saved as a regular user extension with the
ejected/prefix
Example: Customizing Journal
Section titled “Example: Customizing Journal”Let’s say you want to customize the built-in Journal extension:
- Go to Settings → Extensions
- Find Journal and click Eject
- Now you’ll see
ejected/journal/indexin the extensions list - Click to preview it — it works just like the original Journal
- Edit the code to customize (change styles, add features, etc.)
- Pin it — Add your ejected Journal to the left sidebar tabs as a quick entry point
- Your customized Journal now appears in the sidebar alongside the default one
Multi-File Extensions
Section titled “Multi-File Extensions”Some extensions (like Journal) have multiple files. Each file becomes a separate extension:
ejected/journal/index— main componentejected/journal/use-journals— dependencyejected/journal/utils— utilities
Important Notes
Section titled “Important Notes”| Built-in | Ejected | |
|---|---|---|
| Editable | ❌ No | ✅ Yes |
| Performance | Native | Slight sandbox overhead |
| Updates | Auto | Manual (re-eject to update) |
| Runs in | Main app | iframe sandbox |
Use Cases
Section titled “Use Cases”- Customize — Change styles, add features to Journal
- Learn — Study how Monaco Editor works
- Fork — Build your own version of Media Preview
Troubleshooting
Section titled “Troubleshooting”“Already Ejected” error — Delete the existing ejected extension first.
Which version is used? — Both extensions are available. For some extension types (like File Handlers), you may see both options. Disable the built-in one if you only want your customized version.
View source code — You can browse the source code of all built-in extensions at github.com/mayneyao/eidos/tree/dev/extensions