Default Configuration
| Setting | Default | Description |
|---|---|---|
| Host | 127.0.0.1 | Network interface to bind to |
| Port | 8080 | TCP port to listen on |
| Database | ~/.qai/ipi.db | SQLite database for campaigns and hits |
~/.qai/) is created automatically on first run.
CLI Configuration
All server settings are configured via CLI flags onipi listen:
| Option | Type | Default | Description |
|---|---|---|---|
--host, -h | TEXT | 127.0.0.1 | Network interface to bind to |
--port, -p | INT | 8080 | TCP port to listen on |
Callback URL Structure
The listener accepts callbacks at two URL patterns:| Path | Token Validated | Description |
|---|---|---|
/c/<uuid>/<token> | Yes | Authenticated callback — token checked against database |
/c/<uuid> | No | Unauthenticated callback — recorded with token_valid=False |
404 Not Found: The requested resource could not be located.) to avoid alerting the target system.
Authentication
Per-campaign cryptographic tokens are generated automatically when payloads are created. No separate authentication configuration is needed. The token is embedded in the callback URL during payload generation:Confidence Scoring
Confidence is assigned automatically based on token validity and User-Agent analysis:| Level | Criteria |
|---|---|
| HIGH | Valid campaign token present |
| MEDIUM | No/invalid token + programmatic User-Agent |
| LOW | No/invalid token + browser/scanner User-Agent |
python-requests, httpx, aiohttp, urllib, curl, wget, node-fetch, axios, got, undici, fetch, llm, openai, langchain.
Health Check
The server exposes a health endpoint at/health that returns {"status": "ok"}. This can be used for monitoring and automated testing.