Cursor doesn’t seem to eagerly want to use xcode-tools mcp without my saying so, and still wants to use xcodebuild. Should I be using a skill or something to make it use it the MCP by default?
cc @rudrank

@AshtonDev @rudrank is an xcode mcp providing benefit over xcodebuild and related tools for you? Or still at the testing phase?

I am finding myself running without Xcode until I need to test and make changes. But I work across a couple projects so it might be of a different workflow

@adamc @rudrank when it works it’s great. Faster than xcodebuild and can read results of your own actions in Xcode. I sometimes use both Cursor and Xcode at the same time. In Xcode I have a keybind behavior script to open the current file in Cursor. In Cursor I have a key bind to an extension I found to open in Xcode. So switching is easy. Still tuning the workflow.

@AshtonDev @rudrank ah yeah, that sounds neat. I wonder if that’s more some incremental build limitations of xcodebuild though.

Makes me want to build a Tuist skill 😂

Using an Xcode MCP would be a little limiting for me I think since I’m trying to do some parallel stuff. E.g. it can churn away on a separate git work tree while I’m doing something else

@adamc @AshtonDev @rudrank my workflow has mostly been to spin off a subagent for builds using xcodebuild CLI (I have a line in my global AGENTS.md about it) — mainly to avoid context bloat.

If I'm worried about token use, I ask it to pipe the output of xcodebuild/swift through xcsift to simplify the output down to just the results.

@tonyarnold @adamc @rudrank Xcode and worktrees is a tough one. I generally have work tree agents do a plan and code without running any build or Xcode stuff, until I merge the work tree into my real working copy for review and testing. I guess our tools aren’t aware of worktrees so there are no optimizations to reuse cached builds from other trees 🤔 can tuist do this?
@AshtonDev @adamc @rudrank I came close to filling my disk opening individual worktrees in Xcode to test things out. Xcode sees it as a new project, so as you surmise Ashton, it's setting up caches/DerivedData for each.
@tonyarnold @AshtonDev @rudrank time to use an editor with an LSP and load modules within packages 😎
@adamc @AshtonDev @rudrank stop trying to make vim happen