Live data from Hacker News

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

github.com

31–40 of 88 posts

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

#31
Will check it out. Personally been using aichat[0] for this.

It's interesting you say there's no need for a more complex language than bash something like this. Doesn't the need for jq/curl/perl argue the opposite?

[0] https://github.com/sigoden/aichat

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

#32
post #30

Looks great! I work on a number of different machines, so having something lightweight(like written in shell) is always desired. Out of curiosity, can someone explain to me why certain commands start with a colon? Like : "${ELL_LOG_LEVEL:=2}";[1] I thought it was useful only as a no-op? [1]: https://github.com/simonmysun/ell/blob/main/ell.sh#L19C1-L19...

Thanks!

The colon is here to make sure the result is not executed. I learned that from here: https://stackoverflow.com/a/28085062/2485717

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

#33
post #30

Looks great! I work on a number of different machines, so having something lightweight(like written in shell) is always desired. Out of curiosity, can someone explain to me why certain commands start with a colon? Like : "${ELL_LOG_LEVEL:=2}";[1] I thought it was useful only as a no-op? [1]: https://github.com/simonmysun/ell/blob/main/ell.sh#L19C1-L19...

The : basically just tells bash to do nothing with the result of the line. So `: "${ELL_LOG_LEVEL:=2}";` would initialize `ELL_LOG_LEVEL` to 2 if it's not already set without producing any output.

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

#34
post #26

I also have a similar tool called https://autocomplete.sh https://github.com/closedloop-technologies/autocomplete-sh I really just wanted the feeling of tab-based auto-complete to just work in the terminal. It turns out that getting the LLM responses to 'play nice' with the expected format for bash_completion was a bit of a challenge, but once that worked, I could wrap all the LLMS (OpenAI, grok, Claude, local ones l…

The demo video is epic. Nicely done! https://youtu.be/IAgkjerCvz8

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

#35

This is cool! Using pure bash and unix tools is an interesting approach. I built Plandex[1] which has some similar goals (no dependencies, terminal-based, supports piping into context) but it takes quite a different route to get there—I’m using Go and compiling static binaries. It’s also ‘higher level’ and specifically focused on coding, whereas ell seems like a very lightweight and general purpose LLM tool. It remin…

Thanks! Plandex is also nice! I never thought of such workflow.

Unfortunately, I did not know Simon Willinson’s `llm` tool. I would imagine he must have written such softwares. It has support for more in-depth manipulating of LLMs. ell lacks these functionalities and only make use of the most commonly-used and also most basic interfaces but has more user experience improvements like pagination or syntax highlighting while keeping as lightweight as possible. I should mention `simonw/llm` in README and channel the user with demand of more LLM manipulations there.

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

#36
post #26

I also have a similar tool called https://autocomplete.sh https://github.com/closedloop-technologies/autocomplete-sh I really just wanted the feeling of tab-based auto-complete to just work in the terminal. It turns out that getting the LLM responses to 'play nice' with the expected format for bash_completion was a bit of a challenge, but once that worked, I could wrap all the LLMS (OpenAI, grok, Claude, local ones l…

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)

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

#37
post #34
post #26

I also have a similar tool called https://autocomplete.sh https://github.com/closedloop-technologies/autocomplete-sh I really just wanted the feeling of tab-based auto-complete to just work in the terminal. It turns out that getting the LLM responses to 'play nice' with the expected format for bash_completion was a bit of a challenge, but once that worked, I could wrap all the LLMS (OpenAI, grok, Claude, local ones l…

The demo video is epic. Nicely done! https://youtu.be/IAgkjerCvz8

Thank you! It was so much fun to make. And for once my son waking me up at 2am had a positive result!

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

#38
post #28
post #26

I also have a similar tool called https://autocomplete.sh https://github.com/closedloop-technologies/autocomplete-sh I really just wanted the feeling of tab-based auto-complete to just work in the terminal. It turns out that getting the LLM responses to 'play nice' with the expected format for bash_completion was a bit of a challenge, but once that worked, I could wrap all the LLMS (OpenAI, grok, Claude, local ones l…

Looks interesting! Does it work with the Fish shell? And, in case, how do I update or uninstall it?

`autocomplete remove` will delete it. I haven't tested it in fish / zsh shells.

Now that I have some Mac iOS dev work to do I'll probably build and test it

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

#39

Will check it out. Personally been using aichat[0] for this. It's interesting you say there's no need for a more complex language than bash something like this. Doesn't the need for jq/curl/perl argue the opposite? [0] https://github.com/sigoden/aichat

Indeed. That's why I list them as limitations. My original idea was to get everything done with Bash. This is however not feasible as the reasons listed. Maybe I can get rid of jq and perl using awk, but that would sacrifice a lot of simplicity and readablity of the code.

I think implementing the syntax highlighter is the bottom line of my insist. I would prefer not to write anything more complex than that with Bash. They will be either not supported, or supported via external plugins.

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

#40

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…

>I prefer using system secret stores to environment variables What is the recommended way to store secrets in a Linux dev machine? The requirement is random scripts and programs should be able to load their secrets like API keys at runtime with minimum hassle. And the secrets shouldn't be stored on disk in plain-text. I see you recommended keyring [1]. Is this "the GNU/linux way"? I see another possibility being stor…

I did a fair amount of looking to try and support a Linux secret store! My conclusion was that I was too confused and so I punted to keyring which seemed to paper over a few different stores.

It seems like a classic story of unfortunate Linux fragmentation

Post reply on HN