explaingit

pontusab/cursy

19TypeScriptAudience · vibe coderComplexity · 2/5Setup · moderate

TLDR

Control the Cursor code editor by texting your Mac from your iPhone via iMessage. A background daemon intercepts your texts, runs them as coding prompts in Cursor, and texts the AI response back to you, all on-device, no cloud relay.

Mindmap

mindmap
  root((Cursy))
  What it does
    Text to run code
    Cursor via iMessage
    On-device only
  Tech stack
    TypeScript
    Bun runtime
    macOS scripting
  Setup
    One-line install
    Homebrew option
    Two Mac permissions
  Security
    Phone whitelist
    Optional passphrase
    Command prefix
  Features
    Persistent sessions
    Slash commands
    Model switching
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Ask Cursor to write a unit test for a function by sending a plain text message from your iPhone.

USE CASE 2

Check which large files exist in your project without opening your Mac, just by texting a question.

USE CASE 3

Make code edits or run coding tasks remotely while away from your desk using iMessage.

USE CASE 4

Switch your AI coding session to a different model or working directory by texting a slash command.

Tech stack

TypeScriptBunmacOSiMessageCursor CLI

Getting it running

Difficulty · moderate Time to first run · 30min

Requires macOS with Cursor installed. Must manually grant Full Disk Access and Automation permissions. Install via one-line shell script, Homebrew, or build from source with Bun. No Node.js needed.

License terms are not mentioned in the explanation.

In plain English

Cursy lets you control the Cursor code editor from iMessage on your iPhone. You text a message to your own number, and a small background process on your Mac intercepts that message, sends it to Cursor as a coding prompt, and texts the response back to you. You can ask it to list large files in a project, write a unit test, or make code changes, all from a text conversation. Everything runs on your own Mac. There is no cloud relay, no external server, and nothing leaves your device except the iMessage itself traveling through Apple's normal messaging system. The daemon watches the local Messages database file for new incoming texts, passes them through Cursor's command-line agent, and uses macOS scripting to send the reply back via Messages. Each iMessage thread keeps a persistent conversation session, so follow-up messages have full context from earlier in the same thread. You can also switch the working directory, change the AI model, or start a fresh session using slash commands like /workspace or /new sent as regular texts. Setting up requires two macOS permissions that must be granted manually: Full Disk Access so the daemon can read the Messages database, and Automation access so it can send replies through the Messages app. A guided onboarding flow walks through both steps and installs the daemon so it starts automatically in the background. For security, only phone numbers or email addresses you add to a whitelist can trigger the agent. There is also an optional passphrase and a command prefix setting if you want an extra layer before any message reaches the code editor. Cursy ships as a single self-contained binary that does not require Node.js or any other runtime installed on the Mac. It can be installed with a one-line shell script, via Homebrew, or built from source using the Bun JavaScript runtime.

Copy-paste prompts

Prompt 1
I want to use Cursy to control Cursor via iMessage. Walk me through granting Full Disk Access and Automation permissions on macOS so the daemon can read my Messages database and send replies.
Prompt 2
Using Cursy's slash commands, how do I switch the working directory to a different project folder and start a fresh session from an iMessage text?
Prompt 3
I have Cursy installed. Write me a sample iMessage I can send to ask it to find all files over 1MB in my current project and list them.
Prompt 4
How does Cursy keep conversation context between follow-up messages in the same iMessage thread? Explain how the persistent session works so I can plan multi-step coding tasks.
Prompt 5
I want to lock down Cursy so only my number can trigger it. Show me how to configure the phone number whitelist and add an optional passphrase for extra security.
Open on GitHub → Explain another repo

← pontusab on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.