Marcel the Shell

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

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.
coderabbit.ai
featured
Nutrient – The #1 PDF SDK Library, trusted by 10K+ developers
Other PDF SDKs promise a lot - then break. Laggy scrolling, poor mobile UX, tons of bugs, and lack of support cost you endless frustrations. Nutrient’s SDK handles billion-page workloads - so you don’t have to debug PDFs. Used by ~1 billion end users in more than 150 different countries.
www.nutrient.io
featured
  1. marcel

    A modern shell (by geophile)

    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.

  2. 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.

    CodeRabbit logo
  3. xonsh

    :shell: Python-powered shell. Full-featured and cross-platform.

    > 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

  4. 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.

  5. carbon

    :black_heart: Create and share beautiful images of your source code

    you could try Carbon:

    https://carbon.now.sh/

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • A Second Search for Bash Scripting Alternatives

    1 project | news.ycombinator.com | 21 Nov 2024
  • 6 Underrated Developer Tools That Will Blow Your Mind

    2 projects | dev.to | 30 Sep 2024
  • Reasons I still love the fish shell

    2 projects | news.ycombinator.com | 12 Sep 2024
  • Xonsh is a Python-powered shell

    1 project | news.ycombinator.com | 30 Aug 2024
  • This Week In Python

    5 projects | dev.to | 9 Mar 2024