Detect · Extract · Export · Import
A powerful browser extension for reverse-engineering Elementor-powered WordPress sites —
extract global styles, colors, typography, and export them as ready-to-import Elementor Kits.
EleSpy is a browser extension built for WordPress developers and designers who work with Elementor. It lets you inspect any Elementor-powered site, extract its complete design system (colors, typography, CSS variables), and export everything as a standard Elementor Kit — ready to import into your own project in seconds.
Use case: You're building a site inspired by an existing Elementor design. Instead of manually copying colors and fonts one by one, EleSpy extracts the full design token set and packages it into an importable Kit JSON.
| Category | Capability |
|---|---|
| 🌐 Server Intelligence | Detect server type, CDN provider, SSL/TLS status |
| 📦 CMS Detection | Identify WordPress version and installation details |
| ⚡ Elementor Detection | Detect Elementor version, Kit ID, and Pro license status |
| 🎨 Style Extraction | Extract global colors, typography scales, and all CSS variables |
| 📤 Kit Export | Generate a full Elementor Kit JSON file for direct import |
| 🖌️ CSS Export | Download extracted CSS variables as a standalone stylesheet |
| 📋 Clipboard Support | Copy Kit JSON or CSS directly to clipboard |
| 📚 Import Guide | Built-in step-by-step instructions for all import methods |
- Node.js ≥ 18
- npm ≥ 9
git clone https://github.com/Hordekiller/EleSpy.git
cd EleSpy
npm install
npm run build:chrome- Open
chrome://extensions/ - Enable Developer mode (top-right toggle)
- Click Load unpacked
- Select the generated
dist/folder
npm run build:firefox- Open
about:debugging - Click This Firefox
- Click Load Temporary Add-on
- Select
manifest.jsoninside thedist/folder
# Install dependencies
npm install
# Start dev server (Chrome, with HMR)
npm run dev
# Start dev server (Firefox)
npm run dev:firefox
# Production build
npm run build:chrome
npm run build:firefox
npm run build:all # Both targets
# Package as .zip for store submission
npm run zip:chrome
npm run zip:firefox
npm run zip:all
# Code quality
npm run lint # ESLint check
npm run lint:fix # Auto-fix lint issues
npm run format # Prettier format
npm run typecheck # TypeScript type check
npm run test # Vitest unit testsEleSpy/
├── src/
│ ├── background/ # Service worker / background script
│ ├── content/ # Content scripts injected into pages
│ ├── popup/ # Extension popup UI
│ ├── sidepanel/ # Side panel for detailed analysis
│ └── utils/ # Shared detection & extraction utilities
├── wxt.config.ts # WXT framework configuration
├── tsconfig.json
└── package.json
- Navigate to any WordPress site running Elementor
- Click the EleSpy icon in your browser toolbar
- View the detected server, CMS, and Elementor metadata in the popup
- Click "Extract Styles" to analyze global colors, typography, and CSS variables
- Open the Side Panel for full analysis details and export controls
- Export as Kit JSON or CSS — or copy directly to clipboard
| Format | Description |
|---|---|
| Kit JSON | Complete Elementor Kit — import directly via WordPress admin |
| CSS Variables | Raw CSS custom properties for manual integration |
| Clipboard | Copy either format instantly, no file download needed |
Method 1 — Elementor Kit Import (Recommended)
- Download the Kit JSON from EleSpy
- Go to WordPress Admin → Elementor → Tools → Import/Export Kit
- Click Import Kit
- Select the downloaded
.jsonfile - Choose which global settings to apply and click Import
Method 2 — Elementor Custom CSS
- Copy the CSS Variables from EleSpy
- Go to WordPress Admin → Elementor → Settings → Custom CSS
- Paste the CSS variables
- Save changes
Method 3 — Theme Customizer
- Copy the CSS Variables from EleSpy
- Go to Appearance → Customize → Additional CSS
- Paste the variables
- Click Publish
| Permission | Reason |
|---|---|
activeTab |
Read the current page to detect Elementor and extract styles |
scripting |
Inject content scripts for DOM analysis |
storage |
Persist settings and cached extraction results |
clipboardWrite |
Copy Kit JSON or CSS to clipboard |
sidePanel |
Open the detailed analysis panel |
EleSpy does not collect, transmit, or store any data externally. All processing happens locally in your browser.
| Tool | Role |
|---|---|
| WXT | Cross-browser extension framework (Manifest V3) |
| TypeScript 5.4 | Type-safe development |
| webext-bridge | Messaging between extension contexts |
| Vitest | Unit testing |
| ESLint + Prettier | Code quality & formatting |
| Husky + lint-staged | Pre-commit hooks |
Contributions are welcome! Here's how to get started:
# Fork the repo, then:
git clone https://github.com/YOUR_USERNAME/EleSpy.git
cd EleSpy
npm install
npm run dev- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes and write tests if applicable
- Run
npm run lint && npm run typecheck && npm run test - Commit:
git commit -m "feat: description of your change" - Push and open a Pull Request
Please follow Conventional Commits for commit messages.
- ✅ Server & CDN detection
- ✅ WordPress & Elementor CMS detection
- ✅ Elementor version, Kit ID, and Pro status detection
- ✅ Global colors, typography, and CSS variable extraction
- ✅ Elementor Kit JSON export
- ✅ CSS export and clipboard support
- ✅ Built-in import instructions
Distributed under the MIT License. See LICENSE for details.
Made with ❤️ for the WordPress & Elementor community