“Self-hosted” is turning into a word that means whatever the vendor needs it to mean. Two launches show how far apart the meanings can sit: Cursor’s Self-Hosted Machines, and IBM’s self-hosted Bob, announced October 1. The Cursor feature is older. It went generally available in March and was expanded about a month ago with worker pools and partner platforms. The contrast between the two is the point of this post.

What Cursor moves: only the execution environment. The agent loop, inference, and planning all stay in Cursor’s cloud. Your worker, which is the Cursor CLI, opens an outbound HTTPS connection to Cursor, and Cursor sends tool calls back over it. Repositories, build caches, and secrets stay on your machines. Reference templates cover AWS Lambda MicroVMs, Cloudflare Containers, and Kubernetes, with partners including Coder, Daytona, E2B, Modal, Namespace, and Vercel. Cursor’s docs list an Enterprise plan with the feature enabled by an admin as a prerequisite, and they’re clear about who carries the work: you own the worker image, the infrastructure, the secrets, and the scaling. You also pay for the machines. Cursor-hosted environments remain the default.

What that does and doesn’t mean: your repository stays put, but the model deciding what to do with it is still in Cursor’s cloud, and your worker needs outbound access to reach it. That’s not air-gapped, and Cursor doesn’t claim it is. My reading, not Cursor’s statement: since inference happens in Cursor’s cloud, whatever the agent reads while working has to travel there as context. What stays on your side is the code at rest, the caches, and the secrets. For many teams that’s exactly the control they want. For some compliance reviews it isn’t enough.

What IBM moves: everything. IBM announced on October 1 that Bob can run on-premises, in private or sovereign clouds, or fully air-gapped with no outside network connection at all. The self-hosted package includes the IDE experience, BobShell, parallel tool calling, the agent harness, skills, and modes, with self-hosted, air-gapped, and hybrid model configurations. MarkTechPost lists NVIDIA Nemotron and Poolside Laguna as the supported models when self-hosted. IBM is aiming at banks, governments, and other regulated buyers who won’t send source code to someone else’s cloud however good the model is. There are optional premium packages for Java modernization, IBM i, and IBM Z.

The tradeoff air-gapped forces: you can only run models you can host. In IBM’s case that means the models it supports on your hardware. In Mistral’s enterprise offering, the same comparison table points to open-weight Devstral models. GitHub Copilot CLI’s BYOK mode has an offline option with a local model. That’s a real constraint. The most capable closed models aren’t what you’re running behind a sealed network. Two other caveats: IBM’s announcement didn’t name customers or contract values, and one outlet noted that none of this means the self-hosted version will be painless to run. You’re operating the infrastructure now.

Three questions for any vendor’s “self-hosted”: where does inference run? What has to be reachable from outside? And who runs and pays for the machines? If your actual requirement is “the code can’t leave the building,” the open-source route on this site is the other path: bring your own key and point a tool like OpenCode or Cline at a model you host yourself. Different tradeoffs, same goal. The word on the box won’t tell you which one you’re buying.