Skip to content
AI News HubLIVE
Original source2 min read

Using LLM in the shebang line of a script

Summary

This article demonstrates how to use the LLM CLI tool in a script's shebang line to directly invoke language models, supporting fragments, tool calls, and YAML templates to make text files executable.

Using LLM in the shebang line of a script
Report an error

The correction channel is not available yet. You can copy the article reference below for later.

Correction instructions
Read article

TIL: Using LLM in the shebang line of a script

Simon Willison’s Weblog

Subscribe

11th May 2026

TIL

Using LLM in the shebang line of a script — This comment on Hacker News inspired me to investigate patterns for using my LLM CLI tool in a shebang line:

Kim_Bruning on Hacker News:

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. Here's the simplest, which takes advantage of LLM fragments:

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

But you can also incorporate tool calls using the -T name_of_tool option:

#!/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 that uses the Datasette SQL API to answer questions about content on my blog.

Recent articles

Notes on the xAI/Anthropic data center deal - 7th May 2026

Live blog: Code w/ Claude 2026 - 6th May 2026

Vibe coding and agentic engineering are getting closer than I'd like - 6th May 2026

This is a beat by Simon Willison, posted on 11th May 2026.

ai 2014

generative-ai 1785

llms 1751

llm 598

llm-tool-use 68

Monthly briefing

Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments.

Pay me to send you less!

Sponsor & subscribe

Disclosures

Colophon

©

2002

2003

2004

2005

2006

2007

2008

2009

2010

2011

2012

2013

2014

2015

2016

2017

2018

2019

2020

2021

2022

2023

2024

2025

2026

Key points and analysis

Article intelligence

EngineersAdvanced

Key points

  • Use LLM fragments in shebang to generate content directly
  • Integrate tool calls with the -T option, e.g., to get the current time
  • Support YAML templates that define Python functions as tools
  • Example demonstrates mathematical calculations with tool debug output

Highlights and analysis are generated automatically and may contain errors. Check the original source.