what are the use cases for llm, the CLI tool? I keep finding tgpt or the bulletin AI features of iTerm2 sufficient for quick shell scripting. does llm have any special features that others don't? am I missing something?
I don't use llm, but I have my own "think" tool (with MUCH less support than llm, it just calls openai + some special prompt I have set) and what I use it for is when I need to call an llm from a script. Most recently I wanted a script that could produce word lists from a dictionary of 180k words given a query, like "is this an animal?" The script breaks the dictionary up into chunks of size N (asking "which of these…
Show HN: My LLM CLI tool can run tools now, from Python code or plugins
51–60 of 178 posts
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#52Earlier quoted context omitted.
I get the impression that the key to getting great performance out of tool calls is having a really detailed system prompt, with a bunch of examples. Anthropic's system prompt just for their "web_search" tool is over 6,000 tokens long! https://simonwillison.net/2025/May/25/claude-4-system-prompt...
Is no one else bothered by that way of using tools? Tools feel like a way to get deterministic behavior from a very hallucinatory process. But unless you put a very lengthy and comprehensive non-deterministic English statement, you can't effectively use tools. As we all know, the more code, the more bugs. These long and often hidden prompts seem like the wrong way to go. And, this is why I'm very excited about this a…
See also my multi-year obsession with prompt injection and LLM security, which still isn't close to being a solved problem: https://simonwillison.net/tags/prompt-injection/
Yet somehow I can't tear myself away from them. The fact that we can use computers to mostly understand human language (and vision problems as well) is irresistible to me.
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#53It's worth noting the streaming markdown renderer I wrote just for this tool: https://github.com/day50-dev/Streamdown More background: https://github.com/simonw/llm/issues/12 (Also check out https://github.com/day50-dev/llmehelp which features a tmux tool I built on top of Simon's llm. I use it every day. Really. It's become indispensable)
Wow, that library is looking really great! I think I want a plugin hook that lets plugins take over the display of content by the tool. Just filed an issue: https://github.com/simonw/llm/issues/1112 Would love to get your feedback on it, I included a few design options but none of them feel 100% right to me yet.
We have cost, latency, context window and model routing but I haven't seen anything semantic yet. Someone's going to do it, might as well be me.
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#54This greatly opens up the risk of footguns. The doc [1] warns about prompt injection, but I think a more likely scenario is self-inflicted harm. For instance, you give a tool access to your brokerage account to automate trading. Even without prompt injection, there's nothing preventing the bot from making stupid trades. [1] https://llm.datasette.io/en/stable/tools.html
[flagged]
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#55This greatly opens up the risk of footguns. The doc [1] warns about prompt injection, but I think a more likely scenario is self-inflicted harm. For instance, you give a tool access to your brokerage account to automate trading. Even without prompt injection, there's nothing preventing the bot from making stupid trades. [1] https://llm.datasette.io/en/stable/tools.html
If you hook an llm up to your brokerage account, someone is being stupid, but it ain't the bot.
This is absolutely going to happen at a large scale and then we'll have "cautionary tales" and a lot of "compliance" rules.
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#56Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#57Have you guys had luck with tool calls? I made a simple assistant with access to my calendar, and most models fail to call the tool to add calendar events. GPT-4.1 also regularly tries to gaslight me into believing that it added the event when it didn't call the tool! Overall, I found tool use extremely hit-and-miss, to the point where I'm sure I'm doing something wrong (I'm using the OpenAI Agents SDK, FWIW).
I get the impression that the key to getting great performance out of tool calls is having a really detailed system prompt, with a bunch of examples. Anthropic's system prompt just for their "web_search" tool is over 6,000 tokens long! https://simonwillison.net/2025/May/25/claude-4-system-prompt...
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#58It's worth noting the streaming markdown renderer I wrote just for this tool: https://github.com/day50-dev/Streamdown More background: https://github.com/simonw/llm/issues/12 (Also check out https://github.com/day50-dev/llmehelp which features a tmux tool I built on top of Simon's llm. I use it every day. Really. It's become indispensable)
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#59It's worth noting the streaming markdown renderer I wrote just for this tool: https://github.com/day50-dev/Streamdown More background: https://github.com/simonw/llm/issues/12 (Also check out https://github.com/day50-dev/llmehelp which features a tmux tool I built on top of Simon's llm. I use it every day. Really. It's become indispensable)
Neat! I've written streaming Markdown renderers in a couple of languages for quickly displaying streaming LLM output. Nice to see I'm not the only one! :)
That's why everybody else either rerenders (such as rich) or relies on the whole buffer (such as glow).
I didn't write Streamdown for fun - there are genuinely no suitable tools that did what I needed.
Also various models have various ideas of what markdown should be and coding against CommonMark doesn't get you there.
Then there's other things. You have to check individual character width and the language family type to do proper word wrap. I've seen a number of interesting tmux and alacritty bugs in doing multi language support
The only real break I do is I render h6 (######) as muted grey.
Compare:
for i in $(seq 1 6); do
printf "%${i}sh${i}\n\n-----\n" | tr " " "#";
done | pv -bqL 30 | sd -w 30
to swapping out `sd` with `glow`. You'll see glow's lag - waiting for that EOF is annoying.Also try sd -b 0.4 or even -b 0.7,0.8,0.8 for a nice blue. It's a bit easier to configure than the usual catalog of themes that requires a compilation after modification like with pygments.
Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins
#60Earlier quoted context omitted.
Is no one else bothered by that way of using tools? Tools feel like a way to get deterministic behavior from a very hallucinatory process. But unless you put a very lengthy and comprehensive non-deterministic English statement, you can't effectively use tools. As we all know, the more code, the more bugs. These long and often hidden prompts seem like the wrong way to go. And, this is why I'm very excited about this a…
As an experienced software engineer I'm bothered about pretty much everything about how we develop things on top of LLMs! I can't even figure out how to write automated tests for them. See also my multi-year obsession with prompt injection and LLM security, which still isn't close to being a solved problem: https://simonwillison.net/tags/prompt-injection/ Yet somehow I can't tear myself away from them. The fact that…