All Projects → Impedimenta → Suitcase

Impedimenta / Suitcase

A flexible command line tool for instantly deploying user interfaces for simple commands and scripts.

Projects that are alternatives of or similar to Suitcase

Stylesync
A command line tool to extract shared styles from a Sketch document, and generate native code for any platform.
Stars: ✭ 382 (-70.32%)
Mutual labels:  command-line-tool, xcode, developer-tools
Marathon
[DEPRECATED] Marathon makes it easy to write, run and manage your Swift scripts 🏃
Stars: ✭ 1,889 (+46.78%)
Mutual labels:  command-line-tool, xcode, developer-tools
Swiff
💁 Command line tools for common local ↔ remote server tasks.
Stars: ✭ 87 (-93.24%)
Mutual labels:  command-line-tool, developer-tools
droxy
Create commands on your machine that proxy docker run / exec calls
Stars: ✭ 12 (-99.07%)
Mutual labels:  developer-tools, command-line-tool
Xcode Defaults
Awesome and useful Xcode defaults
Stars: ✭ 399 (-69%)
Mutual labels:  xcode, developer-tools
Fengniao
A command line tool for cleaning unused resources in Xcode.
Stars: ✭ 2,852 (+121.6%)
Mutual labels:  command-line-tool, xcode
pganonymize
A commandline tool for anonymizing PostgreSQL databases
Stars: ✭ 20 (-98.45%)
Mutual labels:  developer-tools, command-line-tool
Circleci Cli
Use CircleCI from the command line
Stars: ✭ 297 (-76.92%)
Mutual labels:  command-line-tool, developer-tools
Poodle
🔥 A fast and beautiful command line tool to build API requests.
Stars: ✭ 129 (-89.98%)
Mutual labels:  command-line-tool, developer-tools
Awesome Ios Interview
📲 The curated list of iOS Developer interview questions and answers, Swift & Objective-C
Stars: ✭ 753 (-41.49%)
Mutual labels:  xcode, developer-tools
Playalways
Create Xcode playgrounds from your menu bar
Stars: ✭ 515 (-59.98%)
Mutual labels:  xcode, developer-tools
Gita
Manage many git repos with sanity 从容管理多个git库
Stars: ✭ 865 (-32.79%)
Mutual labels:  command-line-tool, developer-tools
Dnote
A simple command line notebook for programmers
Stars: ✭ 2,192 (+70.32%)
Mutual labels:  command-line-tool, developer-tools
AppIconSetGen
Tool to generate App Icon set for iOS, macOS, watchOS apps
Stars: ✭ 20 (-98.45%)
Mutual labels:  developer-tools, command-line-tool
Artisan Menu
📝 Artisan Menu - Use Artisan via an elegant console GUI
Stars: ✭ 141 (-89.04%)
Mutual labels:  command-line-tool, developer-tools
Xcperfect
Make your xccov outputs prettier ✨
Stars: ✭ 56 (-95.65%)
Mutual labels:  command-line-tool, xcode
Hmap
hmap is a command line tool written in Swift to work with Clang header maps produced by Xcode.
Stars: ✭ 110 (-91.45%)
Mutual labels:  command-line-tool, xcode
Check It Out
A command line interface for Git Checkout. See branches available for checkout.
Stars: ✭ 127 (-90.13%)
Mutual labels:  command-line-tool, developer-tools
Xcov
Nice code coverage reporting without hassle
Stars: ✭ 467 (-63.71%)
Mutual labels:  command-line-tool, xcode
Linessorter Xcode Extension
Xcode Extension that helps you keep your import statements and long code lists organized and uniform
Stars: ✭ 54 (-95.8%)
Mutual labels:  xcode, developer-tools

Suitcase

A flexible command line tool for instantly deploying user interfaces for simple commands and scripts.

GitHub release (latest SemVer) Platform: macOS 10.15 Twitter Follow Twitter Follow

Suitcase is a command line tool that can be "programmed" to display a SwiftUI interface that can trigger commands and scripts.

🧳 Suitcase Direct Download

It's similar to Shortcuts, but for macOS and driven by the command line.

Suitcase Demo Reel

First Class Mac Citizen

Because of its SwiftUI underpinnings Suitcase is a first class Mac citizen. With out of the box support for, Dark Mode, Menubars and Drag and Drop.

Powerful

Its power and flexibility come form the tried and trusted UNIX command line. Anything you can do in Terminal you can do in Suitcase, but with a UI and export the command as a .command file, to check in with a project or share with the world.

Information

  • @SuitcaseCLI — Regular posts about updates and examples
  • The Bazaar — Examples and documentation
  • Impedimenta — Blog posts, links and related projects
  • @ImpedimentaCode — Infrequent posts about other projects and tools
  • @rjstelling — Frequent, irrelevant mostly technology and politics, open DMs

Command-Line Utility

Usage

OVERVIEW: A flexible command line tool for instantly deploying user interfaces
for simple commands and scripts.

USAGE: Suitcase <subcommand>

OPTIONS:
  --version               Show the version.
  -h, --help              Show help information.

SUBCOMMANDS:
  basic                   Launch a basic Suitcase process, that has a main menu
			  and an icon in the Dock when running.
  utility                 Launch a utility Suitcase process, without a Dock
			  icon or main menu.

Suitcase basic

A basic Suitcase process has a main menu and an icon in the Dock when running.

See the full documentation.

Suitcase utility

A utility Suitcase process does not have a Dock icon or main menu. It consists of just a main window.

See the full documentation.

Examples

These examples are very basic but should give you a good idea of how you can use Suitcase. More details examples can be found at the Bazaar. If you have any questions please create an issue. If you create a command and you'd like to share it, open a PR at the Bazaar.

Hello World

Hello World

A simple example consisting of one button that when clicked calls the say command. Watch the video of this example in action, there is a detailed say example at the Suitcase Bazaar.

📝 Code
$ Suitcase --name="Demo App" --window-title="Hello World" \
  --window-width="200" --window-height="200" \
  --control-type="label" --control-title="Give a face to every voice…" \
  --control-type="button" \
  --control-title="🗣 Say hello" \
  --control-action="/usr/bin/say Hello World"

War Games

War Games

A more advanced example using buttons and passing parameters to the say command. A detailed explanation of War Games can be found at the Suitcase Bazaar.

📝 Code
$ Suitcase --name="War Games" \
 --control-title="Shall we play a game?" \
	--control-type="text-field" \
	--control-identifier="say.textfield" \
  --control-title="Daniel" \
	--control-type="button" \
	--control-group-identifier="g.btns" \
	--control-action="/usr/bin/say" \
	--control-action-parameter="-v,Daniel,say.textfield" \
  --control-title="Samantha" \
	--control-type="button" \
	--control-group-identifier="g.btns" \
	--control-action="/usr/bin/say" \
	--control-action-parameter="-v,Samantha,say.textfield" \
  --control-title="Veena" \
	--control-type="button" \
	--control-group-identifier="g.btns" \
	--control-action="/usr/bin/say" \
	--control-action-parameter="-v,Veena,say.textfield"

Menus

Menus

This example shows how to create menus and sub-menus. Actions can be attached to any menu item the same way as buttons. Watch the video of this example in action.

Menu items can also be assigned a keyboard shortcut. See the full documentation for more details.

📝 Code
$ Suitcase --name="Demo App" --window-title="Menus" \
  --control-title="UUID" \
	--control-type="label" --control-identifier="com.label.uuid" \
  --menu-title="Action>Generate>UUID" \
	--menu-action="/usr/bin/uuidgen" \
	--menu-action-destination="com.label.uuid" \
  --menu-title="Action>Copy UUID" \
  --menu-shortcut="k" \
  --menu-action="/usr/bin/printenv com.label.uuid | /usr/bin/pbcopy"

Hidden Files & Folders

Hidden Files & Folders

This is a more involved example that uses defaults to read the macOS user defaults system and use sed to set a state label. Watch the video of this example in action.

📝 Code
$ Suitcase --name="Hidden Finder Settings" \
  --control-title="Hidden Files & Folders:" \
	--control-group-identifier="com.finder.hidden" \
	--control-type="label" \
  --control-title="unknown" \
	--control-group-identifier="com.finder.hidden" \
	--control-type="label" \
	--control-identifier="com.label.hidden.state" \
  --control-title="Refresh" \
	--control-group-identifier="com.finder.hidden" \
	--control-type="button" \
	--control-action="/usr/bin/defaults read com.apple.finder AppleShowAllFiles | /usr/bin/sed s/1/Visible/g;s/0/Hidden/g" \
	--control-action-destination="com.label.hidden.state" \
  --control-title="Enable" \
	--control-type="button" \
	--control-group-identifier="com.finder.hidden.buttons" \
	--control-action="/usr/bin/defaults write com.apple.finder AppleShowAllFiles -bool TRUE & /usr/bin/killall Finder" \
  --control-title="Disable" \
	--control-type="button" \
	--control-group-identifier="com.finder.hidden.buttons" \
	--control-action="/usr/bin/defaults write com.apple.finder AppleShowAllFiles -bool FALSE & /usr/bin/killall Finder"

This is how the command would be run in Terminal.

$ defaults read com.apple.finder AppleShowAllFiles | sed 's/1/Visible/g;s/0/Hidden/g'

The button uses & to run two commands, one to write to the user defaults and the second to relaunch the Finder:

$ defaults write com.apple.finder AppleShowAllFiles -bool TRUE

Kill the Finder and relaunch:

$ killall Finder

Suitcase

Export as a .command

Any Suitcase command can be exported as a self running .command file. You can double click this file to launch the Suitcase or share the file (it's just plain text).

Export Command

Bug Reports & Feature Requests

Please create an issue.

Contact

Releases and News (@SuitcaseCLI) Richard Stelling (@rjstelling)

Thanks to

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].