- 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
pip3 install mate-shell
git clone https://github.com/twisted-fun/mate.git
cd mate
pip3 install -e .
Hope this asciinema will help.
Commands can be added into mate shell as plugins. And it's super easy!
# 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"],
)
pip3 install -e .
Check out this asciinema.