A terminal-native AI agent. Ask it anything, give it tools — it gets things done.
macOS & Linux · requires bash & curl
Everything you need to run agentic tasks in the terminal — without the overhead.
~/.picante/sessions/. Resume any session with --resume.~/.picante/skills/ to extend the system prompt with domain knowledge.LLM_BASE_URL at any endpoint. Works with local Ollama, OpenAI, Anthropic proxies, and more.Run picante providers <name> to list available models. Set the corresponding env var to authenticate.
| Provider | Models | API key env var | Base URL |
|---|---|---|---|
| openrouter | 500+ models | OPENROUTER_API_KEY | openrouter.ai/api/v1 |
| opencode | 37 models | OPENCODE_API_KEY | opencode.ai/zen/go/v1 |
| fal | image + LLM | FAL_KEY | fal.run/openai |
| nvidia | NIM catalog | NVIDIA_API_KEY | integrate.api.nvidia.com/v1 |
| amd | AMD Cloud | AMD_API_KEY | api.cloud.amd.com/v1 |
Everything you need to install, configure, and run picante.
The install script downloads the latest pre-built binary for your platform (macOS or Linux, x64 or arm64), removes any previous version, and places it at /usr/local/bin/picante.
# One-liner install $ curl -fsSL https://picanteverde.github.io/picante/install.sh | bash
To install a specific version, download the binary directly from GitHub Releases.
# Verify install $ picante "Hello, what can you do?"
The quickest way to configure a provider is with picante config provider. It writes the API key and sets the active base URL in one step:
# Set opencode as active provider + store the API key $ picante config provider opencode "sk-..." # Switch to openrouter (stores key, updates active provider) $ picante config provider openrouter "sk-or-..." # Then pick a model interactively $ picante config model # Or set a model directly $ picante config model glm-5.3-flash # Show current configuration $ picante config show
Each provider's API key is stored under its own key in ~/.picante/config.toml, so you can store multiple providers and switch between them freely. LLM_API_KEY always holds the active provider's key.
Environment variables take precedence over the config file — useful for per-project overrides:
$ LLM_MODEL=gpt-4o picante "Summarize this file"
Single prompt
$ picante "Search for the latest Bun release notes and summarise them"
Interactive REPL — run without a prompt to enter conversation mode:
$ picante picante session 20260914-083241 (Ctrl+D to exit) › What files are in the current directory? › Now write a README for this project
Sessions — conversations persist automatically:
# List saved sessions $ picante --sessions # Resume the most recent session $ picante --resume # Resume a specific session by ID $ picante --resume 20260914-083241
Skills — extend the agent's knowledge by dropping Markdown files into the skills directory:
# Global skills (always active) ~/.picante/skills/my-project.md # Project-local skills (active when run from this dir) .picante/skills/deploy-runbook.md
The content of all skill files is appended to the system prompt. Use them for project context, API docs, coding standards — anything the agent should always know.
Built-in tools available to the agent:
read_file — read any file pathwrite_file — write or overwrite a filerun_shell — execute a shell command, capture outputrun_monitor — stream a long-running command's outputweb_search — DuckDuckGo searchweb_browse — fetch and parse a URLweb_browse_headless — headless browser (requires puppeteer)web_download — download a file from a URLlist_models — list models from a provider