
Niro
io.github.apxlabs-aiPublished by GitHub account apxlabs-aiv0.1.61Updated Oct 24, 2026
AI pentester for PRs — finds exploitable bugs and hands your developer agent the fix.
Overview
Niro is an AI pentester that attacks your running app to prove exploitable security bugs and opens fix pull requests for your review.
- What you can do
- Set up a target: stand up the app or point at a target, seed test state, and create users and data an attacker needs
- Attack HTTP surfaces such as web apps, APIs and MCP servers, creating missing tenants or logins when testing is blocked
- Prove findings by reproducing each bug with a runnable exploit, demoting anything that cannot be reproduced
- Patch safely fixable bugs with a developer agent and record validation evidence such as a regression test
- Group proven bugs by root cause into focused, review-ready pull requests, and report coverage gaps
- When to use it
- Useful when you want security testing of a running application or API folded into the development loop, with proven findings and draft fix PRs instead of a backlog of maybes. Suited to teams that will still review diffs and decide what merges.
- Requirements
- Runs as a local process on the desktop, installed from the provided package or the install script, from your project root. Needs a running app or a target you supply, a scope configuration authorizing targets, and a supported agent CLI. No environment variables or authentication are declared in the manifest.
Installation
In SourceWeft
- Open Niro in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Niro Community Edition
Finds security bugs. Ships fixes.
Niro works like an autonomous, two-person team living in your repo — two roles with one goal: real security bugs, found and closed with proof.
Niro sets the stage first — it stands up your app (or points at a target you provide), seeds test state, and creates the users and data an attacker needs, so you skip most of the environment setup. Then the two-person team goes to work:
- The attacker agent hits your running app like a real adversary — finds exploitable bugs and proves each with a working exploit. Never changes your code.
- The developer agent patches the bugs it can safely fix and records validation evidence — normally a regression test in the project's suite — so every PR arrives with evidence, not just a claim. Never merges — you do.
Most security tools hand you a backlog of maybes and walk away. Niro doesn't stop at proven findings — in fix mode it turns each into a focused pull request. You review the diffs and decide what ships.
From a three-team relay to one run
Fixing a security bug is a relay across three teams — today's tools each cover one slice, so people stitch the rest together:
- Set up the test environment — engineering.
- Attack the app to find and exploit the bugs — security.
- Triage and fix every finding — developers.
A program manager chases the handoffs, and it's never one clean pass. The pentester needs another test tenant, back to eng. A finding won't reproduce, it ping-pongs between security and dev. A fix ships, security has to re-test. Weeks pass, a dozen people touch it, and the code has already moved on.
Niro collapses that relay into one agent-driven run. Its attacker agent does the security team's job, its developer agent does the dev team's — and it automates the setup engineering used to own. You still set the scope, review the diffs, and decide what merges; Niro handles the back-and-forth in between — so three teams' effort lands in a few hours as review-ready pull requests, grouped by root cause so each is small enough to actually review.
Quickstart
From your project root, check the prerequisites, then install Niro and start a fix run:
niro fix opens the selected agent CLI interactively with Niro's first message
already submitted. The agent CLI applies its own sandbox and approval policy;
not every operation necessarily prompts. For an intentionally unattended run,
--autonomous grants the agent CLI full current-user host access without
approval prompts. Read the agent CLI privilege and threat
model before using it. Niro opens review-ready fix
PRs; you decide what to merge.
See Run Niro for report-only and scoped runs, supported agent CLIs, CI, and interactive developer agent workflows.
What a run actually does
Setup done, Niro works your running app the way a real attacker would — and doesn't stop until each bug is proven:
- Attack — probes your HTTP surfaces (web apps, APIs, MCP servers) for real, exploitable bugs.
- Unblock — when a login, empty database, disabled feature, or missing tenant blocks testing, Niro creates what it needs to keep going instead of silently skipping that part of the app.
- Prove — every finding is a false alarm until Niro reproduces it and leaves a runnable proof. Doubt is demoted, never inflated.
Proven bugs are grouped by root cause into focused, review-ready PRs — one per cause, each with its own validation evidence.
Don't take our word for it
Here is a complete Niro run you can inspect yourself — from the pinned source and public workflow to the unedited report and every proposed code change. Niro tested a public Casdoor demo fork at this exact commit and recorded 33 confirmed findings (9 critical, 12 high, and 12 medium), 3 coverage gaps, and 28 draft remediation PRs.
- Read the full penetration-test report (PDF, 64 pages)
- Inspect the exact GitHub Actions run
- Browse all 28 draft remediation PRs
Three representative fixes:
- Multi-step attack chain: Read and hijack another tenant's LDAP configuration — chains a forged owner segment into cross-tenant configuration disclosure, then overwrites the same record to redirect the victim's LDAP integration to attacker-controlled infrastructure.
- Derive authorization from the resource actually being accessed — closes tenant boundary bypasses caused by validating different identifiers from those the controller used.
- Stop returning replayable session credentials — prevents an organization administrator from replaying another user's live session ID.
Built for trust
AI makes code faster to ship and harder to trust. Niro is built to earn that trust back:
- Your environment, your provider. Niro does not proxy model requests or require uploading your repository, credentials, findings, or logs to a Niro backend. See Security and data for AI-provider boundaries, telemetry, and opt-out controls.
- Host authority is explicit. Local runs are interactive by default;
unattended execution requires
--autonomousand the full host authority it grants is documented in the agent CLI threat model. - You set the blast radius. Attack tools run in a sandbox with kernel-level
egress control — they can reach only the targets you authorize in
scope.yaml, enforced at the network layer. - Transparent coverage. Niro reports what it couldn't reach on every run, so coverage is never a black box — and it remembers intended behavior so it won't keep flagging it. Strongest on the everyday exploitable class; novel, multi-step business logic stays yours.
Niro Enterprise is planned separately for organization-scale governance, audit, compliance, deployment, and commercial support.
Docs
- Get started — prerequisites, installation, and your first run.
- Prepare your app — targets, scope, credentials, fixtures, and test state.
- Run Niro — find or fix, local or CI, whole-app or focused.
- Review the results — findings, exploits, validation evidence, and fix PRs.
- Security and data — data flow, AI providers, sandboxing, egress, and telemetry.
- Agent CLI security — filesystem, command, environment, egress, and prompt-injection boundaries for interactive and autonomous execution.
- Security policy — supported versions and private vulnerability reporting.
- Releases and verification — support lifecycle, version pinning, checksums, image digests, and release notes.
- Coverage and limitations — what Niro tests, what it reports, and where humans remain responsible.
- Reference — commands, flags, and configuration.
- Troubleshooting — common failures, diagnostics, and support artifacts.
Edition and license
Niro Community Edition is free-of-charge, proprietary software distributed as a prebuilt binary. Source code is not provided, and "Community Edition" does not mean open source or source available. This public repository is the documentation and binary-distribution surface; it does not contain Niro product source code.
You may install and use Niro, keep backup copies, and mirror the unmodified binary inside your organization under the Niro Community Edition License Agreement. Public redistribution, resale, modification, and reverse engineering are not permitted. Third-party components remain under their own licenses; see NOTICE.
Issues
Source: README.md at commit 6e94021
Tools
0Version history
1- v0.1.61LatestSep 16, 2026
Score
40% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Declare a license in the repository or the registry entry.