Cursor Saudi: Kickoff
On this page
This was the first one. May 2025, at CODE in Riyadh, and the start of what became Cursor Saudi.
Dan Perks from Anysphere joined remotely to talk about Cursor from the inside and take questions. Abdullah Mosaibah demoed running local models against Cursor. I took two sessions: a walkthrough of how Cursor actually works, and a longer one on Memory Bank.
Cursor is a middle-man, and that’s the point
The most useful thing I can tell a new user is what’s actually happening when they press enter.
Everything follows from that. Better context, better output. Include the relevant files. Say what you’re actually trying to achieve. Paste the error message — the model cannot fix what it cannot see.
The four chat modes
People install Cursor, use one mode, and conclude it’s autocomplete with extra steps. The modes trade autonomy against control:
Memory Bank
This was the half of the talk people asked about afterwards.
The problem: the model has no memory between sessions. Every new chat, you re-explain the project — what it is, how it’s laid out, what conventions you follow, what you were in the middle of. That re-explanation is expensive and you do it badly, because you’re bored of typing it.
Memory Bank — the idea comes from Cline’s — is a set of human-readable markdown files in the repo that hold that knowledge permanently. Not a cache, not an embedding. A contract, written in prose, that both you and the agent read.
Three rules make it work in practice.
Always start a fresh chat. Carrying a fifty-message thread into a new task poisons the context. The memory bank exists precisely so you don’t need the thread.
Review the git diff, not the chat. The conversation tells you what the agent believes it did. The diff tells you what it did.
Update the memory bank before the next task, not after five. The moment it drifts from reality, it becomes confidently wrong documentation, which is worse than none.
Common ways people waste their first month
Vague requests with no context. Not pasting the error message. Never setting up project rules. Dumping half the repo in when three files would do. Expecting the first attempt to be right instead of iterating. Using one model for everything without ever finding out what the others are good at.
Every one of those is a context problem wearing a different hat.
Beyond code
The last thing I demoed was Cursor on things that aren’t code — Obsidian notes, research with Perplexity, technical writing, architecture documents. It’s a text editor with an agent in it. Text is text.
That demo is the reason half the audience went home and started using it for their notes.
Mazen Alotaibi (@ma7dev)