Open-source AI CLI that answers security questions across cloud, code and runtime - GitHub, GitLab, AWS, GCP, Azure, K8s. Ask in plain language: "what's publicly exposed that shouldn't be?" or "can my CI escalate to cloud admin?". Read-only by construction: every call is resolved to its IAM actions and authorized against a read-only policy before credentials attach. It can't modify your infra even if asked. Unlike MCP tools, it writes JS in a sandboxed runtime - a script per turn, not one call.
A debate we had: do we just document how to scope credentials right and leave it to you - or enforce read-only even if you run it with admin creds? We went with enforcing it, despite the tradeoff of keeping up as providers ship new APIs. Pulling permission definitions from each provider (a few MB, daily by default) instead of a static map keeps coverage current automatically. Every API call is resolved to the IAM actions it needs and authorized against the provider's own policy definitions before a credential is attached, failing closed on anything it can't classify. The allowed sets come from the providers themselves (AWS IAM action simulation, GCP role permission eval, Azure RBAC role definitions, the K8s cluster own live view RBAC role) so coverage tracks the APIs as they grow. On AWS, assumed-role credentials are additionally re-vended through STS AssumeRole scoped to SecurityAudit. Every request host is pinned to its mapped service and region and the resolved IP is verified before connecting, so the agent can only reach your own infra. The code execution has no host access and every call is enforced to go through the read-only action gate or it fails.
Enforcing it rather than documenting it is the right call, and "failing closed on anything it can't classify" is the line in your comment that would make me trust this.
The follow-up I would want: what do I actually see when it fails closed? If an unclassifiable call gets skipped quietly, I get an answer that looks complete but is missing an account, a region or a resource type, and no way to know which. In a security context that is worse than an error, because I will act on it. If the run tells me plainly that three calls were refused and this answer therefore excludes X, that is something I can put in front of an auditor.
I ship something whose whole premise is that it cannot act, and the thing that surprised me is that enforcement is not what convinces people. Nobody believes a read-only claim from the description. They believe it when they can check it themselves in about a minute without reading your source. Pulling permission definitions from the providers daily is a strong answer and it is also invisible to the person deciding whether to point this at prod, so it is worth making that checkable from the outside rather than only true on the inside.
@szin makes sense, and redacting secrets before it hits disk is the right default. the part that still nags at me - a local file is exactly the kind of thing that ends up in a laptop backup or synced to some cloud drive without anyone deciding that on purpose. is there a documented way to pipe that audit log somewhere with actual access control, like a SIEM or a locked-down bucket, or is "local file on your machine" the intended end state for now?
the read-only enforcement design is genuinely more thorough than most tools that just document best practice and hope you follow it. one thing I'd want answered before pointing this at a real environment though - the answers this thing produces are basically a complete map of what's exposed and how to get to it. where does that output live once it's generated, and is there any access control on the audit history itself, since that history becomes a pretty valuable target on its own
ran a couple of checks against our AWS setup and the read-only guard is genuinely enforced, not just a claim. the per-turn sandboxed scripts feel like the right way to do this instead of hoping an MCP tool behaves.
Honestly love that the IAM-bound read-only layer is the default, not a setting you have to remember to flip on. Most security tools treat least-privilege as homework, you basically baked it into the call path. That kind of restraint takes real thought.
The promise of investigating cloud infrastructure without risking production is compelling. How do you enforce read-only boundaries, and does every finding include the evidence and cloud resources used to reach it?
fail-closed-by-default on the classification is the right call, but it raises a timing question - you pull permission definitions daily, so what happens on the day a provider ships a brand new API action that isn't in that day's pull yet. does it just refuse to classify it and block the call until the next sync picks it up, or is there some other fallback for that gap window
Shaked — the "script per turn, not one call" design is neat. Curious what happens when one call inside that script hits something outside the read-only gate — full abort, or does it just fail that line and move on? My own agent chains multi-step calls, and one blocked step derailing the whole run is a real pain.
Hi Shaked, the reassurance that it only ever reads and never touches my systems is exactly what would make me brave enough to really poke around a live setup. That peace of mind matters more than people tend to admit.
Enforcing read-only even when someone gives it broader credentials is the part I like here. Relying on everyone to configure access perfectly would probably defeat the point pretty quickly. Congrats on the launch!
About Cynative Security Research Agent on Product Hunt
“Ask your cloud anything without breaking prod. Read-only.”
Cynative Security Research Agent launched on Product Hunt on July 27th, 2026 and earned 102 upvotes and 22 comments, placing #17 on the daily leaderboard. Open-source AI CLI that answers security questions across cloud, code and runtime - GitHub, GitLab, AWS, GCP, Azure, K8s. Ask in plain language: "what's publicly exposed that shouldn't be?" or "can my CI escalate to cloud admin?". Read-only by construction: every call is resolved to its IAM actions and authorized against a read-only policy before credentials attach. It can't modify your infra even if asked. Unlike MCP tools, it writes JS in a sandboxed runtime - a script per turn, not one call.
Cynative Security Research Agent was featured in Open Source (68.7k followers), Developer Tools (516.6k followers) and Security (2.8k followers) on Product Hunt. Together, these topics include over 97k products, making this a competitive space to launch in.
Who hunted Cynative Security Research Agent?
Cynative Security Research Agent was hunted by Ben Lang. A “hunter” on Product Hunt is the community member who submits a product to the platform — uploading the images, the link, and tagging the makers behind it. Hunters typically write the first comment explaining why a product is worth attention, and their followers are notified the moment they post. Around 79% of featured launches on Product Hunt are self-hunted by their makers, but a well-known hunter still acts as a signal of quality to the rest of the community. See the full all-time top hunters leaderboard to discover who is shaping the Product Hunt ecosystem.
Want to see how Cynative Security Research Agent stacked up against nearby launches in real time? Check out the live launch dashboard for upvote speed charts, proximity comparisons, and more analytics.
A debate we had: do we just document how to scope credentials right and leave it to you - or enforce read-only even if you run it with admin creds? We went with enforcing it, despite the tradeoff of keeping up as providers ship new APIs. Pulling permission definitions from each provider (a few MB, daily by default) instead of a static map keeps coverage current automatically. Every API call is resolved to the IAM actions it needs and authorized against the provider's own policy definitions before a credential is attached, failing closed on anything it can't classify. The allowed sets come from the providers themselves (AWS IAM action simulation, GCP role permission eval, Azure RBAC role definitions, the K8s cluster own live view RBAC role) so coverage tracks the APIs as they grow. On AWS, assumed-role credentials are additionally re-vended through STS AssumeRole scoped to SecurityAudit. Every request host is pinned to its mapped service and region and the resolved IP is verified before connecting, so the agent can only reach your own infra. The code execution has no host access and every call is enforced to go through the read-only action gate or it fails.