

-
Thank you!
Integration with Python: Xonsh defines a language that is a superset of Python and shell, as I understand it. Marcel takes a different approach, defining only a bash-like shell language. Any customization is done in Python, delimited by parens. The separation between shell and Python is much stricter. Also, Marcel provides a Python API so that you can write shell-like marcel commands inside of a Python program. Shelling out from Python is notoriously ugly; the marcel API fixes that.
Sublanguages: In bash, there are lots of sublanguages, e.g. the arguments to 'date', awk, find, sed, and so on. Marcel's idea is to use Python as the sublanguage, because so many people already know it. I guess xonsh has a similar approach here.
Pipes: I think that xonsh, like more familiar shells, pipes strings. Marcel pipes python values in streams. So if you run ls, you don't get a stream of filenames, you get a stream of File objects, and you can operate on them downstream.
Database access: A stream of Python tuples is very similar to database queries. So database access is simple. There is an sql command which procueds Python tuples. And a stream of tuples can be piped into the sql command, e.g. to populated a database.
Remote access: If you have a cluster, you can use marcel to upload a file to all nodes of the cluster, download from the nodes, or to execute the same command on each, streaming results back as streams of python tuples, each with an element identifying the node from which the data originated. I don't think xonsh does this.
https://marceltheshell.org has lots of information and examples of all this.
-
CodeRabbit
CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
-
> Marcel pipes python values in streams
That's indeed much better, all those untyped strings in shells in a bad old design
Though hopefully xonsh will implement this as well https://github.com/xonsh/xonsh/issues/3967
-
osh
Osh (Object SHell) is a command-line and API toolkit combining cluster access, database access, and data slicing and dicing. Sort of like awk and cssh morsels wrapped up in a Python crust.
No. Marcel is the successor to osh (http://geophile.com/osh, https://github.com/geophile/osh) which actually precedes powershell. The fact is that many many people have implemented the idea of a shell piping objects instead of strings.
-
you could try Carbon:
https://carbon.now.sh/