Prerequisites
Coyote requires the following tools to be installed on your system:
- jq
brew install jq
- usql (For the
sqlagent)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, and they are used within agents and tools.
Install
Cargo
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
Homebrew (Mac/Linux)
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
Scripts
Linux/MacOS (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/main/install_coyote.sh | bash
Windows/Linux/MacOS (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/main/scripts/install_coyote.ps1 | iex"
Manual
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 |
Windows Instructions
To use a binary from the releases page on Windows, do the following:
- Download the latest binary for your OS.
- Use 7-Zip or TarTool to unpack the Tar file.
- Run the executable
coyote.exe!
Linux/MacOS Instructions
To use a binary from the releases page on Linux/MacOS, do the following:
- Download the latest binary for your OS.
cdto the directory where you downloaded the binary.- Extract the binary with
tar -C /usr/local/bin -xzf coyote-<arch>.tar.gz(Note: This may requiresudo) - Now you can run
coyote!
Updating Coyote
Coyote can update itself in place. Running:
coyote --update
downloads the latest release from GitHub for your operating system and
architecture, replaces the running coyote binary, and reports the new version.
Restart Coyote afterwards for the update to take effect.
To update to a specific release instead of the latest, pass a version. Either pass
the bare version or the v-prefixed tag:
coyote --update v0.4.0
# or
coyote --update 0.4.0
If Coyote is already on the requested version, it reports that and makes no changes.
Package-manager installs
If Coyote was installed with Homebrew or cargo install, replacing the binary in
place would leave your package manager's records out of sync with the file on
disk. When coyote --update detects one of these installs it prints a warning
and:
- in an interactive terminal, asks for confirmation before continuing;
- in a non-interactive context (such as a script), refuses unless
--forceis passed.
coyote --update --force
For Homebrew and Cargo installs the recommended way to update remains your package manager:
brew upgrade coyote # Homebrew
cargo install --locked coyote-ai # Cargo
Permissions
coyote --update replaces the binary at its current location. If that directory
is not writable by your user (for example a coyote placed in /usr/local/bin
by root), the update stops before downloading anything and asks you to re-run
with elevated permissions (e.g. with sudo) or to update through your package
manager.
Coyote can also be updated from within the REPL using the
.update command.
Tab-Completions
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
Shell Integration
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"