Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .vscodeignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,4 @@ Makefile
**/*.tsbuildinfo
node_modules/**
builds/**
examples/**
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

<p align="center">
<a href="#installation">Installation</a> •
<a href="#see-xbridge-in-action">Demo</a> •
<a href="#features">Features</a> •
<a href="#ai-agent-tools">AI Tools</a> •
<a href="#physical-device-support">Physical Devices</a> •
Expand All @@ -34,6 +35,16 @@ Install [XBridge from the Visual Studio Marketplace](https://marketplace.visuals

---

## See XBridge in action

![XBridge feature tour showing project controls, passing tests, and an app running in Simulator](docs/images/feature-tour.gif)

The tour uses the included [XBridgeDemo Xcode project](examples/XBridgeDemo). View the full-resolution captures: [project and destination controls](docs/images/overview.png), [XCTest and Swift Testing in Test Explorer](docs/images/tests.png), [build and run](docs/images/build-and-run.png), and [the iPhone app](docs/images/demo-app.png).

[Explore every XBridge command and AI tool](docs/capabilities.md).

---

## Why XBridge?

- Run the core Xcode workflow from the editor where you write Swift.
Expand Down
80 changes: 80 additions & 0 deletions docs/capabilities.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
# XBridge capabilities

XBridge puts the everyday Xcode workflow in VS Code. These are the commands and tools available in version 1.4.2. Open the Command Palette and type `XBridge:` to find a command; the most common actions also appear in the XBridge sidebar and status bar.

## Project and workflow

| Command | What it does |
|:---|:---|
| `XBridge: Select Xcode Project or Workspace` | Choose an `.xcodeproj`, `.xcworkspace`, or Swift package when more than one is available. |
| `XBridge: Select Scheme` | Choose the Xcode scheme. |
| `XBridge: Select Build Configuration` | Switch between configurations such as Debug and Release. |
| `XBridge: Select Scheme, Configuration or Destination` | Open one picker for the active build target. |
| `XBridge: Refresh Schemes` | Reload schemes and targets from Xcode. |
| `XBridge: Open in Xcode` | Open the active project or workspace in Xcode. |
| `XBridge: Getting Started` | Open the guided VS Code walkthrough. |

## Build, run, test, and packages

| Command | What it does |
|:---|:---|
| `XBridge: Build` | Compile the active scheme. |
| `XBridge: Build & Run` | Build, install, and launch the app on the selected destination. |
| `XBridge: Stop` | Cancel the active operation or stop the running app. |
| `XBridge: Stop Running App` | Terminate the launched app without shutting down the simulator. |
| `XBridge: Clean Build Folder` | Remove the active project's DerivedData build products. |
| `XBridge: Run Tests` | Run the selected test plan or target with `xcodebuild`. |
| `XBridge: Select Test Plan` | Choose an Xcode test plan, if the scheme has one. |
| `XBridge: Select Test Target` | Limit a run to one test target. |
| `XBridge: Resolve Package Dependencies` | Resolve Swift Package Manager dependencies through Xcode. |

The native VS Code Test Explorer discovers XCTest methods and Swift Testing `@Test` methods, shows per-test results, and lets you run individual tests. Build errors and test failures appear in Problems and at their source locations.

## Results and logs

| Command | What it does |
|:---|:---|
| `XBridge: Show Build Output` | Open the `XBridge Build` output channel. |
| `XBridge: Show Build Issues` | Browse errors and warnings and jump to the source line. |
| `XBridge: Show App Console` | Open the launched app's console output. |

The status bar also shows the selected scheme and destination, build activity, and error and warning counts.

## Simulators and devices

| Command | What it does |
|:---|:---|
| `XBridge: Select Destination (Simulator/Device)` | Choose a simulator or connected physical device. |
| `XBridge: Set as Destination` | Use the selected device from the Destinations tree. |
| `XBridge: Boot Simulator` | Start a simulator. |
| `XBridge: Shutdown Simulator` | Shut down a simulator. |
| `XBridge: Open Simulator.app` | Bring Apple's Simulator app forward. |
| `XBridge: Refresh Simulators` | Reload the local simulator list. |
| `XBridge: Refresh Devices & Simulators` | Reload simulator and connected-device discovery. |
| `XBridge: Erase Simulator Content` | Reset a simulator's content and settings. |
| `XBridge: Copy Simulator UDID` | Copy the simulator identifier. |
| `XBridge: Open URL or Deep Link…` | Open a URL in a simulator. |
| `XBridge: Take Screenshot` | Save a PNG from a booted simulator. |
| `XBridge: Start / Stop Screen Recording` | Save a simulator recording as video. |
| `XBridge: Toggle Light / Dark Appearance` | Change the simulator appearance. |
| `XBridge: Open App Data Container` | Open the installed app's container in Finder. |
| `XBridge: Uninstall App from Simulator` | Remove the installed app. |

Connected iPhones and iPads appear in Destinations through Apple's `devicectl`. Physical-device builds require working code signing and Developer Mode.

## AI agent tools

Compatible VS Code AI agents can call these eight tools directly:

| Tool | Capability |
|:---|:---|
| `xbridge_build` | Build and return compiler diagnostics. |
| `xbridge_test` | Run tests and return failures. |
| `xbridge_run` | Build and launch an app. |
| `xbridge_listSchemes` | List schemes, configurations, and targets. |
| `xbridge_listSimulators` | List available simulators and status. |
| `xbridge_bootSimulator` | Boot a simulator. |
| `xbridge_readDiagnostics` | Read the last build or test diagnostics. |
| `xbridge_clean` | Clean the Xcode build folder. |

See the [main README](../README.md#settings) for the eleven configurable settings and [XBridgeDemo](../examples/XBridgeDemo) for a project you can try locally.
Binary file added docs/images/build-and-run.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/demo-app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/feature-tour.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/tests.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions examples/XBridgeDemo/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.build/
.vscode/
*.xcuserstate
xcuserdata/
9 changes: 9 additions & 0 deletions examples/XBridgeDemo/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# XBridge Demo

A small, buildable SwiftUI app used to demonstrate XBridge in VS Code. It includes one XCTest and one Swift Testing test so both appear in Test Explorer.

1. Open this folder in VS Code on a Mac with Xcode installed.
2. Select the `XBridgeDemo` scheme and an iOS Simulator in the XBridge sidebar.
3. Use **Build & Run** to launch the app, or open Test Explorer and run both tests.

The app has no external packages or signing requirement for Simulator. Xcode build products and local VS Code settings are ignored by Git.
Loading
Loading