awesome-cursor-rules-mdc is a generator that creates Cursor MDC rule files from structured library information, using semantic search and language models to gather and organize guidance. Developers use it to produce reusable rules for libraries in Cursor, and the catalogue includes 200 of those rules.
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.
git clone --depth 1 https://github.com/sanjeed5/awesome-cursor-rules-mdcWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/rules/sanjeed5/awesome-cursor-rules-mdc/openai)<a href="https://agentmods.dev/rules/sanjeed5/awesome-cursor-rules-mdc/openai"><img src="https://agentmods.dev/badge/rules/sanjeed5/awesome-cursor-rules-mdc/openai.svg" alt="Measured on agentmods" height="20"></a>What 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.1 | $0.03741 | $0.03741 |
| Opus 5 | $0.01870 | $0.01870 |
| Sonnet 5 | $0.00748 | $0.00748 |
| Haiku 4.5 | $0.00374 | $0.00374 |
Grade B, and why
openai scanned grade B with 1 finding 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 4d ago.
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.
Asks the agent to reveal its instructionsmediumSystem prompt leakage
Directions to print, repeat or translate the system prompt extract configuration the operator did not intend to expose.
# This assumes get_response_good is adapted for keyword extraction with JSON output prompt = f"""Extract 3-5 keywords from the following text as a JSON array. How it starts
The opening of the file, as written. The whole thing — 461 lines — stays where its author put it; the contents beside it link to each section on GitHub.
openai Best Practices
This document outlines the definitive best practices for interacting with OpenAI APIs, ensuring your applications are reliable, maintainable, and performant. Adhere to these guidelines for all OpenAI-powered development.
1. Code Organization and Structure
Always use the official openai Python client library. It handles authentication, request formatting, and error handling, allowing you to focus on business logic.
1.1 Client Initialization
Initialize the OpenAI client once, ideally at application startup or as a singleton. Never hardcode API keys.
❌ BAD: Hardcoding API key and re-initializing client
import os
from openai import OpenAI
def get_response_bad(prompt: str):
# API key hardcoded and client re-initialized on every call
client = OpenAI(api_key="sk-YOUR_HARDCODED_KEY")
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
✅ GOOD: Environment variable for API key, single client instance
import os
from openai import OpenAI
# Initialize client once, leveraging OPENAI_API_KEY environment variable
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
def get_response_good(prompt: str) -> str:
if not client.api_key:
raise ValueError("OPENAI_API_KEY environment variable not set.")
response = client.chat.completions.create(
model="gpt-4o", # Always use the latest, most capable model
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
1.2 Prompt Management
Treat prompts as first-class code artifacts. Store them in separate files, constants, or configuration, and version-control them. This improves readability, reusability, and testability.
❌ BAD: Inline, unstructured prompts
def process_user_query(query: str):
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": f"Summarize this text: {query}"}
]
)
# ...
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.
- 4d ago First seen · 461 lines · 3,741 tokens per session scan B dd4c852c11fd
openai is a cursor rule published in the GitHub repository sanjeed5/awesome-cursor-rules-mdc (3,571 stars, last pushed 3mo ago), licensed CC0-1.0. It adds 3,741 tokens to every session, about $0.0187 per session on Opus 5. A static security scan graded it B with 1 finding (asks the agent to reveal its instructions). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other cursor rules, from other repositories
baml
A set of rules for setting up BAML and help with syntax guidance.
co-dialectic
Co-Dialectic prompt sharpening and verification rules for Cursor.
prompt-routing
Route tasks to the correct Universal AI Engineering Prompt.
prompting-for-qe
Soạn/tinh chỉnh prompt cho tác vụ QE (sinh test case, phân tích requirement, tóm tắt tài liệu test, phân tích log) — đặc biệt khi output AI lan man, chung chung, bịa, hoặc muốn chốt prompt thành template tái dùng.
llm-zod-jsonschema
Best Practice for LLM Output Parsing with Zod and JSON Schema.
prompt-evals
Prompt eval fixtures — case design, assertions, versioning, CI gates, no PII in golden data.