Docs·Browser · Manifest v3·aether-devtools

aether-devtools

Manifest v3 browser extension for Chrome, Firefox, Edge, and Brave. Adds an Aether tab inside DevTools (next to Console / Network / Sources). Right-click any selection on a page → context menu sends it to the panel. Five modes — chat, deobfuscate JS, explain code, explain disasm, identify pattern.

1

What it is

An extension that lives inside browser DevTools. The audience: web RE, bug bounty hunters, pentesters, anti-bot researchers — anyone who already has DevTools open all day and wants uncensored AI inline with the page they're inspecting.

Three surfaces inside one extension: a DevTools panel (5 modes), a right-click context menu on selected text, and a toolbar popup for balance + key management.

2

Install

While the extension is in early access, you load it unpacked from the source. Chrome Web Store / Firefox AMO listings will follow.

Chrome / Edge / Brave

  1. Generate an API key at https://trynoguard.com/account.
  2. Clone or download the aether-devtools repo.
  3. Open chrome://extensions/. Toggle Developer mode in the top-right.
  4. Click Load unpacked and select the aether-devtools/ directory.
  5. Pin the Aether extension to your toolbar.
  6. Click the toolbar icon, paste your ak_live_ key, hit Save.
  7. Open DevTools (Ctrl+Shift+I / ⌘⌥I) on any page. Click the Aether tab.

Firefox

Firefox supports MV3, but temporary add-ons unload when the browser closes. For a persistent install, sign with web-ext sign + your AMO credentials.

  1. Generate an API key at https://trynoguard.com/account.
  2. Open about:debugging#/runtime/this-firefox.
  3. Click Load Temporary Add-on… and select aether-devtools/manifest.json.
  4. Click the puzzle-piece icon, find Aether, paste your key.
  5. Open DevTools. Click the Aether tab.
3

The 5 modes

Each mode hits a different specialized endpoint with a curated system prompt. The pill buttons at the top of the panel switch between them.

ModeWhat it doesEndpoint
ChatDirect uncensored chat, no refusal layer./api/v1/chat
Deobfuscate JSCleans Obfuscator.io / JScrambler / custom packers. Outputs readable JS + analysis of what the obfuscator was protecting./api/v1/deobfuscate_js
Explain codeWalks through any source / decompiled C / Hex-Rays output. Identifies CRC, hash, signature, anti-debug patterns./api/v1/explain_code
Explain disasmLine-by-line walkthrough of x86 / x86_64 / ARM / ARM64 / MIPS disassembly. Set arch in the hint field./api/v1/explain_disasm
Identify patternNames the technique/family — packers, anti-cheat, crypto algorithms, malware signatures, anti-VM, anti-debug./api/v1/identify_pattern
4

Right-click context menu

Select any text on a webpage (Stack Overflow answer, blog post code block, GitHub snippet, network response in DevTools) and right-click. Three menu items are added:

  • Aether: Explain selected text — opens the panel in chat mode with the selection prefilled
  • Aether: Deobfuscate selected JS — opens the panel in deobfuscate mode with the selection prefilled
  • Aether: Identify pattern in selection — opens the panel in identify mode
5

Common workflows

Web RE / bug bounty

  1. Open the target site, open DevTools, find a minified script in the Network panel.
  2. Right-click the response → Copy → Copy response. Paste into the Aether panel in Deobfuscate JS mode.
  3. Get cleaned JS + an explanation of what the script is doing — auth signing, fingerprinting, paywall enforcement, etc.

Anti-bot research

  1. Capture a Cloudflare / Datadome / PerimeterX challenge bundle from the Network tab.
  2. Paste into Identify pattern with hint anti-bot WASM or JScrambler v8.
  3. Aether names the family and outlines the detection layers.

Quick "what does this do?"

Highlight any code or assembly snippet on a webpage. Right-click → Aether: Explain selected text. The panel opens with the selection prefilled and the answer streams in.

6

Permissions explained

The extension requests four permissions at install. Here's what each one is actually for — the principle of least privilege applies, and there's nothing surprising.

PermissionWhy we need it
storagePersist your API key + (optional) custom base URL via chrome.storage.sync. Synced across browsers when you sign into your Google profile.
contextMenusAdd the right-click menu items on selected text. Without this, the context menu integration doesn't work.
activeTabRead selection text only when you invoke a context-menu action — i.e. on user gesture. Cannot read your tabs in the background.
host_permissions: <all_urls>Required so the right-click menu appears on every site. The extension does NOT make outbound requests to those sites — it only talks to trynoguard.com.
7

Privacy

  • API key is stored in chrome.storage.sync, scoped to your browser profile and synced across signed-in browsers. Never sent anywhere except https://trynoguard.com.
  • The extension does NOT read page content automatically. It only reads what you explicitly send (selected text, pasted input, manually-copied responses).
  • No telemetry, no error reporting, no usage tracking.
  • Source is plain ES modules under aether-devtools/. No bundler, no minification — read it before installing.
  • Same backend privacy guarantees as the rest of Aether: no Conversation rows, no Message rows persist server-side. Only credit accounting.
8

Troubleshooting

Aether tab doesn't appear in DevTools
Reload the extension at chrome://extensions/ (the refresh icon on the card), then close DevTools entirely and reopen it. Chrome only registers DevTools panels on DevTools open.
Toolbar popup says 'Key invalid or missing' even though I just pasted it
Make sure you clicked Save after pasting. The popup also runs a live/api/v1/me check on save — if your key was just revoked or has a typo, you'll see this here. Generate a fresh key at https://trynoguard.com/account.
The right-click menu shows the items but clicking does nothing
The DevTools panel must be running for the prefill to land. Open DevTools first, click the Aether tab, then right-click your selection on the page.
Network panel responses are too big to paste
The Aether endpoints accept up to 40,000 characters per call. For larger responses, use the aether-code CLI: aether "deobfuscate the file at ./response.js". The agent reads the file directly so the size limit doesn't apply.
HTTP 402 — out of credits
Top up at https://trynoguard.com/pay. The popup shows your live balance — keep it pinned to the toolbar so you can see when you're running low.
Why does the extension request `<all_urls>` host permissions?
Manifest v3 requires host permissions for context menus to appear on a page. The extension does NOT use this permission to make outbound HTTP requests to those sites — only https://trynoguard.com is contacted, and only when you explicitly invoke a tool. Source is ~50KB of unminified ES modules; auditable in 10 minutes.
I can't load unpacked on stable Chrome — `--load-extension is not allowed`
That CLI flag is blocked on stable Chrome as a security policy, but Load unpacked from chrome://extensions/ still works. The blocked path is the command-line one. If you want CLI loading for automated testing, use Edge (also Chromium-based) or Chrome Canary.
Self-hosting / pointing at a non-trynoguard backend
Click the toolbar icon, then the gear icon to open the full options page. Set a custom Base URL there. Useful for self-hosted Aether or staging deployments.
aether-devtools — install & reference | Aether · Aether