Build with agents. Red-team for bugs. Formally verify properties. Bring security into your development workflow, from application logic to the running web app.
curl -fsSL https://h5i.dev/install.sh | sh -s -- --websec --test
The problem
Is the Web App Your AI Built Really Secure?
AI agents make it easy to ship code. Making sure that code is secure is still difficult.
01 / Red-teaming
Expert hackers are expensive. Red-teaming AI can go rogue.
Professional red teams are expensive, and AI agents can run out of control. Effective security testing needs both the right tools and enforceable limits on what agents can do.
02 / Formal verification
Proving correctness is hard.
Writing code is easier than proving it correct. Ruling out bugs requires precise specifications, explicit assumptions, and proofs that the implementation satisfies them.
⟹ You need a loop: find vulnerabilities, prove correctness, repeat.
Security testing / Any stack
Professional Red-Teaming for Every Team
Use h5i with the web app you already have. Browser automation and direct HTTP control let your agent
inspect application behavior and investigate security issues. No framework migration required.
Use it only on applications you own or are authorized to test.
$h5i browser open https://shop.example.test \ --capture --session checkout-idor# keep every message$h5i browser snapshot# the page as an outline$h5i browser click @e7# drive it like a user$h5i websec requests --human# what the session sent #107 GET /checkout?order=1041 200 2.1 kB #108 GET /api/order/1041 200 1.4 kB$h5i websec show req_108 --raw GET /api/order/1041 HTTP/1.1 host: shop.example.test$h5i websec replay req_108 --set path=/api/order/1042 res_109 200 1.9 kB$h5i websec diff res_108 res_109 --human status : 200 → 200 bytes : 1412 → 1903 (+491) alike : 0.712# Optional: run the same session inside a container.$h5i box --isolation container --name sandbox$h5i browser open https://shop.example.test --in sandbox$▌
replaying req_108 with order=1042 answered 200 with a different tenant’s order: 1412 → 1903 bytes, alike 0.712
the same replay with order=9001 was refused before the wire, so the probe stayed inside the two test tenants
idorunconfirmedh5i websec finding list --session checkout-idor
all 37live 29found, never sent 6gone 2probes
state
method
endpoint
status
learned from
evidence
live
GET
shop.example.test/api/order/{id}
200
history
req_109
live
POST
shop.example.test/api/pay
402
history
req_110
live
GET
shop.example.test/api/cart
200
history
req_93
found
GET
shop.example.test/api/order/export?from&to
link in /checkout
never sent
found
GET
shop.example.test/admin/orders
robots.txt
never sent
gone
GET
shop.example.test/api/v1/order
404
probe
req_61
6 of 37 endpointsthe ledger: h5i recon endpoints --session checkout-idor
Engine-claimed: the request log is the engine’s own account of what it fetched. It is fail-closed, so a fetch that is not in it did not happen, but nothing outside the engine vouches for it.
state
live
engine
h5i-light
identity
alice
policy
a1f4c9e70b32
capture
on: 128 messages stored, owner-only
control
the agent
h5i browser status --session checkout-idorh5i browser audit --session checkout-idor
alice/sandbox
containerbrowserrefused
EvidenceBrowser
The egress allowlist refused 2 requests to px.example.invalid:443.
3 of 9 runs2 refusedthe receipts: h5i box status sandbox
Explore your app automatically
Your agent can read pages, click, type, and extract data through compact snapshots.
Test HTTP requests directly
Your agent can capture traffic, inspect and edit requests, replay them, and compare responses.
Sandboxed workflow
Sandbox the browser or the entire AI agent workflow, with configurable network
and filesystem limits.
Application framework / Rust + Lean 4
Formal Verification for Every Team
Build on Axum with a Rust application kernel that can be extracted into Lean 4.
State the rules your app must preserve, then check proofs against that logic.
h5i is an open-source, agent-native workspace for secure web development. It provides browser and HTTP security testing, regression checks in CI, and configurable sandboxing. The companion i5h framework lets developers prove properties of Rust application logic in Lean 4; integration as h5i-app is planned.
Do I need to rewrite my app in Rust?
No. The browser, HTTP testing tools, and security regression tests work with existing web applications in any language. The application framework is optional, for teams that want to write and verify application logic in Rust. It is available today in the separate i5h repository, with its own documentation and tutorials; its integration into h5i as h5i-app is planned.
Does a proof mean my entire app is secure?
No. A proof establishes a stated property of the verified logic under explicit assumptions. It does not establish that every route, authentication adapter, dependency, or deployment is correct. Testing and review are still needed at those boundaries.
Do I need to be a security expert to use h5i?
No. You tell your agent what to check in plain language, for example whether one user can read another user's orders. The agent explores the app in the browser, captures the requests behind each action, then edits and replays them to test the idea. Every request and response is recorded, so you, or a security reviewer later, can check the evidence behind a finding. Only test applications you own or are authorized to test.
Is h5i an automated vulnerability scanner?
No. h5i does not run a fixed list of checks against a URL and hand back a report. It gives your agent the tools a professional tester uses, and the agent decides what to try. Once a finding is confirmed, h5i test can replay it as a flow in CI, so a fixed issue stays fixed.
How does h5i compare with Playwright, Puppeteer, or Burp Suite?
Playwright and Puppeteer are the right choice when maximum website compatibility is the priority. Burp Suite is the right choice when an experienced tester wants the deepest workbench: an intercepting proxy, Scanner, Intruder, and extensions. h5i is for the case where your own AI agent runs the test end to end: one session drives the browser and records its traffic, and the agent edits, replays, and compares requests through a CLI built for it, inside a sandbox with a reviewable record. See the Burp Suite comparison.
Does h5i work on every website?
No. h5i works best for content-heavy websites and common browser interactions, but some browser APIs are not yet supported. For incompatible websites, you can run Chromium inside an h5i sandbox.
How is the agent contained?
The browser uses lightweight process isolation when available. To restrict the agent's other tools as well, sandbox the entire workflow and configure its network and filesystem policy; the options are supervised isolation, containers, and microVMs, and enforcement depends on the selected tier and host support. This limits what a misled agent can reach, but it does not prevent prompt injection: a tested application can still mislead the agent on a target you allowed.
Where do my credentials and data go?
Credentials stay out of the model. The agent references a named credential without reading its value, or a human takes control to log in, and the authenticated session continues without returning the password or cookie. h5i has no hosted service and stores its sessions locally. Browser traffic still goes to the websites you allow, and model traffic goes to your configured model provider.
Find Vulnerabilities. Prove Correctness.
Start with security testing on your existing app, or explore verifiable Rust application logic.
Open source, local-first, and designed to work with your own agent.
curl -fsSL https://h5i.dev/install.sh | sh -s -- --websec --test