Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add rules/freshworks-developers/fw-dev-tools/securitygit clone --depth 1 https://github.com/freshworks-developers/fw-dev-toolsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.01479 | $0.01479 |
| Opus 5 | $0.00740 | $0.00740 |
| Sonnet 5 | $0.00296 | $0.00296 |
| Haiku 4.5 | $0.00148 | $0.00148 |
Grade A, and why
security scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 216 lines — stays where its author put it; the contents beside it link to each section on GitHub.
🔒 Security Enforcement - ZERO TOLERANCE
Security is as critical as Platform 3.0 compliance. Apply these rules to EVERY app.
🔴 CRITICAL: Input Validation & Command Injection Prevention
All SMI functions MUST validate input. Use allowlists for operations.
Safe Patterns - ALWAYS USE:
// ✅ SAFE - Allowlisted operations only
const ALLOWED_OPERATIONS = ['status', 'list', 'health'];
exports = {
performOperation: async function(args) {
if (!ALLOWED_OPERATIONS.includes(args.operation)) {
return { success: false, error: 'Operation not allowed' };
}
// Execute only pre-defined, safe operations
return await executeAllowedOperation(args.operation);
}
};
// ✅ SAFE - Parameterized operations with validation
exports = {
getData: async function(args) {
const id = parseInt(args.id, 10);
if (isNaN(id) || id < 0) {
return { success: false, error: 'Invalid ID' };
}
// Use validated input
return await fetchDataById(id);
}
};
// ✅ SAFE - String sanitization
function sanitizeInput(str) {
if (typeof str !== 'string') return '';
return str.replace(/[<>\"\'&]/g, '');
}
Input Validation Checklist:
- Validate all input types (string, number, boolean)
- Sanitize strings (remove/escape special characters)
- Use allowlists for enumerated values
- Reject unexpected or malformed input
- Never trust client-provided data
🟠 HIGH: Logging Security - No Sensitive Data
Log only operation status and non-sensitive identifiers.
Safe Logging Patterns:
// ✅ SAFE - Log only confirmation, no sensitive data
onAppInstallHandler: function() {
console.log('App installed successfully');
}
// ✅ SAFE - Log only non-sensitive, specific fields
onTicketCreateHandler: function(args) {
console.log('Ticket created:', args.data?.ticket?.id);
}
// ✅ SAFE - Sanitized error logging
try {
await performOperation();
} catch (e) {
console.error('Operation failed:', e.message);
}
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 216 lines · 1,479 tokens per session scan A fcf30aadf64f
security is a cursor rule published in the GitHub repository freshworks-developers/fw-dev-tools (5 stars, last pushed 7d ago), licensed MIT. It adds 1,479 tokens to every session, about $0.0074 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other cursor rules, from other repositories
battle-tested-engineer
Battle-tested engineering judgment for code, refactors, tests, and frontend UI. Ultra-terse caveman style during code work.
angular-20
This rule provides comprehensive best practices and coding standards for Angular development, focusing on modern TypeScript, standalone components, signals, and performance optimizations.
dev-standard
Apache Superset development standards and guidelines for Cursor IDE.
typescript
Changes to these high-fan-out internals can affect every message, delta, element, or rerun. Keep work in them minimal, and benchmark changes with representative stress-test apps.
coolify-ai-docs
Master reference to all Coolify AI documentation in .ai/ directory.
python_lib
Tips and guidelines specific to the development of the Streamlit Python library, not applicable to scripts and e2e tests.