Cade - The CLI Agent from Arcade.dev
Project description
Cade
An AI-powered CLI agent for coding and everyday tasks. Powered by Arcade.dev.
Installation
Prerequisites
- Python 3.11+
- Arcade account (arcade.dev)
- AI provider API key:
OPENAI_API_KEYorANTHROPIC_API_KEY
Homebrew (macOS/Linux)
brew tap ArcadeAI/tap
brew install cade
Install with uv
curl -LsSf https://astral.sh/uv/install.sh | sh
uv tool install cade-cli
Install with pip
pip install cade-cli
From Source
git clone https://github.com/arcadeai-labs/cade.git
cd cade
uv venv --python 3.11
source .venv/bin/activate
uv sync
Authenticate
cade login
Usage
Start a Chat
cade
Resume a Thread
cade -r # Resume most recent
cade resume "my-project" # Resume by name
Authentication
Cade uses Arcade Cloud for authentication and shares credentials with arcade-cli.
cade login # Log in to Arcade Cloud
cade logout # Log out
cade whoami # Show current login status
Context Management
Switch between organizations and projects for Arcade Cloud features.
cade context show # Show current org/project
cade context list # List available orgs and projects
cade context switch -i # Interactive selection
cade context switch --org my-org --project my-project
Single Message Mode
cade -m "What files are in this directory?"
cat error.log | cade -m "What went wrong?"
Options
| Option | Description |
|---|---|
-r, --resume |
Resume the most recent thread |
-m, --message |
Single message mode (non-interactive) |
-L, --local-only |
Disable remote tools (use only local tools) |
-v, --verbose |
Enable debug logging |
--version |
Show version |
In-Chat Commands
| Command | Description |
|---|---|
/help |
Show available commands |
/logs |
View recent log entries |
/clear |
Clear the screen |
/copy |
Copy last response to clipboard |
Ctrl+C |
Exit |
Thread Management
cade thread list # List all threads
cade thread list --branch main # Filter by branch
cade thread get <thread-id> # Get thread details
cade thread get <thread-id> --messages # Show messages
cade thread delete <thread-id> # Delete thread
Tool Management
Tools come from three sources: local, Arcade Cloud, and MCP servers.
cade tool list # List all tools
cade tool list --source local # Filter by source
cade tool search "file" # Search tools
cade tool info Local_ReadFile # Tool details
Built-in Tools
| Tool | Description |
|---|---|
Local_ReadFile |
Read file contents |
Local_WriteFile |
Write or append to files |
Local_ListFiles |
List directory contents |
Local_SearchText |
Search for text patterns |
Local_ExecuteShell |
Run shell commands |
Local_CreateDirectory |
Create directories |
Local_DeleteFile |
Delete files |
Local_GetGitStatus |
Get git status |
MCP Servers
Connect to MCP servers for extended capabilities.
cade mcp list # List servers
cade mcp add my-server http://localhost:8080 # Add server
cade mcp add my-server http://localhost:8080 --auth bearer -t <token> # With auth
cade mcp test my-server # Test connection
cade mcp enable my-server # Enable
cade mcp disable my-server # Disable
cade mcp rm my-server # Remove
Configuration
Config is stored in ~/.cadecoder/:
| File | Description |
|---|---|
cadecoder.toml |
Settings |
cadecoder_history.db |
Thread history |
cadecoder.log |
Logs |
mcp_servers.yaml |
MCP server configs |
Environment Variables
| Variable | Description |
|---|---|
OPENAI_API_KEY |
OpenAI API key |
OPENAI_BASE_URL |
Custom OpenAI-compatible API endpoint |
ANTHROPIC_API_KEY |
Anthropic API key |
ARCADE_API_KEY |
Arcade API key (alternative to OAuth) |
ARCADE_BASE_URL |
Custom Arcade API endpoint |
CADE_LOCAL_ONLY |
Set to 1 to disable remote tools |
CADECODER_HOME |
Override config directory |
Example Config
# ~/.cadecoder/cadecoder.toml
default_model = "gpt-4.1"
debug_mode = false
use_responses_api = true
[responses_config]
enabled = true
streaming_enabled = true
[model_settings]
provider = "openai"
model = "gpt-4.1"
[tool_settings]
# Tool filtering is managed via MCP server configuration
# See: cade mcp add --help
Using Local or Custom LLMs
Cade works with any OpenAI-compatible API, including local servers (Ollama, vLLM, llama.cpp) and alternative cloud providers (Together AI, Groq, Fireworks).
Local-Only Mode
When using local LLMs, you can skip Arcade Cloud authentication entirely with --local-only:
# Local Ollama server without Arcade Cloud
cade chat --local-only --endpoint "http://localhost:11434/v1" --model "llama3"
# Or via environment variable
CADE_LOCAL_ONLY=1 cade chat --endpoint "http://localhost:11434/v1" --model "llama3"
This disables remote tools and uses only local tools. Cade will also gracefully fall back to local-only mode if Arcade Cloud authentication is not configured.
Via CLI Flags
# Local Ollama server
cade chat --endpoint "http://localhost:11434/v1" --model "glm-4.7-flash:latest"
# vLLM server
cade chat -e http://localhost:8000/v1 -m mistral-7b
Via Environment Variables
export OPENAI_BASE_URL="http://localhost:11434/v1"
export OPENAI_API_KEY="ollama" # Dummy key for local model
cade chat --model glm-4.7-flash:latest
Via Config File
# ~/.cadecoder/cadecoder.toml
default_model = "glm-4.7-flash:latest"
[model_settings]
host = "http://localhost:11434/v1"
api_key = "ollama"
After configuring the TOML file:
cade chat
cade chat Configuration Precedence
Settings are resolved in this order (first is used):
- CLI flags (
--endpoint,--model) - Environment variables (
OPENAI_BASE_URL,OPENAI_API_KEY) - Config file (
model_settings.host,model_settings.api_key) - Hardcoded defaults
Contributing
Development Setup
git clone https://github.com/arcadeai-labs/cade.git
cd cade
uv sync --extra dev
Run Tests
pytest
ruff check src/
ruff format src/
Code Style
- Python 3.11+ with modern type hints (
dict,list,| None) - Ruff for linting and formatting
- Pytest for testing
- Docstrings for public functions and classes
Submitting Changes
- Fork the repository
- Create a feature branch
- Make changes with tests
- Run
ruff check . && pytest - Open a Pull Request
Resources
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cade_cli-0.9.0.tar.gz.
File metadata
- Download URL: cade_cli-0.9.0.tar.gz
- Upload date:
- Size: 165.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a671562641eac16197454becee3f1ed6aa5e8914eeba9a65c45883f467ccd5d
|
|
| MD5 |
835cf242a962e9d87a7d3d5a9593cf0f
|
|
| BLAKE2b-256 |
291b0d454153fccd4a12bd9523bb6aea544af56e6077cd9a5f7d7fe1a7610af2
|
Provenance
The following attestation bundles were made for cade_cli-0.9.0.tar.gz:
Publisher:
release.yml on arcadeai-labs/cade
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cade_cli-0.9.0.tar.gz -
Subject digest:
5a671562641eac16197454becee3f1ed6aa5e8914eeba9a65c45883f467ccd5d - Sigstore transparency entry: 1319831932
- Sigstore integration time:
-
Permalink:
arcadeai-labs/cade@809fabcc0f783a6615d22c9642d1211bdcc8e012 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/arcadeai-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@809fabcc0f783a6615d22c9642d1211bdcc8e012 -
Trigger Event:
push
-
Statement type:
File details
Details for the file cade_cli-0.9.0-py3-none-any.whl.
File metadata
- Download URL: cade_cli-0.9.0-py3-none-any.whl
- Upload date:
- Size: 204.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
02fed9dc13c0bfc20a33fe3817859804ed57eb082e0ebc6ef8dac3cb06ffc479
|
|
| MD5 |
89d2db56136a41f3095066cbae5e368f
|
|
| BLAKE2b-256 |
52d8a2855e09f29f440b91c1d5be4ba425bb5c936892a774d265e4ded0f9d178
|
Provenance
The following attestation bundles were made for cade_cli-0.9.0-py3-none-any.whl:
Publisher:
release.yml on arcadeai-labs/cade
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
cade_cli-0.9.0-py3-none-any.whl -
Subject digest:
02fed9dc13c0bfc20a33fe3817859804ed57eb082e0ebc6ef8dac3cb06ffc479 - Sigstore transparency entry: 1319831982
- Sigstore integration time:
-
Permalink:
arcadeai-labs/cade@809fabcc0f783a6615d22c9642d1211bdcc8e012 -
Branch / Tag:
refs/tags/v0.9.0 - Owner: https://github.com/arcadeai-labs
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@809fabcc0f783a6615d22c9642d1211bdcc8e012 -
Trigger Event:
push
-
Statement type: