Ape is an AI for Linux commands.
ape "Find all the important PDF files in user/projects. An important PDF file has 'attention' in its name. Write the results to important_files.txt and then move it to Documents."Output:
find ~/user/projects -type f -name "*attention*.pdf" > important_files.txt && mv important_files.txt ~/Documents/
Ape works with any provider supported by Pydantic AI — OpenAI, Anthropic, Google, Groq, Mistral and more.
To install (uv recommended):
uv tool install ape-linuxNext, set the API key for your provider using its standard environment variable. For example:
export OPENAI_API_KEY=key # for OpenAI models
export ANTHROPIC_API_KEY=key # for Anthropic modelsTo run:
ape Create a symbolic link called win pointing to /mnt/c/Users/jdoeOutput:
ln -s /mnt/c/Users/jdoe win
Another example:
ape Delete all the .venv directories under projects/Output:
find projects/ -type d -name ".venv" -exec rm -rf {} +
If you try to ask something unrelated to Linux commands:
ape Tell me about monkeysyou should get:
echo "Please try again."
You can change the model with the APE_MODEL environment variable. Models are
specified in provider:name form.
See here for the supported providers and models.
For example:
export APE_MODEL=anthropic:claude-sonnet-4-5If APE_MODEL is unset, the default openai-chat:gpt-4.1 is used.
Ape automatically detects a few facts about your machine and adds them to the prompt so
the suggested command is correct for your environment — for example BSD (macOS) vs GNU
(Linux) flags, the right package manager (brew, apt, dnf, pacman, ...), and tools
that are actually installed. It looks at:
- operating system and version (macOS version or Linux distribution),
- whether the userland is BSD or GNU,
- CPU architecture (e.g.
arm64vsx86_64), - your shell (
$SHELL), - whether you are root,
- available package manager(s) and common tools (
rg,fd,jq,docker, ...).
This is all gathered locally with the Python standard library and is best-effort: if anything can't be determined it is simply left out. No identifying information is collected or sent — never your username, hostname, working directory, or home path.
To see exactly what Ape detects and sends (without calling the model), run
ape-system-info:
ape-system-infoOutput (example):
Operating system: Darwin
macOS version: 26.5
Userland: BSD (macOS) — prefer BSD-compatible flags
Architecture: arm64
Shell: /bin/zsh
Privileges: non-root (use sudo for privileged actions)
Package manager(s): brew
Available tools: rg, fd, jq, git, curl, docker, tar, rsync, sed, awk
See also: Gorilla