Using LLM in the shebang line of a script

TIL: Using LLM in the shebang line of a script (https://til.simonwillison.net/llms/llm-shebang) Kim_Bruning on Hacker News (https://news.ycombinator.com/item?id=48073246#48090590): But

TIL: Using LLM in the shebang line of a script (https://til.simonwillison.net/llms/llm-shebang)

    Kim_Bruning on Hacker News (https://news.ycombinator.com/item?id=48073246#48090590):

But seriously, you can put a shebang on an english text file now (if you’re sufficiently brave) […]

This inspired me to look at patterns for doing exactly that with LLM (https://llm.datasette.io/en/stable/). Here’s the simplest:

#!/usr/bin/env -S llm -f Generate an SVG of a pelican riding a bicycle

But you can also incorporate tool calls:

#!/usr/bin/env -S llm -T llm_time -f Write a haiku that mentions the exact current time

Or even execute YAML templates directly that define extra tools as Python functions:

#!/usr/bin/env -S llm -t model: gpt-5.4-mini system: | Use tools to run calculations functions: | def add(a: int, b: int) -> int: return a + b def multiply(a: int, b: int) -> int: return a * b

Then:

./calc.sh ‘what is 2344 * 5252 + 134’ –td

Which outputs (thanks to that –td tools debug option):

Tool call: multiply({‘a’: 2344, ‘b’: 5252}) 12310688

Tool call: add({‘a’: 12310688, ‘b’: 134}) 12310822

2344 × 5252 + 134 = 12,310,822

Read the full TIL for a more complex example (https://til.simonwillison.net/llms/llm-shebang#templates-with-tools) that uses the Datasette SQL API to answer questions about content on my blog.

    Tags: llm (https://simonwillison.net/tags/llm), llm-tool-use (https://simonwillison.net/tags/llm-tool-use), llms (https://simonwillison.net/tags/llms), ai (https://simonwillison.net/tags/ai), generative-ai (https://simonwillison.net/tags/generative-ai)
Write a comment
No comments yet.