Skip to content

Repository files navigation

term-llm logo

term-llm

Terminal-first AI runtime for commands, chat, editing, tools, jobs, agents, and local workflows.

Release

Docs: https://term-llm.com

Install

With the release installer (recommended):

curl -fsSL https://raw.githubusercontent.com/samsaffron/term-llm/main/install.sh | sh

Or with Homebrew:

brew install samsaffron/tap/term-llm

For a source build, clone the repository and build from its root. This requires Go, Node.js 24 or newer, npm, and Make:

git clone https://github.com/samsaffron/term-llm.git
cd term-llm
make build
./term-llm version

make build installs the locked frontend dependencies when needed, generates the embedded web UI, and then builds the Go binary with the current version, commit, and UTC build time embedded. The generated frontend bundles are intentionally not checked into Git, so plain go build from a fresh checkout will fail until make frontend has run.

go install github.com/samsaffron/term-llm@latest cannot build this repository: in addition to the generated frontend prerequisite, the application intentionally uses local replace directives for the owned Bubble Tea, Ultraviolet, and reflow modules. Use the installer/release archive or make build from a complete checkout.

Shell completions are available for Bash, Zsh, Fish, and PowerShell. Fish users can install an auto-loaded completion file with:

term-llm config completion fish --install

See the installation guide for every shell and manual setup.

30-second quickstart

No API key needed if you use Zen:

term-llm exec --provider zen "list files"
term-llm ask --provider zen "explain git rebase"
term-llm chat
term-llm serve web

If you already have a provider key:

export ANTHROPIC_API_KEY=your-key
# or OPENAI_API_KEY / GEMINI_API_KEY / OPENROUTER_API_KEY / XAI_API_KEY / NEARAI_API_KEY / SAMBANOVA_API_KEY

Read the docs

The detailed docs live at https://term-llm.com and are authored in Markdown in this repo, then built with Hugo.

Common entry points:

Contributing

The root go test ./... command does not cross Go module boundaries. During development, use Go's standard short mode to skip subprocess-heavy integration tests:

go test -short ./...

Before submitting or merging, generate the frontend and run the complete root suite plus the owned nested-module verification:

make build
go test ./...
go vet ./...
scripts/verify_nested_modules.sh
VERIFY_RACE=1 scripts/verify_nested_modules.sh

The terminal event loop/runtime and cell/diff/output renderer under internal/terminal/ are deliberately reduced, application-owned source modules rather than external dependency copies. They preserve the Bubble Tea and Ultraviolet module paths only because Bubbles and Huh require exact import and concrete type identity. See internal/terminal/README.md for the ownership contract, architecture, provenance, selective-sync workflow, fuzz/benchmark commands, and cross-build matrix. Run scripts/cross_build_owned_terminal.sh when changing platform- or release-sensitive terminal code.

License

MIT

About

LLM Swiss Army Knife for your Terminal

Resources

Stars

109 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages