- Current version: 2.6.8 (Changelog)
- Requires: macOS 10.10 or higher
Note: the default
master-branch will always be stable.
- highly customisable, write your own configuration
- bind keyboard shortcuts and system events to your callback functions
- control and interact with your screens, spaces, mouse, apps and windows
- log messages, deliver notifications or display content as modals
- run external commands
To install, extract the downloaded archive and just drag-and-drop Phoenix to your
Applications-folder. When you run Phoenix for the first time, you will be asked to allow it to control your UI. macOS will ask you to open
Security & Privacy in System Preferences. Once open, go to the
Accessibility-section and click the checkbox next to Phoenix to enable control. An admin account is required to accomplish this.
Alternatively, if you have Homebrew installed, you can simply run
brew install --cask phoenix.
To uninstall Phoenix, delete the app from your
Applications-folder. The configuration file created by Phoenix itself is located in your home folder. Delete
~/.phoenix.js and any related configurations if desired. For developers, you may also need to delete
If you have used the storage, also delete the file
~/Library/Application Support/Phoenix/storage.json. Again for developers, you may also need to delete
~/.phoenix.js — the file will be created when you launch Phoenix for the first time. Alternatively — if you prefer — you may also have your script in
~/Library/Application Support/Phoenix/phoenix.js or
~/.config/phoenix/phoenix.js. For ideas, see what other people have built in their configurations in the Wiki. Feel free to add your own configuration to the Wiki to show other people the nice things you can do. Previous configurations (<= 1.5) are not compatible with 2.0, see Changelog for what changes are needed.
You will need some basic knowledge about installing the required languages and tools. If you need help, do not hesitate to ask! To get started, you will need:
- Xcode 13 or higher
- Xcode command line tools
First clone the repository from a terminal:
git clone https://github.com/kasper/phoenix.git cd phoenix
To develop Phoenix, open
Phoenix.xcworkspace in Xcode. Install Xcode from the App Store, if you do not already have it installed. You will also need Xcode command line tools — you will be prompted for this. Everything else should work as is — you can develop, debug, test, build and run Phoenix straight from Xcode.
To install Phoenix from the source, you will need to build the workspace from a terminal:
xcodebuild -workspace Phoenix.xcworkspace \ -scheme Phoenix \ -configuration Release \ SYMROOT="$PWD/build/" \ clean build
Once complete, you will find a newly built Phoenix app in
build/Release/. After this, you can follow the normal install guide.
Phoenix manages dependencies with CocoaPods. Note that you do not need CocoaPods for basic development. However, if you want to install new pods or update existing ones, you will also need:
- Ruby (2.7.4 or higher), it is recommended that you manage Ruby versions with for instance rbenv
Install Bundler, if you do not already have it installed. To install CocoaPods and its dependencies, use Bundler inside the
phoenix-directory to install the required Ruby gems according to the
Gemfile. Once complete, you can install the pods listed in the
Podfile with CocoaPods.
gem install bundler bundle install pod install
Phoenix/phoenix-min.js so that everything works as is. However, if you want to develop features for this library, you will also need:
- Node.js (17.0.1 or higher)
Install the development packages listed in
phoenix-min.js from the source, run the command
npm run build in the root directory. NPM will then build the source from
library/src/ and install the new library to
Phoenix/phoenix-min.js. For convenience, this is also handled automatically by Xcode when you build Phoenix.
Feel free to contribute to this project by creating issues, pull requests and editing the Wiki. See the guidelines.
Phoenix is currently being developed by Kasper Hirvikoski (@kasper) with the generous help of contributions made by many individuals. It was originally authored by Steven Degutis (@sdegutis). As it stands now, it has been rewritten from the ground up by Kasper Hirvikoski.
Released under the MIT License. See license.