Live data from Hacker News

Show HN: My LLM CLI tool can run tools now, from Python code or plugins

simonwillison.net

131–140 of 178 posts

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#132

It'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)

Also I forgot to one other built on llm. This one is a ZSH plugin that uses zle to translate your English to shell commands with a keystroke. https://github.com/day50-dev/Zummoner It's been life changing for me. Here's one I wrote today: $ git find out if abcdefg is a descendent of hijklmnop In fact I used it in one of these comments $ for i in $(seq 1 6); do printf "%${i}sh${i}\n\n-----\n" | tr " " "#"; done | pv -b…

Ah this is great, in combo with something like superwhisper you can use voice for longer queries.

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#133
post #118
post #116

This is great! AIUI, llama.cpp does support tools, but I haven't figured out yet what to do to make llm use it. Is there anything I can put into extra-openai-models.yaml to make this work?

That's likely a change that needs to be made to either https://github.com/simonw/llm-gguf or https://github.com/simonw/llm-llama-server ... OK, I got the second one working! brew install llama.cpp llama-server --jinja -hf unsloth/gemma-3-4b-it-GGUF:Q4_K_XL Then in another window: llm install llm-llama-server llm -m llama-server-tools -T llm_time 'what time is it?' --td Wrote it up here: https://simonwillison.net/2025…

Great, this works here. I wonder, with extra-openai-models.yaml I was able to set the api_base and vision/audio: true. How do I do this with the llama-server-tools plugin? vision works, but llm refuses to attach audio because it thinks the model does not support audio /which it does).

EDIT: I think I just found what I want. There is no need for the plugin, extra-openai-models.yaml just needs "supports_tools: true" and "can_stream: false".

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#134

It'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)

Also I forgot to one other built on llm. This one is a ZSH plugin that uses zle to translate your English to shell commands with a keystroke. https://github.com/day50-dev/Zummoner It's been life changing for me. Here's one I wrote today: $ git find out if abcdefg is a descendent of hijklmnop In fact I used it in one of these comments $ for i in $(seq 1 6); do printf "%${i}sh${i}\n\n-----\n" | tr " " "#"; done | pv -b…

This is fantastic! Thank you for that.

I use fish, but the language change is straightforward https://github.com/viktomas/dotfiles/blob/master/fish/.confi...

I'll use this daily

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#135
Thanks for making this. I used it (0.26a0) last week to create a demo for a customer-facing chatbot using proprietary data.

The key elements I had to write:

- The system prompt

- Tools to pull external data

- Tools to do some calculations

Your library made the core functionality very easy.

Most of the effort for the demo was to get the plumbing working (a nice-looking web UI for the chatbot that would persist the conversation, update nicely if the user refreshed their browser due to a connection issue, and allow the user to start a new chat session).

I didn't know about `after_call=print`. So I'm glad I read this blog post!

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#138

This 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

Yes, sandboxing will be crucial. On macOS it's not that hard, but there aren't good easy to use tools available for it right now. Claude Code has started using Seatbelt a bit to optimize the UX.

Re: Show HN: My LLM CLI tool can run tools now, from Python code or plugins

#139
Thanks for writing the LLM CLI.

It's been a very useful tool to test out and prototype using various LLM features like multimodal, schema output and now tools as well! I specifically like that I can just write a python function with type annotations and plug it to the LLM.

Post reply on HN