The short answer
To deploy an app built with Cursor, open your project in Cursor, open the agent chat and give it one sentence. The agent reads a short procedure written for agents, asks you to approve one link, and then does every other step itself. It creates your app, and a Postgres database if your code needs one, sends your project, watches the build and tells you where it went live.
Say this to Cursor
Set this project up to deploy on Antideploy. Fetch https://antideploy.com/agent.md and follow it.
You do three things. Paste the sentence. Click Approve on one link. Open the live link at the end.
Cursor's agent does the rest. It creates the app, creates a Postgres database if your code needs one, deploys, reads the result and fixes what breaks.
How Cursor's approvals fit in
Cursor's agent runs commands in a terminal. Cursor has run modes that decide which commands run without asking you. In a strict mode, commands that are not on your allowlist wait for your approval. In a looser mode, more of them run on their own.
For a deploy, this means Cursor may stop and ask before it fetches a page or runs a command. That is normal. Read the command, and approve it if it matches what you asked for. You can find the setting in Cursor's settings under Agents, and Cursor explains each mode on its page about run modes.
Two things are worth knowing:
- The agent never needs your password or a key pasted into the chat. If it ever asks for one, say no.
- Antideploy asks you for one approval, in your browser. Cursor's command approvals are separate, and they happen inside Cursor.
Before you start
You need three things, and none of them is an account.
-
A project open in Cursor. Anything Cursor built: Next.js, Vite, Express, FastAPI, Flask, Django, Streamlit or a plain static site, among others.
-
Cursor's agent, able to run terminal commands. It needs to reach antideploy.com. If it cannot, it stops and tells you which domain to allow.
-
A browser, for one link. That is where you approve the connection. Nothing else happens in the browser.
You do not need an Antideploy account first. If you have none, the approval link signs you in with Google or GitHub, creates the account and takes you straight back to Approve. You also do not need a Dockerfile, a GitHub repository or a card.
Step by step
-
Open your project in Cursor
Open the folder that holds your project, the one with your
package.json,requirements.txtorindex.htmlat the top, and open the agent chat. -
Paste the sentence
Paste the sentence from the top of this page and press Enter. The agent fetches agent.md, a procedure written for agents, and starts following it. If Cursor asks to approve a command, read it and approve it when it matches what you asked for.
If you want a particular address, say so in the same message, for example "use the address mytool" for
mytool.antideploy.app. If you do not, the agent names the app after your folder, and you can rename it whenever you like. -
Approve one link
The agent starts a device login and shows you a link and a short code. Open the link and check that the code matches the one in Cursor. If you are signed out or have no account yet, you sign in with Google or GitHub first and land straight back on the approval screen. Then click Approve.
Open https://antideploy.com/activate?code=WDJB-MJHT Confirm the code reads WDJB-MJHT, then click Approve.The approval screen lists what you are granting, which is to create projects and their databases and deploy them. It also says what the agent cannot do: read back the secrets you set, or delete anything. A code lasts fifteen minutes. The token the agent receives is saved to
~/.antideploy/config.jsonon your machine and is never printed in the chat. -
Let the agent set the project up
Before it builds anything, the agent creates the app on your account. If your code stores data, it also creates a Postgres database and writes the connection details into your
.envfile without printing them. That one database serves your local testing and the live app, so what you tested is what ships. -
Let it deploy
The agent sends your project folder, leaving out
node_modulesand.git, and follows the deploy until it finishes. Every deploy runs the same steps: package the code, build a container, set up the database if one is needed, run your migration command, start the app, check that it responds, and open it to the world. If a step fails, the deploy stops there and says which one. -
Open your link
When the app answers its health check, the agent tells you where it is live and on which account. That is the whole job.
my-app is live at https://my-app.antideploy.app on the Antideploy account you@example.comRight after, a security check of the live app runs. It looks for mistakes that leak data, such as keys shipped to the browser or a downloadable
.envfile, and it never holds the deploy up.
If Cursor stops before the link
-
A command is waiting for your approval. Look for the prompt in the chat. Read the command and approve it if it matches your request.
-
The agent cannot reach antideploy.com. It will say so, and name the domain to allow. Allow it, or run the agent on your own machine, or upload the folder in the Antideploy console.
-
The code on the approval page does not match. Refuse it, ask the agent to start the login again, and check the new code.
What it costs
The Free plan needs no card and has no trial clock. It includes unlimited static sites, 1 live app with a server, 10 successful deploys a month and 1 Postgres database. Failed deploys are free on every plan.
Paid plans are charged in rupees, by UPI or card. Go is ₹399 a month for 3 live apps, Pro is ₹1,999 for 9 and Scale is ₹6,999 for 20. See the pricing page for every limit.