Need help with objc-run?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

425 Stars 14 Forks MIT License 62 Commits 3 Opened issues


A shell script that makes it easy to use Objective-C files for shell script-like tasks.

Services available


Need anything else?

Contributors list

Build Status

About objc-run

objc-run is a shell script which compiles and executes Objective-C source code files. It integrates with CocoaPods.

It's perfect for small programming tasks you want to handle in Objective-C, that don't justify setting up a complete Xcode project, e.g. manipulating plist files. Think of it as CodeRunner without an user interface.


If you have homebrew installed, just run

brew install objc-run

Otherwise, download the objc-run shell script file and install it in a directory that's in your $PATH. Make sure the executable bit is set like this:

chmod u+x objc-run

Basic Usage

Inside the Terminal, just enter:

objc-run myfile.m myparam1 myparam2

objc-run will attempt to compile myfile.m into an application called 'myfile'. If the file was successfully compiled, 'myfile' is launched and all remaining parameters are passed to it.

Once 'myfile' is done executing, it's removed.

Advanced usage (#!)

You can omit the explicit invocation of objc-run on the command line and launch it like this:

myfile.m myparam1 myparam2

Just insert this as first line in your .m file:

#!/usr/bin/env objc-run

Make sure objc-run, or a link to it, is accessible from your $PATH.

Please note that as long as this line is present, it will produce an error when compiling it directly.

CocoaPods Integration

You can use CocoaPods modules with objc-run. Just include the contents of your podfile in a C-comment between 'podfile-start' and 'podfile-end', like this:

platform :osx, '10.9'
pod 'Barista'

Here is an example file from the Barista project modified for usage with objc-run.

Self check

There is a little test script that performs some basic checks.


$ ./test.bash
$ echo $?

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.