Rendered at 13:15:03 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
Chu4eeno 17 hours ago [-]
You really should either just write it manually, or at least clean it up, 5kLOC of bash for POSTing and reading/writing files is a bit overkill (the code is extremely repetitive, verbose and just hard to follow).
kamaludu 17 hours ago [-]
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!
Tiberium 16 hours ago [-]
> I write
You mean the LLM writes the code based on your instructions (that's fine, I guess, but 5KLOC is huge for this kind of script).
kamaludu 15 hours ago [-]
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.
Tiberium 14 hours ago [-]
I think the fact that you only use the free plan might correlate with the code size and the need to debug/test a lot.
kamaludu 14 hours ago [-]
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 €
SupLockDef 16 hours ago [-]
Why are you posting this if you know it is of poor quality then?
It's certainly not because you are proud of yourself, it has been generated.
So I genuinely wonder why?
kamaludu 13 hours ago [-]
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.
eeertjoooo 16 hours ago [-]
[flagged]
porridgeraisin 15 hours ago [-]
I agree. What is with the random precore/core stuff anyways. But on the flip side, this thing seems to be doing a lot. I chugged through a couple thousand lines and there seems to be some amount of context management, I saw mentions of a history file, attachments, etc.
kamaludu 14 hours ago [-]
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.
athrowaway3z 7 hours ago [-]
You need to figure out how to prompt to get much more concise code.
This is just a casual scroll through for 2 seconds at function names i recognize and can tell are crap.
Sorry but this is crap. If you trust it to be an entirely self-contained abstraction that is fine. But if I'm building a brick house, and smash open 1 of the bricks, i dont want it to look this shoddy.
Any LLM you point at it, is going to be drastically dumber in editing it or auditing it because it needs to first parse all the crap a previous LLM generated. The fewer lines of code things use the better - it keeps models smarter when it matters. Plus it saves money in the long run.
kamaludu 30 minutes ago [-]
[dead]
kamaludu 17 hours ago [-]
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)
dezgeg 16 hours ago [-]
Have you actually tested the portability? MacOS ships an ancient bash version and neither mac or BSDs use GNU version of coreutils.
I'm also very doubtful performance of this would be faster than python, bash is very slow.
kamaludu 14 hours ago [-]
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.
thank you for your comment!
You mean the LLM writes the code based on your instructions (that's fine, I guess, but 5KLOC is huge for this kind of script).
It's certainly not because you are proud of yourself, it has been generated.
So I genuinely wonder why?
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.
This is just a casual scroll through for 2 seconds at function names i recognize and can tell are crap.
https://github.com/kamaludu/bash4llm/blob/d7258163dc1cbeb6ae...
https://github.com/kamaludu/bash4llm/blob/d7258163dc1cbeb6ae...
https://github.com/kamaludu/bash4llm/blob/d7258163dc1cbeb6ae...
Sorry but this is crap. If you trust it to be an entirely self-contained abstraction that is fine. But if I'm building a brick house, and smash open 1 of the bricks, i dont want it to look this shoddy.
Any LLM you point at it, is going to be drastically dumber in editing it or auditing it because it needs to first parse all the crap a previous LLM generated. The fewer lines of code things use the better - it keeps models smarter when it matters. Plus it saves money in the long run.
. 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)
I'm also very doubtful performance of this would be faster than python, bash is very slow.
We invited the user to rewrite it and I've moved that text to the top now, and re-upped the post so it gets its full time on /newest.