JustZix features

Nine areas of functionality that solve 90% of the problems people reach for "custom CSS / userscript" extensions to fix. All free, no account, no permission needed from the site author.

{ }

1. CSS and JavaScript injection

Define a URL pattern, write CSS and/or JS code — the extension injects it automatically every time the page loads. Each rule has its own editor with syntax highlighting (CodeMirror).

  • CSS injected via <style> tag in document head — full specificity available.
  • JS executed in the page's MAIN world via chrome.scripting.executeScript — bypasses CSP in 99% of cases, has access to window.
  • Activate / deactivate individual rules with one click on the floating toolbar.
  • Editor has dark/light theme, line numbers, search and a draggable resize bar.
Learn more →

2. Hierarchical organization

Four-level structure that scales from "one quick CSS fix" to "100 rules across 12 client projects". Toggles cascade down the hierarchy.

  • Folder — top level, has its own URL pattern and a 3-letter floating button label.
  • Group — sub-organization within a folder. Each folder has at least one group ("Default" by default).
  • Rule — the actual CSS/JS unit. Belongs to one group. Has optional URL patterns to narrow further.
  • Action — clickable button in the action panel that runs custom JS on demand.
Folder "client-acme"
├── Group "styles"
│   ├── Rule "hide ads"
│   └── Rule "dark mode"
└── Group "actions"
    └── Rule "QA toolbar"
        ├── Action "FILL"
        ├── Action "CLR"
        └── Action "COPY"
Learn more →

3. URL patterns with wildcards

Match by exact URL, whole site, all subdomains, or anything matching a substring. Patterns can stack across folder + group + rule levels for fine control.

  • https://example.com/admin — exact URL only
  • https://example.com/* — all pages on the site
  • https://*.example.com/* — all subdomains
  • *://localhost:*/* — any local app, any port, any protocol
  • *staging* — any URL containing "staging"
Learn more →

4. Floating button

A small round button appears on every page where one of your folders matches. One click toggles all matching folders on/off. The color shows the current state at a glance.

  • Inject Green (or your folder color) — all matching folders enabled.
  • Syntax Orange — some enabled, some disabled (mixed state).
  • Muted Gray — all disabled.
  • Halt Red — extension globally off.
  • Right-click opens a panel with all matching folders/groups/rules to toggle individually.
  • Drag to reposition. Per-window position memory.
Learn more →

5. Action panel — 6 control types

A second floating bar with interactive controls. Each action is one of six types — from a plain button to a slider or a three-state toggle. Each one has a label, a color and an optional keyboard shortcut; the bar remembers its position, and a right-click hides it for the rest of the session.

  • BUTTON — a fire-and-forget button: a click runs JS code.
  • SELECT — a dropdown; static options or JS-generated, picking one fires the action.
  • INPUT — a text field in the bar, command-bar style — type a value and confirm.
  • SLIDER — a slider driving a CSS variable live (e.g. brightness, zoom).
  • TEXTAREA — a multi-line scratch pad, content remembered per domain.
  • TOGGLE3 — a three-state segmented control (e.g. dev / staging / prod).
Learn more →

6. Programmatic APIs — JZ and JUSTZIX

Inside any rule's JS or any action button's code you have access to two globals. window.JZ controls action buttons — call them programmatically, chain workflows, integrate with mutation observers. window.JUSTZIX is a logger that writes straight into the Output Console window — no DevTools needed.

  • JZ.click('LBL') — programmatically click the action button labelled "LBL".
  • JZ.action('LBL') — get the button DOM element (style it, check attributes).
  • JZ.actions() — array of all visible action buttons.
  • JZ.labels() — array of original labels (case preserved).
  • Lookup is case-insensitive. JZ.click('btn') = JZ.click('BTN').
  • JUSTZIX.log() / .warn() / .error() / .info() / .debug() — write an entry to the Output Console (aliases: __JUSTZIX__, JZ.log and so on).
// Action "AUTO" — chain three other actions
JZ.click('LOAD');
setTimeout(() => JZ.click('PROC'), 500);
setTimeout(() => JZ.click('SAVE'), 1500);
Learn more →

7. Cross-device synchronization

A 25-character sync key links your account. All rules, settings and changes propagate in near real time using per-entity Last-Write-Wins with Lamport timestamps.

  • Key generated locally — backend never sees the plain form (only SHA-256 hash).
  • Conflict resolved per-entity — never wholesale overwrite of "all your settings".
  • Tombstones propagate deletes correctly.
  • Login conflict resolution UI: use server / send local / merge LWW.
  • Status tab: sync history, a cloud-library view and a full resync with the account.
  • Idle account cleanup after 12 months (with 30-day warning email).
  • Recovery via email — lost key issues a fresh one.
Learn more →

8. Shares and backups

Two ways to move data: temporary public links to share with others (JZS-XXXX-XXXX-XXXX-XXXX, 1–48 h TTL) and automatic hourly/daily/weekly backups for yourself.

  • Share TTL: 1h / 6h / 12h / 24h (default) / 48h. Token expires automatically.
  • Recipient sees a preview before importing — with a JS warning banner if the bundle contains JavaScript.
  • Five export formats: justzix-full, partial, folder, group, rule.
  • Backups: 24 hourly + 30 daily + 8 weekly, automatic cleanup of older.
  • "My shares" panel with download counter and revoke button.
Learn more →

9. On-page windows — CSS, JS and consoles

Five types of dev windows that render directly on the page — no DevTools. You drag them, snap them edge to edge and join them into a mini-dashboard. Each window can be persistent (tied to a rule) or temporary (TEMP, summoned by a shortcut).

  • CSS pane — a live CSS editor, changes show instantly, content kept per tab.
  • JS pane — a JS editor run on demand with a Run button (Ctrl+Enter).
  • JS Console — an on-page REPL: type, Enter, result; command history with arrows.
  • Output Console — a page-log viewer with 6 counted tabs: All, JZconsole, console.*, Network, errors and dataLayer pushes. The Network tab has domain, size and time filters.
  • AI Helper — a built-in AI assistant (OpenAI / Anthropic / Gemini): inspects the page, tests code in TEMP windows and, once you approve, creates rules.
  • Search in the editors — a bar above every CSS/JS editor: match counter, highlighting, Ctrl+Alt+←/→ shortcuts.
  • TEMP panes — the same windows under Ctrl+Alt+G/H/J/K, ephemeral, gone on reload.
  • Drag & snap & connect — drag windows, snap them by edges, join into groups.
  • Per-window customization — color, font and size from the right-click menu.
Ctrl+Alt+G  →  TEMP CSS pane
Ctrl+Alt+H  →  TEMP JS pane
Ctrl+Alt+J  →  TEMP JS Console
Ctrl+Alt+K  →  TEMP Output Console
Ctrl+Alt+\  →  AI Helper
Learn more →

Try it on your favourite site in 2 minutes.

Free, no account required. Download the ZIP, load as unpacked extension in Chrome, Firefox, Edge or Opera.

Download free See real use cases →