HTTPLint -- HTTP Client & Server Misconfiguration Detector
HTTPLint scans codebases for HTTP client/server misconfigurations, insecure connections, missing timeouts, cookie security issues, caching misconfigurations, header problems, and request handling vulnerabilities. It uses regex-based pattern matching against 90 HTTP-specific patterns across 6 categories, lefthook for git hook integration, and produces markdown reports with actionable remediation guidance. 100% local. Zero telemetry.
Commands
Free Tier (No license required)
httplint scan [file|directory]
One-shot HTTP configuration scan of files or directories.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target]
What it does:
- Accepts a file path or directory (defaults to current directory)
- Discovers all source files (skips .git, node_modules, binaries, images, .min.js)
- Runs 30 HTTP configuration patterns against each file (free tier limit)
- Calculates an HTTP configuration quality score (0-100) per file and overall
- Grades: A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
- Outputs findings with: file, line number, check ID, severity, description, recommendation
- Exit code 0 if score >= 70, exit code 1 if HTTP configuration quality is poor
- Free tier limited to first 30 patterns (HC + HS categories)
Example usage scenarios:
- "Scan my code for HTTP issues" -> runs
httplint scan .
- "Check this file for HTTP misconfigurations" -> runs
httplint scan src/server.ts
- "Find insecure HTTP connections" -> runs
httplint scan src/
- "Audit HTTP configuration quality in my project" -> runs
httplint scan .
- "Check for cookie security issues" -> runs
httplint scan .
Pro Tier ($19/user/month -- requires HTTPLINT_LICENSE_KEY)
httplint scan --tier pro [file|directory]
Extended scan with 60 patterns covering HTTP client, server, cookie security, and caching headers.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target] --tier pro
What it does:
- Validates Pro+ license
- Runs 60 HTTP patterns (HC, HS, CK, CH categories)
- Detects cookie security issues (missing Secure flag, SameSite, session fixation)
- Identifies caching and header misconfigurations
- Full category breakdown reporting
httplint scan --format json [directory]
Generate JSON output for CI/CD integration.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format json
httplint scan --format html [directory]
Generate HTML report for browser viewing.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format html
httplint scan --category CK [directory]
Filter scan to a specific check category (HC, HS, CK, CH, RH, ER).
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --category CK
Team Tier ($39/user/month -- requires HTTPLINT_LICENSE_KEY with team tier)
httplint scan --tier team [directory]
Full scan with all 90 patterns across all 6 categories including request handling and error response.
How to execute:
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --tier team
What it does:
- Validates Team+ license
- Runs all 90 patterns across 6 categories
- Includes request handling checks (input validation, content-length, redirects, smuggling)
- Includes error and response checks (stack traces, status codes, error handling, response format)
- Full category breakdown with per-file results
httplint scan --verbose [directory]
Verbose output showing every matched line and pattern details.
bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --verbose
httplint status
Show license and configuration information.
bash "<SKILL_DIR>/scripts/dispatcher.sh" status
Check Categories
HTTPLint detects 90 HTTP misconfiguration patterns across 6 categories:
| Category |
Code |
Patterns |
Description |
Severity Range |
| HTTP Client |
HC |
15 |
Missing timeouts, no retries, insecure connections, hardcoded URLs, missing User-Agent |
medium -- critical |
| HTTP Server |
HS |
15 |
Missing CORS configuration, no rate limiting, improper status codes, missing middleware |
medium -- critical |
| Cookie & Session |
CK |
15 |
Missing Secure flag, no SameSite attribute, session fixation, insecure token storage |
high -- critical |
| Caching & Headers |
CH |
15 |
Missing cache control, no ETags, missing security headers, improper content type |
medium -- high |
| Request Handling |
RH |
15 |
Missing input validation, content-length issues, open redirects, request smuggling |
high -- critical |
| Error & Response |
ER |
15 |
Stack trace exposure, improper status codes, missing error handling, response format issues |
medium -- high |
Tier-Based Pattern Access
| Tier |
Patterns |
Categories |
| Free |
30 |
HC, HS |
| Pro |
60 |
HC, HS, CK, CH |
| Team |
90 |
HC, HS, CK, CH, RH, ER |
| Enterprise |
90 |
HC, HS, CK, CH, RH, ER + priority support |
Scoring
HTTPLint uses a deductive scoring system starting at 100 (perfect):
| Severity |
Point Deduction |
Description |
| Critical |
-25 per finding |
Severe security issue (insecure connections, missing authentication) |
| High |
-15 per finding |
Significant quality problem (missing timeouts, no CORS) |
| Medium |
-8 per finding |
Moderate concern (missing headers, caching issues) |
| Low |
-3 per finding |
Informational / best practice suggestion |
Grading Scale
| Grade |
Score Range |
Meaning |
| A |
90-100 |
Excellent HTTP configuration quality |
| B |
80-89 |
Good configuration with minor issues |
| C |
70-79 |
Acceptable but needs improvement |
| D |
60-69 |
Poor HTTP configuration quality |
| F |
Below 60 |
Critical HTTP configuration problems |
- Pass threshold: 70 (Grade C or better)
- Exit code 0 = pass (score >= 70)
- Exit code 1 = fail (score < 70)
Configuration
Users can configure HTTPLint in ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"httplint": {
"enabled": true,
"apiKey": "YOUR_LICENSE_KEY_HERE",
"config": {
"severityThreshold": "medium",
"ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
"ignoreChecks": [],
"reportFormat": "text"
}
}
}
}
}
Important Notes
- Free tier works immediately with no configuration
- All scanning happens locally -- no code is sent to external servers
- License validation is offline -- no phone-home or network calls
- Pattern matching only -- no AST parsing, no external dependencies beyond bash
- Supports scanning all file types in a single pass
- Git hooks use lefthook which must be installed (see install metadata above)
- Exit codes: 0 = pass (score >= 70), 1 = fail (for CI/CD integration)
- Output formats: text (default), json, html
Error Handling
- If lefthook is not installed and user tries hooks, prompt to install it
- If license key is invalid or expired, show clear message with link to https://httplint.pages.dev/renew
- If a file is binary, skip it automatically with no warning
- If no scannable files found in target, report clean scan with info message
- If an invalid category is specified with --category, show available categories
When to Use HTTPLint
The user might say things like:
- "Scan my code for HTTP issues"
- "Check my HTTP configuration"
- "Find insecure HTTP connections"
- "Detect missing timeouts in my HTTP clients"
- "Are there any hardcoded URLs in my code?"
- "Check for missing CORS configuration"
- "Audit my cookie security"
- "Find missing security headers"
- "Check for request smuggling vulnerabilities"
- "Scan for HTTP anti-patterns"
- "Run an HTTP configuration audit"
- "Generate an HTTP quality report"
- "Check if cookies have the Secure flag"
- "Find missing rate limiting in my API"
- "Check my code for HTTP security issues"
1---2name: httplint3description: HTTP client & server misconfiguration detector -- detects insecure connections, missing timeouts, cookie security issues, caching misconfigurations, and request handling vulnerabilities4---5
6# HTTPLint -- HTTP Client & Server Misconfiguration Detector
7
8HTTPLint scans codebases for HTTP client/server misconfigurations, insecure connections, missing timeouts, cookie security issues, caching misconfigurations, header problems, and request handling vulnerabilities. It uses regex-based pattern matching against 90 HTTP-specific patterns across 6 categories, lefthook for git hook integration, and produces markdown reports with actionable remediation guidance. 100% local. Zero telemetry.
9
10## Commands
11
12### Free Tier (No license required)
13
14#### `httplint scan [file|directory]`
15One-shot HTTP configuration scan of files or directories.
16
17**How to execute:**
18```bash
19bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target]
20```
21
22**What it does:**
231. Accepts a file path or directory (defaults to current directory)
242. Discovers all source files (skips .git, node_modules, binaries, images, .min.js)
253. Runs 30 HTTP configuration patterns against each file (free tier limit)
264. Calculates an HTTP configuration quality score (0-100) per file and overall
275. Grades: A (90-100), B (80-89), C (70-79), D (60-69), F (<60)
286. Outputs findings with: file, line number, check ID, severity, description, recommendation
297. Exit code 0 if score >= 70, exit code 1 if HTTP configuration quality is poor
308. Free tier limited to first 30 patterns (HC + HS categories)
31
32**Example usage scenarios:**
33- "Scan my code for HTTP issues" -> runs `httplint scan .`
34- "Check this file for HTTP misconfigurations" -> runs `httplint scan src/server.ts`
35- "Find insecure HTTP connections" -> runs `httplint scan src/`
36- "Audit HTTP configuration quality in my project" -> runs `httplint scan .`
37- "Check for cookie security issues" -> runs `httplint scan .`
38
39### Pro Tier ($19/user/month -- requires HTTPLINT_LICENSE_KEY)
40
41#### `httplint scan --tier pro [file|directory]`
42Extended scan with 60 patterns covering HTTP client, server, cookie security, and caching headers.
43
44**How to execute:**
45```bash
46bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [target] --tier pro
47```
48
49**What it does:**
501. Validates Pro+ license
512. Runs 60 HTTP patterns (HC, HS, CK, CH categories)
523. Detects cookie security issues (missing Secure flag, SameSite, session fixation)
534. Identifies caching and header misconfigurations
545. Full category breakdown reporting
55
56#### `httplint scan --format json [directory]`
57Generate JSON output for CI/CD integration.
58
59```bash
60bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format json
61```
62
63#### `httplint scan --format html [directory]`
64Generate HTML report for browser viewing.
65
66```bash
67bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --format html
68```
69
70#### `httplint scan --category CK [directory]`
71Filter scan to a specific check category (HC, HS, CK, CH, RH, ER).
72
73```bash
74bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --category CK
75```
76
77### Team Tier ($39/user/month -- requires HTTPLINT_LICENSE_KEY with team tier)
78
79#### `httplint scan --tier team [directory]`
80Full scan with all 90 patterns across all 6 categories including request handling and error response.
81
82**How to execute:**
83```bash
84bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --tier team
85```
86
87**What it does:**
881. Validates Team+ license
892. Runs all 90 patterns across 6 categories
903. Includes request handling checks (input validation, content-length, redirects, smuggling)
914. Includes error and response checks (stack traces, status codes, error handling, response format)
925. Full category breakdown with per-file results
93
94#### `httplint scan --verbose [directory]`
95Verbose output showing every matched line and pattern details.
96
97```bash
98bash "<SKILL_DIR>/scripts/dispatcher.sh" --path [directory] --verbose
99```
100
101#### `httplint status`
102Show license and configuration information.
103
104```bash
105bash "<SKILL_DIR>/scripts/dispatcher.sh" status
106```
107
108## Check Categories
109
110HTTPLint detects 90 HTTP misconfiguration patterns across 6 categories:
111
112| Category | Code | Patterns | Description | Severity Range |
113|----------|------|----------|-------------|----------------|
114| **HTTP Client** | HC | 15 | Missing timeouts, no retries, insecure connections, hardcoded URLs, missing User-Agent | medium -- critical |
115| **HTTP Server** | HS | 15 | Missing CORS configuration, no rate limiting, improper status codes, missing middleware | medium -- critical |
116| **Cookie & Session** | CK | 15 | Missing Secure flag, no SameSite attribute, session fixation, insecure token storage | high -- critical |
117| **Caching & Headers** | CH | 15 | Missing cache control, no ETags, missing security headers, improper content type | medium -- high |
118| **Request Handling** | RH | 15 | Missing input validation, content-length issues, open redirects, request smuggling | high -- critical |
119| **Error & Response** | ER | 15 | Stack trace exposure, improper status codes, missing error handling, response format issues | medium -- high |
120
121## Tier-Based Pattern Access
122
123| Tier | Patterns | Categories |
124|------|----------|------------|
125| **Free** | 30 | HC, HS |
126| **Pro** | 60 | HC, HS, CK, CH |
127| **Team** | 90 | HC, HS, CK, CH, RH, ER |
128| **Enterprise** | 90 | HC, HS, CK, CH, RH, ER + priority support |
129
130## Scoring
131
132HTTPLint uses a deductive scoring system starting at 100 (perfect):
133
134| Severity | Point Deduction | Description |
135|----------|-----------------|-------------|
136| **Critical** | -25 per finding | Severe security issue (insecure connections, missing authentication) |
137| **High** | -15 per finding | Significant quality problem (missing timeouts, no CORS) |
138| **Medium** | -8 per finding | Moderate concern (missing headers, caching issues) |
139| **Low** | -3 per finding | Informational / best practice suggestion |
140
141### Grading Scale
142
143| Grade | Score Range | Meaning |
144|-------|-------------|---------|
145| **A** | 90-100 | Excellent HTTP configuration quality |
146| **B** | 80-89 | Good configuration with minor issues |
147| **C** | 70-79 | Acceptable but needs improvement |
148| **D** | 60-69 | Poor HTTP configuration quality |
149| **F** | Below 60 | Critical HTTP configuration problems |
150
151- **Pass threshold:** 70 (Grade C or better)
152- Exit code 0 = pass (score >= 70)
153- Exit code 1 = fail (score < 70)
154
155## Configuration
156
157Users can configure HTTPLint in `~/.openclaw/openclaw.json`:
158
159```json
160{
161 "skills": {
162 "entries": {
163 "httplint": {
164 "enabled": true,
165 "apiKey": "YOUR_LICENSE_KEY_HERE",
166 "config": {
167 "severityThreshold": "medium",
168 "ignorePatterns": ["**/test/**", "**/fixtures/**", "**/*.test.*"],
169 "ignoreChecks": [],
170 "reportFormat": "text"
171 }
172 }
173 }
174 }
175}
176```
177
178## Important Notes
179
180- **Free tier** works immediately with no configuration
181- **All scanning happens locally** -- no code is sent to external servers
182- **License validation is offline** -- no phone-home or network calls
183- Pattern matching only -- no AST parsing, no external dependencies beyond bash
184- Supports scanning all file types in a single pass
185- Git hooks use **lefthook** which must be installed (see install metadata above)
186- Exit codes: 0 = pass (score >= 70), 1 = fail (for CI/CD integration)
187- Output formats: text (default), json, html
188
189## Error Handling
190
191- If lefthook is not installed and user tries hooks, prompt to install it
192- If license key is invalid or expired, show clear message with link to https://httplint.pages.dev/renew
193- If a file is binary, skip it automatically with no warning
194- If no scannable files found in target, report clean scan with info message
195- If an invalid category is specified with --category, show available categories
196
197## When to Use HTTPLint
198
199The user might say things like:
200- "Scan my code for HTTP issues"
201- "Check my HTTP configuration"
202- "Find insecure HTTP connections"
203- "Detect missing timeouts in my HTTP clients"
204- "Are there any hardcoded URLs in my code?"
205- "Check for missing CORS configuration"
206- "Audit my cookie security"
207- "Find missing security headers"
208- "Check for request smuggling vulnerabilities"
209- "Scan for HTTP anti-patterns"
210- "Run an HTTP configuration audit"
211- "Generate an HTTP quality report"
212- "Check if cookies have the Secure flag"
213- "Find missing rate limiting in my API"
214- "Check my code for HTTP security issues"