By the end of this tutorial you’ll have a tiny but real CLI tool – a script that reads a folder of .txt files and gives you a one-line summary of each – built almost entirely by talking to Cursor AI editor in plain English. Not a memory-card game. Not another to-do app. Something you might actually keep on your machine.
That’s the goal. Now let’s walk backwards through how to get there, because the path matters more than the destination.
The problem with most Cursor tutorials
Every beginner guide runs the same play: install Cursor, admire the chat panel, build a to-do app. Fine for a YouTube thumbnail. Useless for actually learning the tool. What those tutorials skip: Cursor isn’t one feature – it’s an autonomy slider. Tab completion for finishing lines, Cmd+K for targeted inline edits, full agentic Composer for multi-file work. Beginners who don’t know which slider position to use spend the day fighting suggestions or watching Composer rewrite half the project on the first prompt.
The other thing nobody tells beginners: the pricing changed in 2025 in a way that quietly punishes the obvious instinct – “just always pick the smartest model.” More on that below.
Why VS Code + a Copilot extension isn’t the same thing
Short answer: it covers maybe 60% of what Cursor does, and the missing 40% is the part that actually saves time.
Cursor builds a code index – generating embeddings for each file in your project – so when you ask it something in chat, it’s answering about your repo, not giving you generic Stack Overflow paste. According to TechTarget’s step-by-step guide, this indexing is what makes responses more accurate to your actual codebase rather than the model’s training data.
Then there’s Tab. Per Cursor’s official Tab docs: it predicts your next edit location – not just the next line – suggests cross-file jumps, and auto-adds imports in TypeScript and Python. Copilot completes the line you’re on. Cursor’s Tab guesses what you’ll edit next, three lines down or two files over. That’s the real gap.
The 4-step beginner setup (in reverse: from your goal back to install)
From the end backwards, because that’s how I think about it. You want a working script. To get one, you need to know which AI feature to invoke. To pick the right feature, you need a project folder set up correctly. To have that, you need Cursor installed.
Step 4 (your end goal): one prompt, one working tool
Open Composer (Cmd+I or Ctrl+I), pick the Auto model, and paste:
Create a Python script called summarize.py that:
- takes a folder path as a CLI argument
- reads every .txt file in that folder
- prints the filename followed by the first sentence of the file
Use only the standard library. Add a --help flag.
Composer will create the file, write the code, and ask before saving. Read the diff before accepting. That last sentence is the whole skill.
Step 3: pick the right tool for the job
Three modes, three different situations:
- Tab – finishing the line you’re already typing. The official docs describe it as a specialized model that learns from which suggestions you accept vs. reject with Esc. The more you use it, the better it fits your style.
- Cmd+K – editing a specific block. Highlight the function, hit Cmd+K, type “add error handling for missing files.” You see a diff. Nothing saves until you approve it.
- Composer (Cmd+I) – creating new files or coordinating changes across several at once. This is where our summarize.py example lives.
The practical order for a beginner: Tab only for the first week. Get comfortable with accepting and rejecting. Add Cmd+K once that feels natural. Save Composer for when you’re actually creating something new.
Step 2: open Cursor against an empty folder
This sounds obvious. It isn’t. Before starting any project, open Cursor against an empty folder – not your Documents folder, not an existing repo. As TechTarget’s tutorial flags: Composer will happily edit whatever’s in the workspace. Open against the wrong folder and it can touch files you didn’t intend. Make sure Cursor doesn’t have access to anything it shouldn’t before you fire off that first Composer prompt.
Step 1: install
Download from cursor.com. Windows, macOS, Linux all supported. The Hobby plan is free with no credit card required – you get limited Agent requests and limited Tab completions each month. Sign in with Google or GitHub.
The pricing change nobody explains
In June 2025, Cursor switched from fixed request counts to a credit-based system. Pro is still $20/month – but that $20 is now a balance you spend, not a count of requests. Most articles still quote the old “500 requests/month” number. That number no longer exists.
What the credit pool actually buys you (figures from CheckThat.ai’s 2026 breakdown – treat as approximate since rates float with token usage):
| Model picked | Approx. requests on Pro’s $20 |
|---|---|
| Auto mode | Unlimited |
| Claude Sonnet | ~225 |
| GPT-4o | ~500 |
| Gemini | ~550 |
The trap: Auto mode is unlimited. The moment you manually pick a named premium model – Claude Sonnet, GPT-4o – you start drawing from the credit pool. Manually picking Claude Sonnet for every chat feels like the smart move and quietly drains your quota in two weeks. Stay on Auto. Switch to a named model only when Auto has already given you the wrong answer twice on the same task.
One more thing: verified students can get one year of Cursor Pro free by signing up with a school email, per UI Bakery’s 2026 pricing guide.
A real example: building summarize.py end-to-end
Empty folder. Cursor open. Cmd+I. Auto model. Paste the prompt from Step 4.
Cursor drafts something like this:
import argparse
import os
def summarize(folder):
for name in os.listdir(folder):
if name.endswith(".txt"):
path = os.path.join(folder, name)
with open(path, "r", encoding="utf-8") as f:
text = f.read().strip()
first = text.split(".")[0] if text else "(empty)"
print(f"{name}: {first}")
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("folder")
args = parser.parse_args()
summarize(args.folder)
Don’t just accept it. Highlight the summarize function, hit Cmd+K, type: “handle the case where the folder doesn’t exist, with a friendly error.” Cursor shows a diff. You accept it. That loop – generate broad with Composer, refine narrow with Cmd+K, finish lines with Tab – is the actual workflow. Not a trick. The whole workflow.
Here’s a question worth sitting with: what are you actually learning when you do this? Not Python. Not AI. You’re learning to read a machine-generated diff and decide whether it’s right. That skill transfers to every AI coding tool you’ll ever use. The summarize.py script is almost beside the point.
Run it. python summarize.py ./notes. If it fails, paste the error into chat and add @summarize.py – that drops the file into the AI’s context directly, per DataCamp’s guide on the @ operator. You’ll have a fix in under a minute.
Pro tips that took me too long to learn
If Tab suggestions are breaking your concentration, you’re not using it wrong – the tool is genuinely too eager. A community thread titled “No way to make Tab autocomplete less aggressive/distracting” (Cursor forum, Dec 2025) confirms this is a known flow-state problem with no official toggle yet. Workaround: train Esc into muscle memory and ignore suggestions you didn’t ask for. After a week, your fingers learn it.
Two more:
- Use
.cursorrulesin your project root to set persistent instructions (“always use type hints,” “never write classes when a function will do”). Saves you from repeating yourself in every prompt. - For documentation-heavy work, type
@Docsin chat and add the framework’s docs once. Cursor will reference them instead of hallucinating outdated APIs.
FAQ
Is Cursor free?
Yes. Hobby plan, free forever, no card required. Tab and basic chat keep working even after you hit the monthly premium-request limits.
I’m switching from VS Code. Will my extensions and keybindings come with me?
Mostly. Cursor is a VS Code fork, so extensions, themes, and keybindings can be imported on first launch. The catch: extensions that rely on Microsoft’s proprietary APIs – the C++ extension pack, some remote-development tooling – won’t work, because Microsoft restricts those to the official VS Code build. For most beginner workflows, you won’t notice. If you hit a wall with a specific extension, check whether a community alternative exists in the marketplace.
Should I use Auto mode or pick Claude Sonnet manually?
Auto, until it fails you twice on the same task. The pricing section above has the numbers – the short version is that manual model selection draws from a finite credit pool and Auto doesn’t. Save named models for genuinely hard reasoning tasks.
Next: create that empty folder, install Cursor, and run the summarize.py prompt. Don’t read another tutorial first. The fastest way to learn this tool is to ship the smallest possible thing with it tonight.