Best practices for using coding agents with Xcode's toolchain

Hola :waving_hand:

While exploring SWBBuildService for Teaching AI to read Xcode builds, I started thinking about all the best practices, patterns, and tools the community has discovered over the years. Knowledge that’s scattered across blogs, repos, and tribal memory. What if we could package it all up and share it?

It turns out Claude Code provides the primitives for exactly this: plugins. But we need your help. While we use Xcode daily and try to keep up with emerging patterns, we have plenty of blind spots.

So this is a call for participation. We’ve created a marketplace repository and an Xcode plugin where we plan to encapsulate all of the above. A plugin can include sub-agents, skills, MCPs, and more. If you have ideas, or want to contribute directly, feel free to share them here or open a PR.

The goal: give the Xcode ecosystem a single block of best practices that developers can add to their local environment and immediately have a better experience working with Xcode.

I have been trying to get argus to work with claude-code for days. You’re saying transparency and all that but there’s hardly any information. Maybe you use it for CI only.

And now I just found the xcode plugin and installed it, with same result.

And after installing xcode plugin it says - “life is great I also installed mise, tuist”.

And xcode plugin page is like “how little can we say and still have interest in it?”. N oin for what it does and what it for. I kind of know because I’ve read about Argus and Tuist.

And by the way there’s like three or four mcp servers called Argus and if you ask agent to investigate about how to run Argus, it’s crazy time.

Okay. but then on this page there’s a mention of Requirements mise is (optional)! for modifying. It’s not optional, it’s required and it’s impossible to get working.

I hate this mise so much and its stupid name. Why not use some framework that is suitable for things like claude and sub-agents. It’s mind boggling how much you need to jump through to run it under claude. And that’s when you run it from shell. If you try from Claude-code in VS code then forget about it.

Is instructing Claude to use eval() for calling argus really the only way to get it to work?

eval seems to be the only way I can get it to work;

Hey @roland

You touched on a bunch of topics. Let me answer those.

The instructions are in the README of the repository. If you note the instructions for the agent, you can also use the tool yourself directly, both to output xcodebuild’s build data, and to query it from your system’s local database.

It’s optional because the binaries are in the release page of the tool, so you (or the agent) can download, unzip, and run the binary.

As I mentioned above, we distribute it s a binary that you can download and use. Then you can tell Claude Code, VSCode, or any other LLM-based coding experience where your binary lives and how to use it. A lot is changing in this space, and there’s no a platform-agnostic tool to distribute MCP servers or skills, but that’s unfortunately not the world we live in today.

You have all the context for the coding agent here. With that piece of context and the access to the executable, which you can pull directly from GitHub releases, the agent should be able to provide you with valuable insights.

Let me know if that helps

This reads a bit aggressive. We’re here to help, and a different tone would be appreciated.

That said, we hear you on the friction. Things are moving fast in the agentic coding space, and we’re figuring out how Tuist fits in to provide the best developer experience. We’re not there yet, but we’re working toward an interface where build data is transparently collected and synced to the server across environments. By the time that’s ready, integrating with agentic tools should be much smoother.

Right now things are fragmented, not just in Tuist but across the whole MCP ecosystem. Every coding agent has its own ideas, installation methods, and runtime requirements. It will settle eventually, but standardization takes time. Until then, some pain is expected.

Not sure I understand this - If to follow the instructions there:

SWB_BUILD_TRACE_ID=$(uuidgen)
XCBBUILDSERVICE_PATH=$(which argus) SWB_BUILD_TRACE_ID=$SWB_BUILD_TRACE_ID xcodebuild build -scheme MyScheme

That dumps the raw output back to agent. Isn’t that the purpose of the tool - to manage that output?

The tool (an executable) is used by the Xcode build system to dump data in an SQLite DB. Then the same executable exposed a “trace” command, which coding agents can use to query data from a particular build or from the last one.

I am not able (or allowed?) to create new posts. So I will do it as a reply:


Tuist mcp does not work with anything but Claude?

I have same issue with Codex and Kiro as reported here: mcp service registers but none of methods are exposed.

And Bot’s comment I think describing it backwards. All providers handle mcp registration correctly, except Claude.

Am I doing something wrong or only Claude is supported actually?

#mcp’ tag needed