• Stars
    star
    2,517
  • Rank 18,224 (Top 0.4 %)
  • Language
    Objective-C
  • License
    BSD 3-Clause "New...
  • Created over 13 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Create native Mac applications from command line scripts.

License Language Release Build

Platypus

Platypus is a developer tool that creates native Mac applications from command line scripts such as shell scripts or Python, Perl, Ruby, Tcl, JavaScript and PHP programs. This is done by wrapping the script in an application bundle along with a slim app binary that runs the script.

Platypus makes it easy to share scripts and programs with people who are unfamiliar with the command line interface. Native, user-friendly applications can be created with a few clicks. It is very easy to create installers, droplets, administrative applications, login items, status menu items, launchers and automations using Platypus.

Features

  • Supports shell scripts, Python, Perl, Ruby, PHP, Swift, Expect, Tcl, AWK, JavaScript, Dart, AppleScript or any other user-specified interpreter
  • Apps can display graphical feedback of script execution as a progress bar, text window with script output, droplet, WebKit HTML rendering or status item menu
  • Apps support receiving dragged and dropped files or text snippets, which are then passed to the script as arguments
  • Apps can execute scripts with root privileges via the macOS Security Framework
  • Apps can register as handlers for URI schemes and send user notifications
  • Apps can be configured to run in the background (LSUIElement)
  • Set own application icon or select from presets
  • Set app's associated file types, identifier, version, author, etc.
  • Graphical interface for bundling support files with the script
  • Command line tool for automation and build process integration
  • "Profiles" can be used to save app configurations
  • Built-in script editor, or linking with external editor of choice
  • Extensive documentation and many built-in examples to help you get started
  • Generates slim and speedy native applications that launch and run quickly
  • Fast, responsive native app written in Objective-C/Cocoa

Install

Platypus is free, open source software and has been continuously developed and maintained for a very long time (since 2003). If you find this program useful, please make a donation.

Platypus can also be installed via Homebrew (may not be latest version):

$ brew install --cask platypus

Links

Screenshots

Platypus main window

Interfaces

Platypus lets you select one of several different user interfaces for your script.

Progress Bar Interface

Text Window Interface

Web View Interface

Status Menu Interface

Droplet Interface

Building Platypus

To build Platypus, run the following command from the repository root (requires Xcode build tools):

$ make build_unsigned

The resulting application bundle is created in the products directory.

Some notes on the code

Platypus is very old software, dating back to the early days of Mac OS X, around 2003, when I was first learning to use Objective-C and the Cocoa APIs. I made many beginner mistakes, some of which remain in the structure of the code. This software has since gone through about three dozen significant versions. It has been patched, bugfixed, streamlined to include new features and was transitioned over to modern Objective-C a few years ago. It's not how I would write it today.

With these caveats in mind, here is the BSD-licensed source code to Platypus.

BSD License

Copyright (c) 2003-2022 Sveinbjorn Thordarson <[email protected]> All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.

  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

  3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

More Repositories

1

Sloth

Mac app that shows all open files, directories, sockets, pipes and devices in use by all running processes. Nice GUI for lsof.
Objective-C
7,949
star
2

STPrivilegedTask

An NSTask-like wrapper around the macOS Security Framework's AuthorizationExecuteWithPrivileges function to run shell commands with root privileges in Objective-C / Cocoa.
Objective-C
386
star
3

hear

Command line speech recognition and transcription for macOS
Objective-C
147
star
4

ManDrake

Native Mac man page editor with syntax coloring, mandoc syntax checking & live preview.
Objective-C
142
star
5

DataURLToolkit

Various tools for working with Data URLs, incl. web application (http://dataurl.net), Mac OS X GUI app, command line tool, Perl modules and Apache module.
Perl
107
star
6

osxiconutils

A suite of command line utilities for working with Mac icons
Objective-C
104
star
7

searchfs

Command line tool to quickly search by filename on entire APFS and HFS+ volumes using the file system catalog.
Objective-C
98
star
8

KatSearch

Fast, simple, powerful filesystem search for macOS, just like the good ol' days.
Objective-C
97
star
9

FastDMG

Fast, no-nonsense disk image mounting for macOS
Objective-C
89
star
10

Phew

FLIF image viewer and QuickLook plugin for macOS
Objective-C
82
star
11

lemur2013

WordPress theme for lemurinn.is
PHP
47
star
12

Dim

User-friendly, high quality document icon maker for OS X
Objective-C
42
star
13

SnapTools

Tools to integrate the macOS window environment and command line interface
Objective-C
40
star
14

IconScanner

Find and inspect macOS icon assets (.icns) on your system
Objective-C
30
star
15

ensk.is

A free and open English-Icelandic dictionary. https://ensk.is
Python
27
star
16

PixlView

Mac tool to view raw pixel data in a variety of formats
Objective-C
24
star
17

iceaddr

Python package to look up information about Icelandic street addresses, postcodes and placenames
Python
23
star
18

STPathTextField

Subclass of NSTextField that supports shell and browser-style path autocompletion
Objective-C
20
star
19

sagadb.org

Icelandic Saga Database
HTML
20
star
20

ochre

macOS optical character recognition via the command line
Objective-C
9
star
21

SnowboyFramework

Snowboy hotword detection engine packaged as an iOS framework
C++
8
star
22

docerator

GUI for the docerator.py program
Objective-C
7
star
23

ManOpen-Intel

Intel-buildable package of Carl Lindberg's ManOpen
C
7
star
24

BrowserPick

Control which macOS browsers should open which URLs using rules and hotkeys
Objective-C
7
star
25

cityloc

Python package to look up world city coordinates and country codes
Python
5
star
26

Pizarro

Quirky music-oriented iOS game implemented using Cocos2D and the Chipmunk physics engine
Objective-C
3
star
27

MalidMacService

Mac Service to look up Icelandic words on málið.is
Objective-C
2
star
28

vafuglinn

Váfuglinn website
HTML
2
star