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 hub: https://term-llm.com

Why it exists

  • turn natural language into executable shell commands
  • run persistent chat with tools and MCP servers
  • edit files with model assistance
  • support agents, skills, sessions, jobs, and local automation
  • work with hosted or local models
$ term-llm exec "find all go files modified today"

> find . -name "*.go" -mtime 0   Uses find with name pattern
  fd -e go --changed-within 1d   Uses fd (faster alternative)
  find . -name "*.go" -newermt "today"   Alternative find syntax
  something else...

Install

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

For a source build, clone the repository and install from its root:

git clone https://github.com/samsaffron/term-llm.git
cd term-llm
go install .

go install github.com/samsaffron/term-llm@latest cannot build this repository: the application intentionally uses local replace directives for the owned Bubble Tea, Ultraviolet, and reflow modules, and dependency-local replacements are not available to an external go install ...@version build. Use the installer/release archive or build from a complete checkout.

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

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, run the complete root suite and the owned nested-module verification:

go 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

Watchers

Forks

Releases

Packages

Contributors

Languages