Introducing Ostrich

May 27, 2026

Ostrich exists because I loathe working in MacOS - I use Arch, btw. And Xcode is a pretty terrible IDE. I value being able to work the way I want and find it frustrating when the tools do not enable me to work that way. Unfortunately Apple has a very opinionated way of wanting you to work and interface with their product. Xcode even goes so far as limiting the kinds of keyboard shortcuts you can configure.

Because of the tedium of working with MacOS and Xcode, I decided to build a tool that allows me to work the way that I want. I can now freely develop my code within Neovim, and interface with the build process on MacOS via Ostrich.

Ostrich
Ostrich

If you're interested in my setup or the tools that I use you can read through my setup blog.

Ostrich is in Beta

Ostrich is officially in beta!

What is Ostrich?

Ostrich is a remote development tool focused on assisting with the compilation of Xcode projects and deployment of the build to a device (physical or simulator).

Currently, it accomplishes this by providing the following functonality as a GUI tool:

If you're keen you might have noticed that the tool does not provide a way for developing the code itself. This is by design as remote development is a solved problem. VSCode and Jetbrains both provide this functionality. And seeing as I use Neovim, I can just SSH into the remote device and use Neovim directly in the terminal.

There are always tradeoffs to remote development, and so there is an opportunity for later additions to Ostrich to allow for the sending of code over the wire for it to be compiled and deployed. This would allow for local development and remote building. However, this is an early stage thought and research needs to be done to figure out the best solution for this kind of problem.

Why Beta?

Ostrich is still in beta for a couple of reasons. Primarily among them is that there are two known bugs:

Aside from those two known bugs, Ostrich has not had any significant usage in the wild. There are plenty of unknowns when it comes to interfacing with a remote Macbook - especially when compiling and building Apple specific applications. Apple is a walled garden. They want you to work within the confines of their walls. While this is technically being done - we are remoting accessing an actual Apple device - I feel confident that 1) I have not run into all the "safeguards" Apple has in place that makes this kind of tool difficult, 2) Apple doesn't like this kind of workaround being in place and will take efforts to prevent this kind of tool.

The secondary reason that Ostrich is in beta is due to the UX. While it is functional, there are some things that are inconsistent or awkward. A simple example of this is the inconsistency in keyboard shortcuts. While a more complex example is how the code signing error is surfaced - where there is an opportunity to capture the error presented by the deploy logs and provide a more meaningful message to the user.

The last (major) reason Ostrich is still in beta is how it is packaged. Currently, there is no packaging that makes for easy installation. There is a requirement that the source is cloned and the user builds the project manually. Along with this, I haven't tested the build on more than Arch Linux and a Wayland compositor.

Curious, why "Ostrich"?

Ostriches stick their head into the sand, not because they are suicidal, but to check on their eggs and make sure they are taken care of. I thought the behavior of ostriches is a good analogy for the behavior of this product.

Open to Feedback

While this tool was really built to satisfy my own needs, I am open to and value any feedback you might have. Feel free to open issues and ask questions. Especially if you are in a different environment than myself - which is extremely likely.

Ostrich GitHub Repo

BeLike an Engineer!