Sultan: Command and Rule over your Shell
Alternatives To Sultan
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Ohmyzsh162,593158 hours ago1December 07, 2014596mitShell
🙃 A delightful community-driven (with 2,100+ contributors) framework for managing your zsh configuration. Includes 300+ optional plugins (rails, git, macOS, hub, docker, homebrew, node, php, python, etc), 140+ themes to spice up your morning, and an auto-update tool so that makes it easy to keep up with the latest updates from the community.
a day ago1November 20, 20221,466mitC++
The new Windows Terminal and the original Windows console host, all in the same place!
6 hours ago177otherMarkdown
📚 Collaborative cheatsheets for console commands
Bat43,0291524 days ago38March 25, 2023216apache-2.0Rust
A cat(1) clone with wings.
Lazygit38,99826 hours ago219July 24, 2023528mitGo
simple terminal UI for git commands
3 months ago120mitPython
the only cheat sheet you need
25 days ago157bsd-3-clausePython
🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.
6 days ago30February 24, 2023107apache-2.0Rust
A simple, fast and user-friendly alternative to 'find'
Awesome Shell28,590
a day ago84cc0-1.0
A curated list of awesome command-line frameworks, toolkits, guides and gizmos. Inspired by awesome-php.
Modern Unix27,813
18 days ago88
A collection of modern/faster/saner alternatives to common unix commands.
Alternatives To Sultan
Select To Compare

Alternative Project Comparisons
sultan logo

Command and Rule over your Shell

PyPI Version Travis Build Status MIT License Documentation Status

Sultan now supports Python 2.7+ and 3.0+


Your input is welcome! Please provide your feedback by creating issues on Github


pip install --upgrade sultan


Documentation Status

Documentation is available on ReadTheDocs:

What is Sultan?

Sultan is a Python package for interfacing with command-line utilities, like yum, apt-get, or ls, in a Pythonic manner. It lets you run command-line utilities using simple function calls.

The simplest way to use Sultan is to just call it:

from sultan.api import Sultan
s = Sultan()
s.sudo("yum install -y tree").run()


sudo yum install -y tree;

The recommended way of using Sultan is to use it in Context Management mode. Here is how to use Sultan with Context Management:

from sultan.api import Sultan

with Sultan.load(sudo=True) as s:
  s.yum("install -y tree").run()


sudo su - root -c 'yum install -y tree;'

What if we want to install this command on a remote machine? You can easily achieve this using context management:

from sultan.api import Sultan

with Sultan.load(sudo=True, hostname="") as sultan:
  sultan.yum("install -y tree").run()


ssh [email protected] 'sudo su - root -c 'yum install -y tree;''

If you enter a wrong command, Sultan will print out details you need to debug and find the problem quickly.

Here, the same command was run on a Mac:

from sultan.api import Sultan

with Sultan.load(sudo=True, hostname="") as sultan:
  sultan.yum("install -y tree").run()


[sultan]: sudo su - root -c 'yum install -y tree;'
[sultan]: --{ STDERR }-------------------------------------------------------------------------------------------------------
[sultan]: | -sh: yum: command not found
[sultan]: -------------------------------------------------------------------------------------------------------------------

Want to get started? Simply install Sultan, and start writing your clean code:

pip install --upgrade sultan

If you have more questions, check the docs!

Popular Command Line Projects
Popular Terminal Projects
Popular Command Line Interface Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Command Line
Command Line Tool
Bash Script