Enterprise
Cursor Enterprise Deployment Patterns: MDM & Package Managers
You can put Cursor on developer machines with MDM, with a package manager, or by direct download from cursor.com/download for a small pilot. Jamf, Kandji, Microsoft Intune and other MDM tools deploy the app and the policies that lock settings such as allowed team IDs and update mode. On Enterprise, Cursor's cloud distribution syncs hooks without MDM.

On this page
- What deployment methods does Cursor Enterprise support?
- How do we deploy Cursor via MDM?
- How do we distribute hooks to all team members?
- How does Cursor work behind a corporate proxy or VPN?
- How do we control Cursor update cadence on managed machines?
- Does self-hosting Cursor's cloud agents keep the model inside our network?
- What governance knobs control cloud agents at the org level?
What deployment methods does Cursor Enterprise support?
You can deploy Cursor through MDM, a package manager or a direct download, and the right method depends on who owns the machine. IT-managed fleets go through MDM, developer-owned machines can use a package manager or a script, and a small pilot can download the build.
- Method
- MDM (Jamf, Intune, Kandji)
- Best for
- Enforced deployment, policy management, managed updates
- Who manages it
- IT / security team
- Method
- Package managers (apt and dnf on Linux; Homebrew, winget, Chocolatey)
- Best for
- Developer-controlled install, scripted provisioning
- Who manages it
- Developer or DevOps
- Method
- Direct download (cursor.com/download)
- Best for
- Manual install, fast pilots, small teams
- Who manages it
- Individual user
| Method | Best for | Who manages it |
|---|---|---|
| MDM (Jamf, Intune, Kandji) | Enforced deployment, policy management, managed updates | IT / security team |
| Package managers (apt and dnf on Linux; Homebrew, winget, Chocolatey) | Developer-controlled install, scripted provisioning | Developer or DevOps |
| Direct download (cursor.com/download) | Manual install, fast pilots, small teams | Individual user |
Cursor doesn't deploy or manage files through your MDM. Your IT or security team owns that configuration.
Cursor's quickstart documents its own apt and dnf repositories for Linux. The docs don't mention Homebrew, winget or Chocolatey, so check who maintains the package before you script a fleet around it.
The method can also decide where the application lands on disk, which matters long after the rollout. Cursor's endpoint security guidance names two Windows install locations: %LOCALAPPDATA%\Programs\cursor\ for a user install and %ProgramFiles%\cursor\ for a system install. Antivirus exclusions have to point at whichever one your machines have.
A fleet that grew half through MDM and half through self-installs needs both paths listed. Endpoint security has the full exclusion set.
For a pilot of six or eight people, MDM can cost more setup than it saves. Direct download and a line in the onboarding doc get everyone running, and version drift isn't costing you anything yet. Move to MDM once someone has to prove which build the team runs, however small the team is.
This is covered hands-on in Teams and Enterprise Admin — 6 short Units, free to read.
Rather do it than read about it? Run 11 interactive Cursor walkthroughs in a simulated editor. Free, no account needed.
How do we deploy Cursor via MDM?
Cursor's docs name three MDM vendors: Jamf, Kandji and Microsoft Intune. Package the build from cursor.com/download and push it with your vendor's standard app deployment workflow. Cursor doesn't deploy or manage files through your MDM, so your IT or security team owns the configuration and the update cadence.
The policy format matters more than the vendor, because that's where the per-OS work lands. Windows takes policies through Registry-based Group Policy, macOS through a .mobileconfig configuration profile, and Linux reads ~/.cursor/policy.json on Cursor 2.0 and later. A reference profile ships inside the macOS app bundle at /Applications/Cursor.app/Contents/Resources/app/policies/, which is quicker to start from than a blank file.
Edit that reference profile before you deploy it. It sets every policy available in that version of Cursor, and any policy you leave in place is enforced with its default value. Delete the policies you don't need.
Getting Cursor onto a machine is a different layer from controlling which team IDs can log in and which extensions can be installed. See Identity and Access Management for the AllowedTeamId, AllowedExtensions and WorkspaceTrustEnabled policies.
Push the application and the policy profile as two separate runs. If you combine them, a failed first sign-in leaves two suspects, the package and the profile, and you can't tell them apart without taking a machine off someone's desk. The gap between runs also lets you confirm that the build launches on your standard image.
How do we distribute hooks to all team members?
Hooks are scripts that run at set points in Cursor's agent loop. Cursor documents three ways to get them onto developer machines.
- Project hooks
- Commit
.cursor/hooks.json, plus any scripts under.cursor/hooks/, so every engineer gets them on clone. The workspace has to be trusted before they run. - MDM distribution
- Place
hooks.jsonper user at~/.cursor/hooks.json, or system-wide at/Library/Application Support/Cursor/hooks.jsonon macOS,/etc/cursor/hooks.jsonon Linux and WSL, andC:\ProgramData\Cursor\hooks.jsonon Windows. - Cloud distribution (Enterprise)
- Configure hooks in the web dashboard, and Cursor delivers them to every client machine when a team member logs in. No MDM required.
On Enterprise, cloud distribution covers every member without MDM or a commit to each repository. Hooks arrive at login and re-sync every thirty minutes, so a dashboard edit reaches running clients at their next sync. It can also target by operating system, which saves you maintaining one script that branches on platform.
Hooks can come from four levels, and every matching hook runs. When their decisions conflict, a deny from any level beats ask, and ask beats allow, so an MDM hook's deny always holds. For some other fields, such as the follow-up message, responses merge from Enterprise down to User and the last one wins, so a project hook an engineer committed replaces the MDM hook's value. When a hook's decision surprises you, check these merge rules before you debug the scripts.
Cloud agents have their own limits. They run command-based hooks only, and they never read ~/.cursor/hooks.json, because the VM can't see a developer's home directory. They can also start in a read-only environment where hooks don't run until the agent can write. If a hook works on a laptop but does nothing in a cloud run, check these limits first. A hook that MDM placed at the per-user path never runs in a cloud agent.
How does Cursor work behind a corporate proxy or VPN?
Cursor works with most proxy configurations, but HTTP/2 streaming and SSL inspection can break it. Cursor calls SSL inspection one of the most common deployment blockers for enterprise customers.
Some proxies don't support HTTP/2 streaming correctly, and Cursor names Zscaler as the most widely used one with that limitation. On one machine, set HTTP Compatibility Mode to HTTP/1.1 under Cursor Settings → Network, then restart. Across a fleet, the NetworkDisableHttp2 MDM policy does the same without asking anyone to click it.
Don't set that policy fleet-wide as insurance. Cursor already falls back to HTTP/1.1 server-sent events when HTTP/2 streaming fails, and it built that fallback for Zscaler and similar proxies, so the policy forces what the client otherwise handles on its own. Use it on the machines that still fail behind the proxy, and click Run Diagnostics under Cursor Settings → Network before you decide.
For other failures, the fix depends on where the network breaks the connection.
- HTTP/2 blocked
- Set HTTP Compatibility Mode to HTTP/1.1 (Cursor Settings → Network), or push the
NetworkDisableHttp2policy. - Proxy auth required
- Cursor's network docs don't cover proxy authentication. They say the editor inherits the machine's network configuration, including VPN access, so check the machine's proxy setup first.
- Certificate inspection (MITM)
- Exclude Cursor's domains from SSL inspection, as Cursor recommends. If policy requires inspecting all traffic, the proxy must pass streaming responses through without buffering.
- Private connectivity
- For Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. that must reach private source control or package registries, see Enterprise Private Connectivity.
Cursor notes that its services are already encrypted end to end, and it recommends excluding its domains from SSL inspection. If your policy requires inspecting everything, the proxy has to support HTTP/2 bidirectional streaming or let the HTTP/1.1 fallback work, pass server-sent events through without buffering, and allow long-running connections. The domain list and firewall allowlist are on network configuration.
How do we control Cursor update cadence on managed machines?
Update cadence is an MDM policy called UpdateMode, and it takes five values. none disables automatic updates, manual lets users check for updates themselves, start checks on launch, default behaves like start, and silentlyApplyOnQuit downloads in the background and applies when Cursor quits. Cursor publishes builds for all platforms at cursor.com/download, so pinning a version means deploying that build through your MDM and setting the policy to match.
Which value fits depends on who can install updates. Electron's limits mean Cursor updates need administrator privileges on macOS, so a developer working as a standard user can't complete an update prompt. For that case, Cursor recommends delivering updates through MDM or a tool such as Installomator, with UpdateMode set to none so users don't see failed update notifications. Where users can install updates, we'd pick silentlyApplyOnQuit, which keeps machines current without interrupting anyone mid-session.
Pinning has a time limit, because Cursor runs two version floors. Below the minimum supported version, users see a dismissable warning. Below the minimum allowed version, they see an error they can't dismiss and have to upgrade.
Cursor's rule of thumb is that a release becomes eligible for the first floor about two months after its GA date, and for the second about three months after. Each bump also depends on how widely newer releases have been adopted. The clock starts at the build's GA date, not the day you pin it. Book the revalidation in the same change ticket, for a date before the build reaches two months past GA, when the warning can start.
Does self-hosting Cursor's cloud agents keep the model inside our network?
No. Self-Hosted Machines move where tool calls run: file edits, terminal commands, computer use and local MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers. Cursor runs the agent loop, inference and planning in its cloud on all three runtimes: Cursor-managed Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition., My Machines and Team Pools. The worker opens an outbound connection to Cursor, runs the tool calls Cursor sends, and returns the results for the next inference round.
The worker, where tool calls run, can live in your network, so it can reach internal Git, package registries, build systems and the local MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers it runs.
Cursor runs inference, not your worker. During a run, the worker sends Cursor what the agent needs, such as file contents, terminal output, diffs and screenshots. No model runs on your hardware.
If your goal is "no source code or prompts leave our network for inference," self-hosted workers don't deliver it, because Cursor isn't an on-prem product. Privacy ModeCursor's setting that guarantees code data is not used for training by Cursor or its model providers, and that an admin can enforce org-wide; data-retention terms are a separate, contractual layer. Press Enter for the full definition. and your Enterprise agreement govern how Cursor handles that data.
What a self-hosted worker buys you is execution on hardware you control, with that hardware's network access. The agent can reach an internal-only Git host, a private package registry or a command-based MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. server on your network, because the worker reaches them locally. HTTP MCP servers are the exception: Cursor's backend still calls their URLs.
If private network access is your main requirement, Cursor suggests trying managed Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. first, with network controls, a private-network client or private connectivity. Whether you need a worker at all, and which runtime fits, is the call to make before anything else. Choosing a Cloud Agent runtime walks through the decision tree Cursor publishes.
- Tool calls (edits, commands, computer use)
- Your hardware, on a self-hosted worker (My Machines or a Team Pool).
- Internal Git, registries, local MCP servers
- Reached through the worker's own network.
- Agent loop, inference and planning
- Cursor's cloud, on all three runtimes.
- Model weights
- Never on your hardware, because Cursor runs inference.
Self-hosting moves tool execution to your hardware. The agent loop and inference stay in Cursor's cloud.
What governance knobs control cloud agents at the org level?
Admins set Cloud Agent controls from the Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. dashboard and the team settings. Enterprise admins can also lock the network policy so users can't override it. Set these before agents work on real repositories.
- Knob
- Network access
- What it controls
- Which domains Cursor-hosted agents can reach: Allow all network access, Default + allowlist, or Allowlist only, set per user, team or environment.
- Why it matters
- Limits where an agent can send data and what it can pull. Enterprise admins can lock the team policy.
- Knob
- Per-agent isolation
- What it controls
- Each agent runs in its own VM, isolated from other agents and users.
- Why it matters
- One agent can't see another agent's code, environment or state.
- Knob
- Pull request handoff
- What it controls
- Agents push their own branch and open a pull request. The dashboard sets the base branch they fork from.
- Why it matters
- Nothing merges until a person reviews the change.
- Knob
- MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers
- What it controls
- Admins configure the shared Team MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers that Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. can use. Enterprise admins can also allowlist which MCP servers and tools the team may run.
- Why it matters
- Keeps agents on vetted integrations. Cursor's release notes say Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. follow the pluginA Cursor marketplace package that bundles MCP servers and skills (sometimes sub-agents and hooks); one click installs all of it into your Cursor instance. Press Enter for the full definition. and MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. allowlist once an admin turns on Team list enforcement, a setting the MCP docs don't describe.
- Knob
- Model selection
- What it controls
- Which models the organization permits (an Enterprise setting), and the default model for cloud runs that don't name one.
- Why it matters
- Enforces approved providers and controls cost and quality tradeoffs.
| Knob | What it controls | Why it matters |
|---|---|---|
| Network access | Which domains Cursor-hosted agents can reach: Allow all network access, Default + allowlist, or Allowlist only, set per user, team or environment. | Limits where an agent can send data and what it can pull. Enterprise admins can lock the team policy. |
| Per-agent isolation | Each agent runs in its own VM, isolated from other agents and users. | One agent can't see another agent's code, environment or state. |
| Pull request handoff | Agents push their own branch and open a pull request. The dashboard sets the base branch they fork from. | Nothing merges until a person reviews the change. |
| MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers | Admins configure the shared Team MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. servers that Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. can use. Enterprise admins can also allowlist which MCP servers and tools the team may run. | Keeps agents on vetted integrations. Cursor's release notes say Cloud AgentsAgents that run in a Cursor-managed virtual machine, check out the repo, do the work and open a pull request, then shut down, with no load on your laptop. Press Enter for the full definition. follow the pluginA Cursor marketplace package that bundles MCP servers and skills (sometimes sub-agents and hooks); one click installs all of it into your Cursor instance. Press Enter for the full definition. and MCPModel Context Protocol. A standard that lets an AI agent pull in context from outside the repo, like Jira tickets or internal docs. Press Enter for the full definition. allowlist once an admin turns on Team list enforcement, a setting the MCP docs don't describe. |
| Model selection | Which models the organization permits (an Enterprise setting), and the default model for cloud runs that don't name one. | Enforces approved providers and controls cost and quality tradeoffs. |
Cloud Agent controls documented in Cursor's dashboard, security and network docs.
Set network access before the first agent runs, because it bounds what a run can reach and where it can send data. If your organization approves specific model providers, set model selection before that first run too. Otherwise it can wait, since a wrong default model mainly affects cost and output quality. Isolation and the pull request handoff are built in, so there is nothing to switch on for them.
Network access settings govern what a Cursor-hosted agent's VM can reach. They don't change where inference runs, which is Cursor's cloud.
They also don't reach self-hosted workers. Even a locked team network policy applies only to Cursor-hosted agents, and a self-hosted worker uses its own network. Set egress controlNetwork policy for where Cloud Agents may send traffic: an access mode (Allow all / Default + allowlist / Allowlist only) set per user or per saved environment, with Cursor's own services and SCM providers always reachable; Enterprise admins can lock it org-wide. A denylist with DNS filtering and an HTTP proxy has been described as planned, not shipped. Press Enter for the full definition. for My Machines and Team Pools in each machine's firewall or HTTPS proxy.
Frequently asked questions
Which MDM vendors does Cursor officially document?
Cursor names Jamf, Kandji and Microsoft Intune. For any other vendor, use its standard workflow: a custom configuration profile on macOS, Registry-based Group Policy on Windows, and a policy file on Linux.
Does Cursor support silent installation for mass deployment?
On Windows, yes. The installer is built on Inno Setup and accepts /SILENT, /VERYSILENT, /SUPPRESSMSGBOXES, /NORESTART and /CLOSEAPPLICATIONS. Updating an existing install also needs /update pointing at an empty flag file. Installers before version 2.0 may not respect /SILENT correctly, so check the build you deploy.
What is the difference between hook deployment and identity policy deployment?
Hook deployment distributes scripts that run during agent workflows. Identity policies (AllowedTeamId, AllowedExtensions, WorkspaceTrustEnabled) control which team IDs can log in, which extensions can be installed and whether Workspace Trust is on. Both can go through MDM, and on Enterprise, Cursor's cloud distribution handles hooks without MDM.
Can we prevent developers from installing Cursor outside the managed version?
Cursor's docs don't describe a setting that blocks other installs, so enforce it through your MDM, for example by blocking sideloaded .app installs on macOS or with Windows application control policies. The AllowedTeamId policy then limits which team IDs can log in on managed devices.
Can we pin Cursor to one version indefinitely?
No. Setting UpdateMode to none stops automatic updates, but Cursor enforces two version floors: a minimum supported version that shows a dismissable warning, and a minimum allowed version that shows an error users can't dismiss. A release becomes eligible for the first about two months after its GA date and for the second about three months after, depending also on adoption of newer releases. Plan a revalidation inside that window.
Does self-hosting Cursor mean the model runs on our servers?
No. Self-Hosted Machines run the agent's tool calls on your hardware, such as file edits, terminal commands and local MCP servers. Cursor runs the agent loop, inference and planning in its cloud, and the worker sends Cursor the file contents, terminal output and other results the agent needs. No model runs on your hardware.
Sources & last verified
- Cursor - Deployment Patterns
- Cursor - Identity & Access Management
- Cursor - Hooks
- Cursor - Network Configuration
- Cursor - Endpoint Security
- Cursor - Download
- Cursor - Enterprise
- Cursor - Quickstart (Linux packages)
- Cursor Help - Network, proxy, and remote connections
- Cursor - Self-Hosted Machines
- Cursor - Choose where Cloud Agents run
- Cursor - Cloud Agent security overview
- Cursor - Cloud Agent secrets and network
- Cursor - Cloud Agent settings
- Cursor - MCP
- Cursor - Model and Integration Management
- Cursor Help - Self-Hosted Machines
- Cursor - Release notes (week of Oct 12, 2026: Cloud Agents and the MCP allowlist)
Cursor ships frequently. Last updated October 28, 2026.