Thanks for your interest in contributing! This project is open to everyone.
Open an issue with:
- What you ran (command + flags)
- What you expected
- What actually happened
- Your Node.js version (
node -v)
We're always looking to expand coverage. If you know of an LLM SDK, AI framework, or token pattern we're missing, open an issue with:
- The name of the SDK/framework/provider
- Example import or usage pattern
- Example token format (redacted)
- Fork the repo
- Create a branch (
git checkout -b add-new-pattern) - Make your changes
- Test against a real project:
node bin/cli.js /path/to/test-project node bin/cli.js /path/to/test-project --json node bin/cli.js /path/to/test-project --tokens-only
- Commit with a clear message
- Open a PR
Patterns live in lib/patterns.js. Each pattern follows this shape:
{
name: 'Provider Name (Language)', // Human-readable label
type: 'sdk', // sdk | framework | token | endpoint | model
pattern: /your-regex-here/g, // Must use the global flag
severity: 'info', // critical | high | info
}Guidelines:
- Token patterns should be
criticalseverity if they have a known prefix (likesk-ant-) - Token patterns should be
highseverity for generic/heuristic matches - SDK and framework patterns should be
infoseverity - Test your regex against both true positives AND false positives
- Avoid overly broad patterns that match common English words
- No external dependencies — this project is zero-dependency by design
- Use
constoverletwhere possible - Keep functions small and focused
Open an issue — happy to help.