# Install llm with Homebrew, apt, Nix

Access large language models from the command-line. Version 0.31 via Homebrew; verified 2026-05-21.

## Install

```sh
sudo av install brew:llm
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install llm
```

  Evidence: local Homebrew formula metadata

### Linux

- Debian apt (92%):

```sh
sudo apt install llm
```

  Evidence: Debian stable package indexes: llm from https://deb.debian.org/debian/dists/stable/contrib/binary-amd64/Packages.xz

- Nix (92%):

```sh
nix profile install nixpkgs#llm
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ll/llm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:llm
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/llm>
- **Version:** 0.31
- **Source summary:** Access large language models from the command-line
- **Homepage:** <https://llm.datasette.io/>
- **Repository:** <https://github.com/simonw/llm>
- **Upstream docs:** <https://llm.datasette.io/en/stable>
- **License:** Apache-2.0
- **Source archive:** <https://files.pythonhosted.org/packages/7d/f2/3a81744fdaf3a92fe9020dc298dd2e4c144e2e7fcab863e1a132ea537cab/llm-0.31.tar.gz>
- **Last updated:** 2026-05-21T13:16:12Z
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- llm (cli)
- llm (alias)

## Dependencies

- certifi
- libyaml
- pydantic
- python@3.14

## Build dependencies

- rust

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 0.31
- Package-manager updated: 2026-05-21
- Local data: ok
- Upstream repository: https://llm.datasette.io/
- info: Release/tag comparison is only available for GitHub repositories.
## Project history and usage

LLM is Simon Willison's command-line tool and Python library for working with large language models. It started as an OpenAI-focused CLI in 2023 and evolved into a plugin-based interface for remote APIs, local models, embeddings, prompt templates, logging, attachments, schemas, and tool use.

### Project history

The changelog records version 0.1 on April 1, 2023 as the initial prototype release. Version 0.5 on July 12, 2023 added a plugin mechanism for additional language models, a key change that moved LLM beyond a single-provider OpenAI wrapper.

During 2023 and 2024, LLM added chat, embeddings, templates, SQLite logging and search, model aliases, attachments, async models, and broader provider support. In May 2025, version 0.26 added tool support, letting models execute Python functions through the CLI and Python API.

### Adoption history

LLM became part of the Datasette-adjacent command-line culture around small composable tools, SQLite-backed logs, and plugin systems. Homebrew, Debian, and Nix packaging made it easy to install as a normal developer utility rather than only as a Python package.

Its adoption expanded with the growth of provider-specific plugins and local-model integrations, giving users one command-line interface across OpenAI, Anthropic, Gemini, Ollama-backed models, and many community plugins.

### How it is used

Common uses include running one-off prompts from the shell, piping files into a model, starting interactive chats, storing API keys, saving prompt templates, logging responses to SQLite, generating embeddings, and calling models from Python code.

The documented configuration paths and keys.json locations matter to package users because Homebrew installs the executable, while user-specific model keys, templates, logs, and extra model definitions live outside the package prefix.

### Why package nerds care

LLM is package-nerd significant because it turns rapidly changing AI APIs into a stable Unix-style command with plugins. The packaging story is unusually important: users want a single binary-ish command in PATH, but the real extension surface is Python plugins and user configuration.

It is also a useful example of modern CLI state management: credentials, templates, provider models, logs, and tool definitions are intentionally external to the package, so upgrades can move the application forward without overwriting user data.

### Timeline

- 2023-04-01: LLM 0.1 initial prototype release.
- 2023-07-12: LLM 0.5 added the plugin mechanism for additional language models.
- 2024-10-29: LLM 0.17 added attachment support for multimodal models.
- 2025-05-27: LLM 0.26 added tool support.
- 2026-06-09: LLM 0.32a3 appeared in the changelog with tool-call and human-in-the-loop improvements.

### Related projects

- Datasette is related through the broader Simon Willison/Datasette tooling ecosystem and the io.datasette.llm application data namespace.
- LLM plugins such as provider adapters and local-model integrations are central to the project's architecture.
- SQLite is related through LLM's prompt and response logging features.

### Sources

- <https://formulae.brew.sh/formula/llm>
- <https://github.com/simonw/llm>
- <https://github.com/simonw/llm/releases/tag/0.1>
- <https://llm.datasette.io/>
- <https://llm.datasette.io/en/stable/changelog.html>
- <https://llm.datasette.io/en/stable/setup.html>


## Security Notes

No matching local secret-handling manifest was found for llm. Nucleus package metadata is still published here so future coverage has a stable package URL.



## Configuration and credential file locations

These source-backed paths show where this package keeps local settings or durable credentials. Automic Vault can use them as review targets for secret scanning, migration, and command approval.


## Configuration files

- Linux: ~/.config/io.datasette.llm/, ~/.config/io.datasette.llm/templates/*.yaml, ~/.config/io.datasette.llm/extra-openai-models.yaml
- macOS: ~/Library/Application Support/io.datasette.llm/, ~/Library/Application Support/io.datasette.llm/templates/*.yaml, ~/Library/Application Support/io.datasette.llm/extra-openai-models.yaml

## Credential files

- Linux: ~/.config/io.datasette.llm/keys.json
- macOS: ~/Library/Application Support/io.datasette.llm/keys.json
## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** llm
- **Version Scheme:** 0
- **Revision:** 1
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** stable

## Other Package-Manager Records

- Debian apt - llm - 0.23-1: normalized package name match | Debian stable package indexes: llm from https://deb.debian.org/debian/dists/stable/contrib/binary-amd64/Packages.xz | CLI utility and Python library for interacting with Large Language Models | https://github.com/simonw/llm
- Nix - llm: normalized package name match | nixpkgs package indexes: pkgs/by-name/ll/llm/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1


## Related links

- [MCP tool packages](https://www.automicvault.com/pkg/mcp-tools/) - Mentions MCP or Model Context Protocol.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Text processing packages](https://www.automicvault.com/pkg/text-processing-tools/) - Matched text, document, or structured-data processing metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [python@3.14](https://www.automicvault.com/pkg/brew/python-3-14/) - Runtime dependency declared by Homebrew.
- [rust](https://www.automicvault.com/pkg/brew/rust/) - Build dependency declared by Homebrew.
- [crit](https://www.automicvault.com/pkg/brew/crit/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [hyper-mcp](https://www.automicvault.com/pkg/brew/hyper-mcp/) - Shares av.db curated category or tags: ai, cli, developer-tools, plugins.
- [llmfit](https://www.automicvault.com/pkg/brew/llmfit/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [rails-mcp-server](https://www.automicvault.com/pkg/brew/rails-mcp-server/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [supabase-mcp-server](https://www.automicvault.com/pkg/brew/supabase-mcp-server/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [terraform-mcp-server](https://www.automicvault.com/pkg/brew/terraform-mcp-server/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [toktop](https://www.automicvault.com/pkg/brew/toktop/) - Shares av.db curated category or tags: ai-tools, cli, developer-tools.
- [aichat](https://www.automicvault.com/pkg/brew/aichat/) - Shares av.db curated category or tags: ai, cli, developer-tools.
- [mlx-lm](https://www.automicvault.com/pkg/brew/mlx-lm/) - Both packages touch the same language runtime or ecosystem. Shared terms: certifi, cli, developer, developer-tools, language.
- [pieces-cli](https://www.automicvault.com/pkg/brew/pieces-cli/) - Both packages touch the same language runtime or ecosystem. Shared terms: ai, certifi, cli, command-line, developer.
- [gptme](https://www.automicvault.com/pkg/brew/gptme/) - Both packages touch the same language runtime or ecosystem. Shared terms: ai, certifi, cli, developer, developer-tools.

## Combined YAML source

View the package source record on GitHub. [combined/llm.yml](https://github.com/automic-vault/db/blob/main/combined/llm.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated configuration and credential file locations
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
