cursor-tab-completion
Master Cursor Tab autocomplete, ghost text, and AI code suggestions. Triggers on "cursor completion", "cursor tab", "cursor suggestions", "cursor autocomplete", "cursor ghost text", "cursor copilot".
What this skill does
# Cursor Tab Completion
Master Cursor's AI-powered Tab completion system. Tab uses a specialized Cursor model trained for inline code prediction -- it learns from your accept/reject behavior to improve over time.
## How Tab Works
1. You type code in the editor
2. Cursor's model predicts what comes next based on: current file, open tabs, recent edits, project rules
3. Ghost text (gray text) appears inline
4. You decide: **Tab** to accept, **Esc** to dismiss
```
// You type:
function validateEmail(email: string)
// Ghost text appears:
function validateEmail(email: string): boolean {
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; ← gray ghost text
return emailRegex.test(email);
}
```
## Key Bindings
| Action | macOS | Windows/Linux |
|--------|-------|---------------|
| Accept full suggestion | `Tab` | `Tab` |
| Accept word-by-word | `Cmd+→` | `Ctrl+→` |
| Dismiss suggestion | `Esc` | `Esc` |
| Force trigger | `Ctrl+Space` | `Ctrl+Space` |
**Word-by-word acceptance** (`Cmd+→`) is powerful for partial suggestions. If the AI suggests a complete function but you only want the signature, accept word-by-word until you have what you need, then type your own body.
## Tab Completion Settings
Access via `Cursor Settings` > `Tab`:
| Setting | Purpose | Recommendation |
|---------|---------|----------------|
| Tab Completion | Master on/off toggle | Keep enabled |
| Trigger in comments | Generate comment text | Disable for less noise |
| Accept suggestion keybinding | Remap Tab to another key | Default (Tab) works best |
| Suggestion delay | Time before ghost text appears | Lower = faster but more flicker |
### Disabling Tab for Comments
If Tab suggestions in comments are distracting:
`Cursor Settings` > `Tab Completion` > uncheck `Trigger in comments`
## Context That Improves Completions
Tab quality depends heavily on available context:
1. **Current file**: The model reads the full file you are editing
2. **Open editor tabs**: Files open in other tabs provide pattern context
3. **Recent edits**: Changes you have made in the last few minutes
4. **Project rules**: `.cursor/rules/*.mdc` or `.cursorrules` content
5. **Codebase index**: If indexed, the model uses semantic code search
### Tips for Better Suggestions
```
// BAD: Tab has no context about what you want
function process(data) {
// GOOD: Type signature gives Tab strong signal
function processPayment(
amount: number,
currency: 'USD' | 'EUR',
paymentMethod: PaymentMethod
): Promise<PaymentResult> {
```
**Write descriptive function names and type signatures first.** Tab uses these as strong signals for generating the body.
### Using Comments as Prompts
```typescript
// Parse CSV file, skip header row, return array of objects with typed fields
function parseCSV(filepath: string): Promise<Record<string, string>[]> {
// Tab will generate the full implementation based on the comment above
}
```
## Tab vs Other AI Features
| Feature | Trigger | Scope | Speed |
|---------|---------|-------|-------|
| **Tab** | Automatic while typing | Single completion | Instant (~100ms) |
| **Inline Edit (Cmd+K)** | Manual selection + prompt | Selected code block | ~2-5 seconds |
| **Chat (Cmd+L)** | Manual prompt | Conversational | ~3-10 seconds |
| **Composer (Cmd+I)** | Manual prompt | Multi-file | ~5-30 seconds |
Tab is the only feature that runs continuously as you type. It is optimized for speed over capability -- simple completions, not complex reasoning.
## Important Limitations
- **No custom models for Tab**: Even with BYOK (Bring Your Own Key), Tab always uses Cursor's proprietary model. Custom API keys apply to Chat and Composer only.
- **No reasoning**: Tab predicts the next tokens; it does not reason about correctness. Always review suggestions.
- **Context window**: Tab sees less context than Chat or Composer. For complex logic, use Cmd+K or Cmd+L instead.
## Conflict Resolution
If Tab conflicts with other extensions:
1. **Disable GitHub Copilot**: `Extensions` > search "Copilot" > Disable. Running both causes duplicate ghost text.
2. **Disable TabNine / Codeium**: Same issue -- only one inline completion provider should be active.
3. **VS Code IntelliSense**: Tab and IntelliSense coexist. IntelliSense handles imports/completions, Tab handles multi-line generation.
Remap if needed: `Cmd+K Cmd+S` > search `acceptCursorTabSuggestion` > assign new key.
## Measuring Tab Effectiveness
Tab gets better with usage. The model learns from:
- **Accepts** (Tab): Reinforces the pattern
- **Rejects** (Esc): Discourages similar suggestions
- **Partial accepts** (Cmd+→): Signals which parts were useful
After a few days on a project, Tab suggestions become noticeably more aligned with your coding style.
## Enterprise Considerations
- Tab suggestions are generated using Cursor's proprietary model -- not configurable via API keys
- Privacy Mode applies to Tab: with Privacy Mode on, code sent for Tab predictions has zero data retention
- Tab is included in all Cursor plans (Free tier has limited daily uses)
- No audit logging for individual Tab completions
## Resources
- [Cursor Tab Documentation](https://docs.cursor.com/tab/overview)
- [Keyboard Shortcuts](https://docs.cursor.com/kbd)
- [Privacy and Data Use](https://cursor.com/data-use)
Related in General
modeling-omnistudio-epc-catalog
IncludedSalesforce Industries CME EPC product-modeling skill for Product2-based catalog creation. Use when creating EPC products, configuring product attributes, building offer bundles with Product Child Items, or reviewing EPC DataPack JSON metadata for product catalog changes. TRIGGER when: user creates or updates Product2 EPC records, AttributeAssignment payloads, AttributeMetadata/AttributeDefaultValues, Offer bundles, or ProductChildItem relationships. DO NOT TRIGGER when: designing OmniScripts/FlexCards/Integration Procedures (use building-omnistudio-omniscript, building-omnistudio-flexcard, or building-omnistudio-integration-procedure), implementing Apex business logic (use generating-apex), or troubleshooting deployment pipelines (use deploying-metadata).
relationship-science-coach
IncludedUse this skill for direct, practical adult relationship coaching: couples conflict, repair, trust, marriage, dating, flirting, attachment patterns, emotional connection, sex, desire differences, eroticism, kink negotiation, affection, love languages, breakups, and long-term passion. Draw on Gottman, EFT and Hold Me Tight, attachment science, modern sex research, Perel, Nagoski, Kerner, Schnarch, Love and Stosny, and flexible love-language tools. Be concrete and low-hedge. Redirect only for imminent danger, abuse, coercive control, minors, non-consent, self-harm, stalking, or medical/legal/psychiatric decisions.
building-sf-integrations
IncludedSalesforce integration architecture and runtime plumbing with 120-point scoring. Use this skill to set up Named Credentials, External Credentials, External Services, REST/SOAP callout patterns, Platform Events, and Change Data Capture. TRIGGER when: user sets up Named Credentials, External Services, REST/SOAP callouts, Platform Events, CDC, or touches .namedCredential-meta.xml files. DO NOT TRIGGER when: Connected App/OAuth config (use configuring-connected-apps), Apex-only logic (use generating-apex), or data import/export (use handling-sf-data).
venue-templates
IncludedAccess comprehensive LaTeX templates, formatting requirements, and submission guidelines for major scientific publication venues (Nature, Science, PLOS, IEEE, ACM), academic conferences (NeurIPS, ICML, CVPR, CHI), research posters, and grant proposals (NSF, NIH, DOE, DARPA). This skill should be used when preparing manuscripts for journal submission, conference papers, research posters, or grant proposals and need venue-specific formatting requirements and templates.
let-fate-decide
IncludedDraws the 12 Houses of the Zodiac Tarot spread to inject entropy into planning when prompts are vague, ambiguous, or casually delegated. Interprets the spread to guide next steps. Use when the user says 'let fate decide', 'YOLO', 'whatever', 'idk', or other nonchalant phrases, makes Yu-Gi-Oh references, or when you are about to arbitrarily pick between multiple reasonable approaches. Prefer over ask-questions-if-underspecified when the user's tone is casual or playful rather than precision-seeking.
net-ops
IncludedCross-platform network troubleshooting (Windows, macOS, Linux) via local or remote shell. Use for: DNS broken, can't resolve hostnames, nslookup/dig works but apps fail, NRPT, WFP, scutil, /etc/resolver, systemd-resolved, /etc/resolv.conf, NetworkManager, VPN DNS leak residue (ProtonVPN/Mullvad/WireGuard/AnyConnect), AV/firewall blocking DNS or DoH, Tailscale DNS interaction, intermittent connectivity, remote diagnostics over SSH.