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.
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
- Generate an API key at https://trynoguard.com/account.
- Clone or download the aether-devtools repo.
- Open
chrome://extensions/. Toggle Developer mode in the top-right. - Click Load unpacked and select the
aether-devtools/directory. - Pin the Aether extension to your toolbar.
- Click the toolbar icon, paste your
ak_live_key, hit Save. - 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.
- Generate an API key at
https://trynoguard.com/account. - Open
about:debugging#/runtime/this-firefox. - Click Load Temporary Add-on… and select
aether-devtools/manifest.json. - Click the puzzle-piece icon, find Aether, paste your key.
- Open DevTools. Click the Aether tab.
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.
| Mode | What it does | Endpoint |
|---|---|---|
| Chat | Direct uncensored chat, no refusal layer. | /api/v1/chat |
| Deobfuscate JS | Cleans Obfuscator.io / JScrambler / custom packers. Outputs readable JS + analysis of what the obfuscator was protecting. | /api/v1/deobfuscate_js |
| Explain code | Walks through any source / decompiled C / Hex-Rays output. Identifies CRC, hash, signature, anti-debug patterns. | /api/v1/explain_code |
| Explain disasm | Line-by-line walkthrough of x86 / x86_64 / ARM / ARM64 / MIPS disassembly. Set arch in the hint field. | /api/v1/explain_disasm |
| Identify pattern | Names the technique/family — packers, anti-cheat, crypto algorithms, malware signatures, anti-VM, anti-debug. | /api/v1/identify_pattern |
Common workflows
Web RE / bug bounty
- Open the target site, open DevTools, find a minified script in the Network panel.
- Right-click the response → Copy → Copy response. Paste into the Aether panel in Deobfuscate JS mode.
- Get cleaned JS + an explanation of what the script is doing — auth signing, fingerprinting, paywall enforcement, etc.
Anti-bot research
- Capture a Cloudflare / Datadome / PerimeterX challenge bundle from the Network tab.
- Paste into Identify pattern with hint
anti-bot WASMorJScrambler v8. - 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.
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.
| Permission | Why we need it |
|---|---|
| storage | Persist your API key + (optional) custom base URL via chrome.storage.sync. Synced across browsers when you sign into your Google profile. |
| contextMenus | Add the right-click menu items on selected text. Without this, the context menu integration doesn't work. |
| activeTab | Read 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. |
Privacy
- API key is stored in
chrome.storage.sync, scoped to your browser profile and synced across signed-in browsers. Never sent anywhere excepthttps://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
Conversationrows, noMessagerows persist server-side. Only credit accounting.
Troubleshooting
Aether tab doesn't appear in DevTools
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
/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
Network panel responses are too big to paste
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
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?
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`
Self-hosting / pointing at a non-trynoguard backend
Related docs
- aether CLI reference
Same Aether tools in your terminal — agentic mode, REPL, slash commands.
- aether-mcp reference
Same Aether tools inside Claude Desktop, Cursor, Cline, Zed via Model Context Protocol.
- All docs
Index of every Aether surface — CLI, MCP, DevTools, REST API.
- Security & bug bounty
Find a bug in the extension? We pay for valid reports.