Skip to main content

Mate: Extremely pluggable and modular shell

build pypi codecov Vulnerabilities

Features

  • Easy plugin creation using setuptools
  • Manage group of plugins better by mate --shells
  • Built-in auto complete
  • Forced modularity in plugins
  • Dope looking shell
  • Provides command output redirect to embedded ipython
  • Supports batch executions by mate --exec and JSON formatted output

Installation

Using pypi

pip3 install mate-shell

Using git

git clone https://github.com/twisted-fun/mate.git
cd mate
pip3 install -e .

Usage

Hope this asciinema will help.

Plugins

Commands can be added into mate shell as plugins. And it's super easy!

Writing a plugin

# demo_plugin.py
from mate import add_plugins, command


def sxor(s1, s2):
    return "".join(chr(ord(a) ^ ord(b)) for a, b in zip(s1, s2))


@command(option="xor")
def bitwise_string_xor(self, str1, str2):
    """A bitwise xor operation for two strings."""
    return {"result": sxor(str1, str2).__repr__()}


add_plugins(modules=[bitwise_string_xor])
# setup.py
from setuptools import setup

setup(
    name="mate-demo-plugin",
    install_requires="mate-shell",
    entry_points={"mate": ["bitwise_str_xor = demo_plugin"]},
    py_modules=["demo_plugin"],
)

Installing the plugin

pip3 install -e .

Accessing the plugin

Check out this asciinema.

More? Example Plugins

Release files for mate-shell 0.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mate-shell 0.0.5
File Size Uploaded
mate-shell-0.0.5.tar.gz 27.1 kB Details

Release files / mate-shell-0.0.5.tar.gz

Download URL mate-shell-0.0.5.tar.gz
Size 27.1 kB
Tags Source
SHA-256 checksum
How to use checksums
760fff45ff2603315400af899c0b5faaea76e9f1b7cbc970e72e2f1bb901bdff
BLAKE2b-256 checksum
How to use checksums
a6d72de512c09786f1b265f7e5bd06fa7a364e02d45981c204cc1a3b52babedb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.4.2 requests/2.22.0 setuptools/57.4.0 requests-toolbelt/0.8.0 tqdm/4.30.0 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.0.5 This release

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page