Coyote is an all-in-one, batteries-included, LLM CLI tool featuring Shell Assistant, CLI & REPL Mode, RAG, AI Tools & Agents, and More.
It is designed to include a number of useful agents, roles, macros, and more so users can get up and running with Coyote in as little time as possible. You can also install entire bundles of agents, roles, macros, tools, and MCP servers from any git repository. See Sharing Configurations for more information.

Coming from AIChat? Follow the migration guide to get started.
sbx CLI.coyote --init-memory [global|workspace].Coyote requires the following tools to be installed on your system:
* jq
* brew install jq
* usql (For the sql agent)
* brew install xo/xo/usql
* docker
* uv
* curl -LsSf https://astral.sh/uv/install.sh | sh
These tools are used to provide various functionalities within Coyote, such as document processing, JSON manipulation, etc., and they are used within agents and tools.
If you have Cargo installed, then you can install coyote from Crates.io:
cargo install coyote-ai # Binary name is `coyote`
# If you encounter issues installing, try installing with '--locked'
cargo install --locked coyote-ai
To install Coyote from Homebrew, install the coyote tap. Then you'll be able to install coyote:
brew tap Dark-Alex-17/coyote
brew install coyote
# If you need to be more specific, use:
brew install Dark-Alex-17/coyote/coyote
To upgrade coyote using Homebrew:
brew upgrade coyote
bash)You can use the following command to run a bash script that downloads and installs the latest version of coyote for your
OS (Linux/MacOS) and architecture (x86_64/arm64):
curl -fsSL https://raw.githubusercontent.com/Dark-Alex-17/coyote/refs/heads/main/scripts/install_coyote.sh | bash
PowerShell)You can use the following command to run a PowerShell script that downloads and installs the latest version of coyote
for your OS (Windows/Linux/MacOS) and architecture (x86_64/arm64):
powershell -NoProfile -ExecutionPolicy Bypass -Command "iwr -useb https://raw.githubusercontent.com/Dark-Alex-17/coyote/refs/heads/main/scripts/install_coyote.ps1 | iex"
Binaries are available on the releases page for the following platforms:
| Platform | Architecture(s) |
|---|---|
| macOS | x86_64, arm64 |
| Linux GNU/MUSL | x86_64, aarch64 |
| Windows | x86_64, aarch64 |
To use a binary from the releases page on Windows, do the following:
coyote.exe!To use a binary from the releases page on Linux/MacOS, do the following:
cd to the directory where you downloaded the binary.tar -C /usr/local/bin -xzf coyote-<arch>.tar.gz (Note: This may require sudo)coyote!Coyote can update itself in place to the latest GitHub release. Run coyote --update
for the newest release, or coyote --update v0.4.0 for a specific version:
coyote --update
coyote --update v0.4.0
The same is available from within the REPL via .update and .update v0.4.0.
If Coyote was installed with a package manager, prefer that package manager so its
records stay in sync with the binary on disk; i.e. brew upgrade coyote for Homebrew,
or cargo install --locked coyote-ai for Cargo.
When Coyote detects a package-manager install it prints a warning and asks for
confirmation. In a non-interactive shell (no TTY), pass --force to update
anyway:
coyote --update --force
After installation, you can generate the configuration files and directories by simply running:
coyote --info
Then, you need to set up the Coyote vault by creating a vault password file. Coyote will do this for you automatically and guide you through the process when you first attempt to access the vault. So, to get started, you can run:
coyote --list-secrets
Each client in your configuration needs authentication (with a few exceptions; e.g. ollama). Most clients use an API key
(set via api_key in the config or through the vault). For providers that support OAuth (e.g. Claude Pro/Max
subscribers, Google Gemini), you can authenticate with your existing subscription instead:
# In your config.yaml
clients:
- type: claude
name: my-claude-oauth
auth: oauth # Indicate you want to authenticate with OAuth instead of an API key
coyote --authenticate my-claude-oauth
# Or via the REPL: .authenticate
For full details, see the authentication documentation.
You can also enable tab completions to make using Coyote easier. To do so, add the following to your shell profile:
# Bash
# (add to: `~/.bashrc`)
source <(COMPLETE=bash coyote)
# Zsh
# (add to: `~/.zshrc`)
source <(COMPLETE=zsh coyote)
# Fish
# (add to: `~/.config/fish/config.fish`)
source <(COMPLETE=fish coyote | psub)
# Elvish
# (add to: `~/.elvish/rc.elv`)
eval (E:COMPLETE=elvish coyote | slurp)
# PowerShell
# (add to: `$PROFILE`)
$env:COMPLETE = "powershell"
coyote | Out-String | Invoke-Expression
You can integrate Coyote's Shell Assistant into your shell for enhanced command-line assistance. Add the code in the
corresponding shell integration script to your shell. Then, you can invoke Coyote to convert natural language to
shell commands by pressing Alt-e. For example:
$ find all markdown files<Alt-e>
# Will be converted to:
find . -name "*.md"
The location of the global Coyote configuration varies between systems, so you can use the following command to find your
config.yaml file:
coyote --info | grep 'config_file' | awk '{print $2}'
The configuration file consists of a number of settings. To see a full example configuration file with every setting defined, refer to the example configuration file.
The following settings are available to configure the default LLM that is used when you start Coyote, and its hyperparameters:
| Setting | Description |
|---|---|
model |
The default LLM to use when no model is provided |
temperature |
The default temperature parameter for all models (0,1); Used unless explicitly overridden |
top_p |
The default top_p hyperparameter value to use for all models, with a range of (0,1) (or (0,2) for some models); |
Used unless explicitly overridden |
You can use the following settings to modify the behavior of Coyote:
| Setting | Default Value | Description |
|---|---|---|
stream |
true |
Controls whether to use stream-style APIs when querying for completions from LLM providers |
save |
true |
Controls |
$ claude mcp add coyote \
-- python -m otcore.mcp_server <graph>