Bowline for coding agents
Bowline for Cursor
Open the same ~/Code project in Cursor on any machine: working tree, .cursor rules, and .env already there. No re-clone, no copied env, no re-index chore.
Running Cursor across machines
Cursor runs on your desktop, so every machine you open it on needs its own clone, its own .env, and a fresh codebase re-index. Your uncommitted edits and local env do not follow you between a laptop and a second machine.
- Vendor
- Anysphere
- Type
- IDE
- Runs on
- macOS, Linux, and Windows desktop app.
- Headless
- No. It runs as a desktop IDE.
- Auth
- Sign in to a Cursor account in the desktop app (models are brokered by your Cursor subscription), or add your own OpenAI/Anthropic API keys in Cursor Settings. Auth lives in the app profile, not an env var.
- Env
- Cursor is a desktop IDE built on VS Code. It runs and debugs your project through the integrated terminal and tasks, so runtime env comes from your shell and the .env files your tooling loads. There is no Cursor-specific .env loading. Cursor also ships a separate command-line agent, cursor-agent, that can run headless and reads the same project files under ~/Code.
What bowline does for Cursor
Open the same ~/Code/your-project in Cursor on any trusted machine and the working tree, .cursor/rules, .env, and your uncommitted edits are already there, with no re-clone and no copied env. The codebase index regenerates locally rather than crossing machines. Switch from laptop to desktop mid-task and Cursor picks up exactly where you left off, because bowline syncs the working state around the IDE instead of replacing it.
How Cursor is configured
The files Cursor reads. Every one of these that lives in the project travels with ~/Code, so Cursor sees the same configuration on every machine.
.cursor/rules/*.mdcproject rules.cursor/mcp.jsonproject MCP servers~/.cursor/mcp.jsonglobal MCP servers.cursorruleslegacy project rules (superseded by .cursor/rules).vscode/settings.jsonCursor reads VS Code workspace settings~/Library/Application Support/Cursor/User/settings.jsonuser settings (macOS)
Set it up
Install bowline, trust the machine or host, then run Cursor against ~/Code with source, config, and .env already present.
curl -fsSL https://install.bowline.sh | sh # on each machine you open Cursor on bowline login # then approve the new device: bowline approve cd ~/Code/your-project # same tree, .env, and uncommitted work cursor .
Questions
- Does Bowline sync my Cursor settings and account?
- bowline carries what lives in the project (.cursor/rules, .env, and the working tree), so opening the folder on another machine gives the same project context. Your Cursor account login and global app settings live in the app profile and are signed in per machine.
- Will Cursor re-index the codebase on my second machine?
- Cursor keeps its own local index, so it indexes on each machine. It indexes the same tree bowline already placed there, with no re-clone and no copying .env first. Machine-specific indexes stay local rather than crossing devices.
- Can I switch between laptop and desktop mid-task?
- Yes. bowline syncs your uncommitted edits and .env, so the folder you reopen in Cursor on the other machine is exactly where you left off.
Your ~/Code, on every machine and every agent.
Install bowline and your projects follow you. It just works.
curl -fsSL https://install.bowline.sh | shmacOS app · Linux CLI. Then run bowline login.