Repository navigation
Releases: niawjunior/aipass-bridge
Release list
v0.2.0
The first tagged release. Everything before this was untagged main, so there
was no way to say "upgrade past X" — this is that X.
⚠️ If you cloned or forked before 2 Sep 2026, update
Copies taken before 8cad676
(2026-09-02 21:55 +07) have a bridge that any website you visit can drive —
send messages on your account, read the replies, list your conversation titles,
traverse /logs, kill the browser. It answered every request with
access-control-allow-origin: * and access-control-allow-private-network: true,
unauthenticated. Binding to 127.0.0.1 did not help: the path in was the browser,
not the network.
git pull # then restart the bridge and reload the extensionFull detail in SECURITY.md.
Security
- CORS off by default,
Hostheader validated (closes DNS rebinding), process-control
routes behindAIPASS_ADMIN=1,/logsname allowlisted instead of interpolated. - MIT license added — there wasn't one, which left nobody with clear rights to use or fork this.
Features
- Every model the account has — 34 of them, including image, video and music
generators, grouped the way the web UI groups them.npm run models,?kind=image. - Image generation —
npm run chat -- "แมวน่ารัก" --model gpt-image-2 --ratio 3:4
saves a PNG. Aspect ratio is configurable per request, via/config, orAIPASS_ASPECT_RATIO. - Credit visibility —
npm run credits, a meter in the popup, and the cost of
each agent run. Previously the number lived only in the web UI. npm run doctor— walks bridge → extension → login → credits → conversation →
round trip and names the one thing to fix. Exits 0/1, so it works as a readiness probe.- The agent asks before writing instead of demanding a second full run with
--apply.
One run, one cost, and what you approved is what lands. --helpon every CLI.
Fixes
- Pasting a block into
npm run chatis one message, not one billed request per
line. A 13-line prompt used to become 13 messages, with the model seeing only line 1. - Windows: test harness paths (thanks @meatasit),
SEARCHseparators,chat.mjsexit code. - The MV3 service worker survives with no tab open, via an offscreen document
(thanks @astrathezero) — so the extension stops flapping between attached and gone.
Known gaps
Named rather than hidden: video and music generation are listed but unproven, style
presets are unwired, no test reaches the extension, and the agent's WAF encoding is
not round-trip lossless. See the README.