Overview
Epos (ἔπος, “epic story”; pronounced EH-poss) is an opinionated engine for building Chromium browser extensions with React.
While frameworks like WXT and Plasmo prioritize flexibility, Epos focuses on a zero-config experience with powerful features that work out of the box.
Installation
Epos is not an npm package. Instead, the engine is a browser extension installed from the Chrome Web Store. In other words, Epos is an extension for building other extensions.
Workflow
Once installed, the workflow is straightforward:
- Connect: Link your local project folder to Epos.
- Develop: Epos runs your code directly in the browser.
- Export: Ready to ship? Click the Export button to get a standalone ZIP file.
Philosophy
Epos is not a universal framework. It focuses on a specific tech stack to reduce setup and complexity.
The engine rethinks how extensions are built, making trade-offs that allow a smoother developer experience and powerful built-in features.
Epos prioritizes ease of use for the most common use cases, even if that means giving up some flexibility.
What You Get
At a high level, Epos gives you:
- A cross-context messaging system.
- Shared state with persistence and sync.
- Storage for files and other data.
- Extension APIs available in any context.
- Automatic script injection + Shadow DOM.
- A simpler setup through
epos.json.
Core Constraints
- React: Epos is built around React.
- Chromium: Firefox and Safari are not supported.
- Manifest V3: No support for the legacy Manifest V2.
- No HMR: Live reload is available, but hot module replacement is not.
- No Source Maps: Epos injects its runtime into your code, so source maps do not work.
- Permissions: Certain manifest permissions are required and cannot be omitted.
These constraints are intentional trade-offs that make Epos's features possible. You can learn more about them in the Features section.
Is It for You?
Epos fits best if you want to build a Chromium extension with React. The engine gives you a powerful toolset with minimal setup. It has reasonable defaults for most use cases and can be customized when needed.
However, if you need support for non-Chromium browsers, require specific Chrome APIs, or want full manual control over configuration, Epos might not be the right choice.