Live data from Hacker News

Show HN: Ell – A command-line interface for LLMs written in Bash

github.com

41–50 of 88 posts

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#41
post #18

The program seems to assume you'll clone it in your home directory, and has paths hardcoded to `~/.ellrc.d/`. This is just bad.

Convention over configuration isn't bad per se, as the alternatives tend to devolve to bikeshedding.

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#42
post #36

Earlier quoted context omitted.

Wow that's very useful! I have also thought of completion but my idea was more like copilot. The user experience of your script should be better. I'm glad I didn't start to write that. Regarding history in context, I suggest adding a record mode like ell. This really helps. Password sanitizer is great. I will also add it as a plugin. Thank you for the idea!

Thanks for checking it out and the record mode is a great idea. I've been playing around with ways to get the terminal outputs but so far I haven't loved the UX of my solutions. Your co-pilot approach that can explain the commands and iterate is really valuable. If you're open to joining, I have a small AI engineer/ open source dev Slack community in Boston. Id love to have you ( https://smaht.ai )

I am open to join any community. As long as you don't mind the fact that I'm not in Bosten, why not? I have just submitted on your google form. Thanks for inviting!

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#43
Ell is really cool!

I'm building a similar product called Savvy(https://github.com/getsavvyinc/savvy-cli) and considered an approach similar to yours (writing in pure bash) but ultimately decided to use Go for a few reasons:

- charmbracelet makes it super easy to build rich TUI - Go produces a single binary that's compatible across many platforms and keeps installation simple - It's simpler to support multiple shells.

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#45

I wrote a similar tool I'm no longer maintaining: https://github.com/llimllib/gpt-bash-cli/ . Here are my suggestions: - save the conversations in a sqlite db. ~everyone has sqlite available and it allows the user to do things with the data more easily than a text file - use XDG directories instead of suggesting ~/.ellrcd ( https://wiki.archlinux.org/title/XDG_Base_Directory ) - I prefer using system secret stores to…

Thanks for the suggestions! I read your code and the support of images is awesome. I would not assume everyone has sqlite but this can be done optionally with a plugin. Will consider writing a demo for this. Using XDG directories and system secrets sounds a lot better than what I did. I will learn how to use them and try to integrate them with my code!

Shameless plug: we maintain a cross-platform/cross-language secrets store (with cli tooling available) to portably read and wrire secrets (but it doesn’t use the OS facilities for encryption).

Linking to the rust implementation because it’s the fastest and most easily portable: https://github.com/neosmart/securestore-rs

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#46
Does ell have the ability to pipe things INTO the tool?

I use that with my https://llm.datasette.io/ tool all the time - things like this:

    cat somecode.py | llm -m claude-3.5-sonnet "Explain this code"
Or you can separate the instructions from the piped content by putting them in a system prompt instead like this:

    cat somecode.py | llm -m claude-3.5-sonnet --system "Explain this code"
Being able to pipe content like this INTO an LLM is really fun, it lets you do things like scrape a web page and use it to answer questions: https://simonwillison.net/2024/Jun/17/cli-language-models/#f...

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#47
post #46

Does ell have the ability to pipe things INTO the tool? I use that with my https://llm.datasette.io/ tool all the time - things like this: cat somecode.py | llm -m claude-3.5-sonnet "Explain this code" Or you can separate the instructions from the piped content by putting them in a system prompt instead like this: cat somecode.py | llm -m claude-3.5-sonnet --system "Explain this code" Being able to pipe content like…

Definitely! For example,

  cat somecode.py | ell -f -
If you prefer adding another piece of prompt instantly instead of adding it in the template:

  (cat somecode.py; echo "Explain this code") | ell -f -
I should've added this into README.

I really love your "llm" and the blog posts but somehow I missed them before. I believe I would be a lot less motivated to write ell if I had read your post first.

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#48
post #43

Ell is really cool! I'm building a similar product called Savvy( https://github.com/getsavvyinc/savvy-cli ) and considered an approach similar to yours (writing in pure bash) but ultimately decided to use Go for a few reasons: - charmbracelet makes it super easy to build rich TUI - Go produces a single binary that's compatible across many platforms and keeps installation simple - It's simpler to support multiple shel…

Thanks!

Another user[1] also mentioned Savvy but I misunderstood its purpose. Now I understand it does have a similar functionality of analyzing a record of terminal! Your approach allows more chances to let LLM explain what happens, while in my case, asking ell will immediately destroy the original context (the user may have to rerun the falsy command again and cause more damage). However, exiting and reentering recording mode also feels tedious. I must find a better way to interact.

https://news.ycombinator.com/item?id=41139040

Re: Show HN: Ell – A command-line interface for LLMs written in Bash

#49
post #44

Been using the LLM cli by simonw and love it. https://github.com/simonw/llm https://llm.datasette.io/en/stable/ Pro tip: Use $pbpaste to inject clipboard contents in a prompt

I don't have pbcopy and pbpaste on my machine but injecting clipboard sounds interesting.
Post reply on HN