Terminal-first AI runtime for commands, chat, editing, tools, jobs, agents, and local workflows.
Docs hub: https://term-llm.com
- 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...curl -fsSL https://raw.githubusercontent.com/samsaffron/term-llm/main/install.sh | shFor 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.
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 chatIf 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_KEYThe detailed docs live at https://term-llm.com and are authored in Markdown in this repo, then built with Hugo.
Common entry points:
- Configuration
- Providers and models
- Web UI and API
- Search
- Usage
- Agents
- Skills
- MCP servers
- Memory
- Jobs
- Text embeddings
- Audio generation
- Music generation
- Usage tracking
- Transcription
- Notifications
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.shThe 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.
MIT
