Observed since 20 Oct, 23:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
Read-only scanner for exposed AI/agent services: detects unauthenticated endpoints on standard ports and enumerates their API surface.
█████╗ ██████╗ ███████╗███╗ ██╗████████╗███████╗ ██████╗ █████╗ ███╗ ██╗
██╔══██╗██╔════╝██╔════╝████╗ ██║╚══██╔══╝██╔════╝██╔════╝██╔══██╗████╗ ██║
███████║██║ ███╗█████╗ ██╔██╗ ██║ ██║ ███████╗██║ ███████║██╔██╗ ██║
██╔══██║██║ ██║██╔══╝ ██║╚██╗██║ ██║ ╚════██║██║ ██╔══██║██║╚██╗██║
██║ ██║╚██████╔╝███████╗██║ ╚████║ ██║ ███████║╚██████╗██║ ██║██║ ╚████║
╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝
made by JohnDoeAnon in collaboration with AnonymousITALIA
Read-only scanner for exposed AI / LLM / agent services.
AgentScan finds AI services listening on standard ports that answer without authentication, identifies what they are, and enumerates their API endpoints — so you can see exactly what is exposed. It never writes, never sends prompts, and never executes anything on the target: only HTTP GET requests are issued.
Use it only against assets you own or are explicitly authorised to test.
/openapi.json),
per-service catalog, the shared OpenAI-compatible surface, an aggressive
path sweep, and fingerprinting evidence.pip install agentscan-py
(run with the agentscan command)
Note: the distribution name is
agentscan-pybecauseagentscanis already taken on PyPI by an unrelated project.
Or from source:
git clone https://github.com/JohnDoeAnonITA/agentscan-py.git
cd agentscan-py
pip install .
# scan a single host on the built-in AI/agent ports
agentscan -t 10.0.0.5 --authorized
# a subnet
agentscan -t 10.0.0.0/24 --authorized --rate 100 --out-dir ./reports
# specific ports
agentscan -t 10.0.0.5 --authorized --ports 11434,3000,5678,8000
# targets from a file
agentscan --targets hosts.txt --authorized
--authorized is mandatory — it is your confirmation that you are allowed
to test the supplied targets.
--out-dir DIR writes agentscan-<timestamp>.json, .md, and
.cyberstrike.json. You can also write a single format with --json,
--md, or --cyberstrike.
By default only endpoints returning 2xx are displayed; pass
--all-status to also show 401/403/405 (auth / method-not-allowed).
| Option | Description |
|---|---|
-t, --target | host / IP / CIDR / range (repeatable, comma-separated) |
--targets FILE | one target per line (# comments allowed) |
--ports | auto, a list (11434,3000), or a range (8000-8100) |
--sweep {off,normal,aggressive} | path-sweep depth (default aggressive) |
--sweep-budget N | max sweep requests per service |
--all-status | show non-2xx endpoints too |
--dump-response --dump-dir DIR | save body of every 2xx response |
--rate N | global requests/second (default 50) |
--cyberstrike FILE | write CyberStrike ingestion payload |
--authorized | required scope confirmation |
Run agentscan --help for the full list.
10.0.0.5 single IP (IPv4/IPv6)
box.lab.internal hostname (DNS)
10.0.0.0/24 CIDR subnet (capped by --max-hosts)
10.0.0.1-10.0.0.50 IP range (explicit end)
10.0.0.1-50 IP range (last-octet shorthand)
--rate).--max-hosts).--authorized).NO-AUTH! 127.0.0.1:11434 Ollama [high] 6/23 endpoints (2xx)
GET /api/tags 200 [{"name":"llama3:latest", ...}]
GET /api/version 200 "0.32.5"
GET /v1/models 200 {"object":"list","data":[ ... ]}
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 1.0.1 | 16 Sept 2026 | 2 |
This describes our collected data; it is not a security assessment.
Shared repository data · GitHub
Observed since 20 Oct, 23:17 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:7bfe360453d30ff5a2fa4264b6edb8300f9d1ecd6c229a0ae834693a5cfec63d