How junyi-99/chatgpt-api-scanner works
This is a command-line security-research tool that searches GitHub code for candidate OpenAI API keys, checks candidates against OpenAI, and stores their statuses in SQLite. The main workflow is coordinated by the scanner in src/main.py; it also supports login cookies, resumable scans, rechecking stored keys, and deduplication. The README documents configurable keywords and languages and an existing-keys-only mode. Some source excerpts are partial, so the graph omits uncertain internal wiring and represents documented capabilities only where their owning module is supported.
Main entry points: src/main.py Scan coordinator · utils.py Key validation · manager.py Database manager · main.py CLI entry
Components 16
Scan workflow
- CLI entry
main.py - Scan coordinator
src/main.py - Search patterns
src/configs.py - GitHub search
src/main.py - Key extraction
src/main.py - Result expansion
src/main.py - Key validation
src/utils.py - Stored-key checks
src/main.py
Session and storage
- Cookie manager
src/manager.py - Progress manager
src/manager.py - Database manager
src/manager.py - Results database
github.db
External services
- Chrome browser
- GitHub
- OpenAI API
Other components
- Researcher
Connections 19
- Researcher → CLI entry: runs
- CLI entry → Scan coordinator: launches
- Scan coordinator → Search patterns: reads patterns
- Scan coordinator → GitHub search: runs scan
- GitHub search → Chrome browser: drives
- Chrome browser → GitHub: searches
- GitHub search → Key extraction: parses results
- Key extraction → Result expansion: requests details
- Result expansion → Chrome browser: opens results
- Scan coordinator → Cookie manager: manages login
- Cookie manager → Chrome browser: sets cookies
- Scan coordinator → Progress manager: loads and saves
- Scan coordinator → Key validation: checks candidates
- Stored-key checks → Key validation: checks stored keys
- Key validation → OpenAI API: tests key
- Scan coordinator → Stored-key checks: updates statuses
- Scan coordinator → Database manager: reads and writes
- Stored-key checks → Database manager: reads and updates
- Database manager → Results database: queries and stores