An LLM-first programming language.
  • Racket 85.8%
  • Python 12.1%
  • AppleScript 1.6%
  • Makefile 0.5%
Find a file
2026-01-14 14:13:05 -08:00
llm Fix license metadata in info files 2024-08-21 17:38:10 -07:00
llm-benchmarks Add gpt4o version of change log demo 2024-10-03 17:50:16 -07:00
llm-doc Add replay log for documentation 2026-01-14 13:55:59 -08:00
llm-lang Fix license metadata in info files 2024-08-21 17:38:10 -07:00
llm-lib Bump default timeout to 5 minutes because that's what I always need 2026-01-14 14:13:05 -08:00
llm-test Replace generation with chat completion with history 2024-08-22 14:31:38 -07:00
racketcon-2024 Update slides 2024-10-04 17:26:43 -07:00
utils/MLCarbon Start reorganizing 2024-08-21 17:30:24 -07:00
.gitignore Tweak example to show using environment variables 2024-08-13 19:11:25 -07:00
demo.mp4 Reencode and try to embed demo video 2024-05-09 16:29:35 -07:00
demo.rkt Fix bug in demo 2024-09-20 15:55:40 -07:00
example1.rkt Start reorganizing 2024-08-21 17:30:24 -07:00
example2.rkt Start reorganizing 2024-08-21 17:30:24 -07:00
example3.rkt Start reorganizing 2024-08-21 17:30:24 -07:00
LICENSE Fix license 2024-08-20 15:55:00 -07:00
Makefile Build docs in htmls instead of html 2026-01-14 14:12:37 -08:00
README.md Build docs in htmls instead of html 2026-01-14 14:12:37 -08:00
screenshot.png update screenshot in README 2024-08-23 13:28:34 -07:00
test.md Initial prototype 2024-05-08 21:27:38 -07:00
unprompt-test.rkt Add prompt quasiquote/unquote logic 2024-09-25 11:20:34 -07:00

llm-lang

Getting Started

Install with raco pkg install llm or raco pkg install https://codeberg.org/wilbowma/llm-lang.git?path=llm#main. Then open the docs, raco doc llm, to see more! Or, browse them online:

TLDR

llm-lang is a language for first-class prompt-engineering in Racket. Inspired by GenAIScript (https://github.com/microsoft/genaiscript), but designed and implemented with language-oriented design in Racket. Everything is prompt-first, so all text in files in the REPL is, by default, unstructured text added to a prompt. You must escape the prompt to do regular programming, generate prompts, splice values into prompts, etc. The language is also designed to pay attention to, and give the programming controls over, the cost of prompts: https://docs.racket-lang.org/llm/LLM_Cost_Model.html.

See demo.mp4 for an out-dated usage demo video.

The language is designed to support multiple backends; see https://docs.racket-lang.org/llm/LLM_Backends.html for the current list of supported baceknds.