# rick Roadmap
## v0.3.0 - Colors & Typography (DONE)
*Good CLI design is 90% aesthetics. Colors and typography make the difference between a tool people tolerate and a tool people love.*
- [x] **Colored HTTP status codes**
- Green for 2xx (success)
- Yellow for 3xx (redirect)
- Red for 4xx/5xx (errors)
- Bold status line for emphasis
- [x] **JSON syntax highlighting**
- Keys in blue (bold), strings in green, numbers in yellow
- Booleans in cyan, null in purple
- Automatic pretty-printing with indentation
- `--pretty` flag for explicit formatting
- [x] **Request/response visual hierarchy**
- Dim colors for headers, bright for body
- Clear visual separation between request (`>`) and response (`<`)
- Method colored by type (GET=green, POST=blue, PUT/PATCH=yellow, DELETE=red)
- [x] **Progress indicators**
- Spinner during request (braille animation)
- Progress bar for large downloads (>100KB) with ETA and speed
- [x] **Error formatting**
- Red bold for errors
- Helpful hints in dim text
- Contextual suggestions (connection errors, timeouts, redirects)
- [x] **Typography options**
- `--no-color` for piping/CI
- `--color=always|never|auto` for explicit control
- Respects `NO_COLOR` environment variable (no-color.org standard)
- Auto-detects TTY for smart color decisions
## v0.4.0 - Performance & Benchmarks
- [ ] **Benchmark suite against cURL**
- Request latency comparison (cold start, warm)
- Throughput for large file downloads
- Memory usage comparison
- Binary startup time
- CI integration to track performance over time
- [ ] **Response time display**
- Show request duration with `--time` flag
- Breakdown: DNS, connect, TLS, first byte, total
- Colored timing (green=fast, yellow=slow, red=timeout)
## v0.5.0 - Quality of Life
- [ ] **Read body from file**
- `--json @file.json` syntax (like cURL)
- `--data @file.txt` for raw data
- [ ] **Timeout configuration**
- `--timeout <seconds>` for total request timeout
- `--connect-timeout <seconds>` for connection phase
- [ ] **Retry logic**
- `--retry <count>` for automatic retries
- `--retry-delay <seconds>` between attempts
## v0.6.0 - Advanced Features
- [ ] **Multiple URLs**
- `rick url1 url2 url3` for parallel requests
- Aggregate results
- [ ] **Request templates / profiles**
- Save common requests to config file
- `rick @profile-name`
- [ ] **Environment variable support**
- `--env` to load from .env file
- Variable substitution in URLs and headers
## Not Planned
These features are intentionally out of scope:
- **Other protocols** (FTP, SFTP, LDAP, etc.) - rick is HTTP(S) only
- **Cookie jars** - use browser dev tools or Postman
- **.netrc support** - outdated auth mechanism
- **libcurl compatibility** - we're not a drop-in replacement
- **Proxy authentication** - adds complexity for rare use case
## Contributing
Want to work on something? Open an issue first to discuss the approach.
See [DECISIONS.md](DECISIONS.md) for design philosophy.