cursor-hello-world
Create your first project using Cursor AI features: Tab, Chat, Composer, and Inline Edit. Triggers on "cursor hello world", "first cursor project", "cursor getting started", "try cursor ai", "cursor basics", "cursor tutorial".
What this skill does
# Cursor Hello World
A hands-on 10-minute walkthrough of Cursor's four core AI features: Tab Completion, Chat, Inline Edit, and Composer.
## Setup
```bash
mkdir cursor-hello && cd cursor-hello
npm init -y
npm install typescript tsx @types/node --save-dev
npx tsc --init
```
Open the project in Cursor: `cursor .` (or File > Open Folder).
## Exercise 1: Tab Completion
Create `src/utils.ts`. Start typing and let Tab complete:
```typescript
// Type this much:
export function formatCurrency(amount: number, currency: string
// Tab suggests:
export function formatCurrency(amount: number, currency: string = 'USD'): string {
return new Intl.NumberFormat('en-US', {
style: 'currency',
currency,
}).format(amount);
}
```
Press **Tab** to accept the full suggestion, or **Cmd+Right Arrow** to accept word-by-word.
### Try These Prompts for Tab
Type a comment describing what you want, then start the function:
```typescript
// Validate an email address using regex
export function validateEmail(
// Sort an array of objects by a key
export function sortBy<T>(
// Calculate the distance between two lat/lng points in km
export function haversineDistance(
```
Tab reads your comment and generates the implementation.
## Exercise 2: Chat (Cmd+L)
Open Chat with `Cmd+L`. Try these prompts:
**Ask about your code:**
```
@src/utils.ts
What does the formatCurrency function do? Does it handle edge cases
like negative numbers or very large values?
```
**Generate new code:**
```
Write a TypeScript function that converts a nested object
to a flat key-value map with dot-separated keys.
Example: { a: { b: 1 } } → { "a.b": 1 }
```
**Debug a concept:**
```
Explain the difference between Promise.all() and Promise.allSettled()
with code examples showing when to use each.
```
Chat responds with explanations and code snippets. Click **Apply** on any code block to insert it into your editor.
## Exercise 3: Inline Edit (Cmd+K)
Open `src/utils.ts`. Select the `formatCurrency` function body. Press `Cmd+K`.
Type your instruction:
```
Add support for locale parameter with default 'en-US'.
Handle NaN input by returning '$0.00'.
```
Cursor shows the diff inline:
- Green = added lines
- Red = removed lines
Press `Cmd+Y` to accept, `Esc` to reject.
### Inline Edit Quick Tasks
Select any code and press `Cmd+K` with instructions like:
- `"Add TypeScript types"`
- `"Refactor to use early returns"`
- `"Add error handling"`
- `"Convert to async/await"`
- `"Add JSDoc documentation"`
## Exercise 4: Composer (Cmd+I)
Press `Cmd+I` to open Composer. Ask it to create a complete feature:
```
Create a simple task manager module:
1. src/types/task.ts - Task interface with id, title, completed, createdAt
2. src/services/task-service.ts - TaskService class with:
- addTask(title: string): Task
- completeTask(id: string): Task
- listTasks(): Task[]
- deleteTask(id: string): void
3. src/index.ts - Demo script that creates 3 tasks, completes one, lists all
Use in-memory storage (Map). Include TypeScript types throughout.
```
Composer shows all files it will create/modify. Review each diff, then click **Apply All**.
### Run the Result
```bash
npx tsx src/index.ts
```
## Feature Comparison Summary
| Feature | Shortcut | Use For | Scope |
|---------|----------|---------|-------|
| **Tab** | Automatic | Line/block completions while typing | Current cursor position |
| **Chat** | `Cmd+L` | Questions, explanations, code snippets | Conversation-based |
| **Inline Edit** | `Cmd+K` | Edit selected code with instructions | Selected code block |
| **Composer** | `Cmd+I` | Multi-file generation and refactoring | Multiple files |
## Next Steps After Hello World
1. **Add project rules**: Create `.cursor/rules/` with coding standards (see cursor-rules-config skill)
2. **Index your codebase**: Open a real project and wait for indexing (see cursor-codebase-indexing skill)
3. **Learn @-mentions**: Use `@Files`, `@Codebase`, `@Docs` in Chat (see cursor-context-management skill)
4. **Configure your model**: Try different models for different tasks (see cursor-model-selection skill)
## Enterprise Considerations
- Hello World exercises do not send sensitive code to AI providers -- safe for evaluation
- Enable Privacy Mode before using Cursor with production codebases
- Tab completions work immediately; Chat and Composer require active subscription or BYOK API key
## Resources
- [Cursor Getting Started](https://docs.cursor.com/get-started/overview)
- [Cursor Keyboard Shortcuts](https://docs.cursor.com/kbd)
- [Cursor Feature Overview](https://cursor.com/features)
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.