kamaludu
kamaludu on Hacker News
You're right, starting with that context would have helped.
It's an experimental project and of course there will be imperfections,
whether written by me or with LLM assistance. I did my best.
For ethical principles I 100% agree with you.
I used LLMs to generate parts of the code, but the architecture, integration, debugging and testing are mine. It took me months in my free time.
So, what can I say to be 100% honest?
Nice! your project use smaller components (do one thing and do it well), bash4llm is more monolithic because I focus Bash-only portability and security.
different approach for similar ideas, I see your repo, thank you!
English idioms are hard for me (I'm Italian), so I can misunderstand your point.
bash4llm is long because it uses pure Bash, and making Bash-only reasonably safe and consistent for LLM calls it's difficult. For me, that's exactly what I like in the project.
I don't think it is of poor quality.
I post this because I wish it is good for others.
It's not auto generated, I made this.
I don't think , I can pay if it's really good for this work, but I've seen the characteristics of pay plan and are not really better for my use case.
The free plan is not the reason for the code size; the architecture is the reason.
the best choice for me, for this work, is to have a real AI (not a toy installed on a laptop) without limitations and filters, but for this need many tens of thousands of €
I work with termux on Android, and it works fine.
For now, I've not tested bash4llm on other environments, but I think it does work because the required packages are the minimum common denominator for all environments, ad with this requirements installed it should work on bsd-like too.
I tried python too, at the start, and it was too slow.
The macro sections/sections/sub-sections in the code are not random, I intentionally decide that.
In brief:
PRECORE_BOOT - for initialization
PRECORE_RUN - persistency, history, cache
PROVIDER - embedded provider (groq)
CORE_SETUP - global runtime configuration, parsing parameters, LLM whitelist, user configuration
CORE_PROVIDER - providers validation, prompt assembly, chat sessions, models tuning
The macro sections has two functions:
1, for me, to navigate the code
2, for LLMs, to understand my structure
The project does many things, so i need a clear sections structure to separate responsibilities.
You can see more information on the documentation, but the architectural spec is only in Italian.
Architecture and structure are my decisions, LLM are instruments, simple executors, today i think are commonly used.
Write code with LLM is not "push a button", it's a technical way of work, needs study and practice.
5k lines are months of work, debug, refactor, testing.
5k lines are the result of a long (and difficult) work, but LLM helps your productivity.
The most important thing, for the humans, are the architectural decisions, and understanding how your current LLM reasoning and behavior.
I decide architecture and structure; LLM only writes code (that need debug and testing), LLM are executors, not automatic.
LLM are only software, and are new instruments to learn.
Important thing: I use only free plan, of LLMs that have a real free plan.
Yes, the code is big and bulky, i know.
But i am a single person, not a team.
I write simple and clear for me, because i need to mantain it.
Only Bash, zero dependencies, i like this.
thank you for your comment!
well, i write Bash4LLM to be:
. Portable - You need only: bash, coreutils, findutils, util-linux, gawk, curl, jq.
No Python (slow), no Node (heavy), no Golang (need too many binaries, one for each OS, hard to maintain for one single person like me).
. Single file - only one. I write many extras, but all are optional.
. Idempotent - you copy it where you want and go!
. Transparent - open the file and read.
. Extras for all, and all optional: help file, extra providers, improved session engine,
small GUI/CGI, etc...
Default (embedded) provider is Groq, because when I start the project, was the best free API service for AI.
I'm ready to answer to your question... with my terrible english...
Cristian (kamaludu)
Posted by
kamaludu on Sunday June 28, 2026 @03:43PM
from the show-hn dept.
https://github.com/kamaludu/bash4llm/
Bash4LLM is a single-file Bash wrapper for interacting with LLMs from the terminal. I created it because I wanted something simple that worked without installing Python, Node, or any other runtime.It uses only Bash, curl, and jq. You can send prompts, start a small chat, process files line by line, stream output, and save session metadata in JSON format.I tried to make it safe and predictable:...
Posted by
kamaludu on Sunday January 25, 2026 @06:52PM
from the show-hn dept.
https://github.com/kamaludu/groqbash
I built GroqBash, a single‑file Bash client for the Groq API (OpenAI‑compatible).
I wanted something fully auditable, with no dependencies, and that worked reliably on Termux, where /tmp isn’t writable.
Everything lives inside a self‑created groqbash.d directory, and the core script avoids eval, avoids /tmp, and keeps permissions strict.The project now includes optional extras: additional...