Raga Canvas CLI
A command-line interface for interacting with the Raga Canvas no-code agent deployment platform.
Installation
pip install raga-canvas-cli
Quick Start
- Login to authenticate with Canvas platform
canvas login [--api-base https://api.canvas.raga.ai] [--profile <name>]
- Initialize a workspace
canvas init <directory> [--profile <name>] [--force]
- Add a project to your workspace
canvas add project <project-short-name> [--profile <name>]
- Set the default project
canvas set default-project <project-short-name>
- Pull an agent and its dependencies
canvas pull agent <agent-short-name> [--project <project-name>] [--profile <name>]
- Push your modified agent
canvas push agent <agent-short-name> [--project <project-name>] [--profile <name>] [--force]
- Deploy the agent
canvas deploy agent <agent-short-name> [--project <project-name>] [--profile <name>]
Commands
canvas login
Authenticate with the Canvas platform and save credentials.
Usage:
canvas login [--api-base <url>] [--profile <name>]
Prompts for username and password, validates, and stores a token securely (in system keychain or ~/.canvasrc).
Options:
--api-base: API base URL (default:https://api.canvas.raga.ai)--profile: Profile name to save credentials under (default:default)
canvas init
Initialize a Canvas workspace.
Usage:
canvas init <directory> [--profile <name>] [--force]
Creates the workspace structure:
canvas.yaml- workspace configurationagents/,tools/,datasources/- resource directories.gitignore- excludes sensitive files
Arguments:
<directory>: Directory to initialize (use.for current directory)
Options:
--profile: Profile to use for authentication--force: Proceed even if files already exist
canvas add
Add projects to your workspace.
Usage:
canvas add project <project-short-name> [--profile <name>]
Downloads project configuration and sets up environment templates for the specified project.
Examples:
canvas add project my-project
canvas add project my-project --profile production
canvas set
Set workspace-level defaults.
Usage:
canvas set default-project <project-short-name>
Sets the default project in canvas.yaml that will be used by other commands when --project is not specified.
canvas list
List Canvas resources.
List Projects:
canvas list projects [--profile <name>] [--local]
--local: List projects added to local workspace instead of remote projects
List Agents:
canvas list agents [--project <short-name>] [--profile <name>]
Shows all agents in the specified project (or default project if not specified).
canvas pull
Pull resources from Canvas platform into your workspace.
Pull Agent:
canvas pull agent <agent-short-name> [--project <short-name>] [--profile <name>]
Pulls an agent and all its dependencies (tools, datasources, sub-agents) into the global agents/ directory.
Examples:
canvas pull agent my-agent
canvas pull agent my-agent --project my-project
Note: The deprecated canvas pull project command has been replaced by canvas add project.
canvas push
Push local resources to Canvas platform.
Push Agent:
canvas push agent <agent-short-name> [--project <short-name>] [--profile <name>] [--force]
Creates or updates an agent and its dependencies in the target project.
Arguments:
<agent-short-name>: Agent directory name inagents/
Options:
--project: Target project short name (uses default project if not specified)--profile: Profile to use for authentication--force: Force push even if validation warnings exist
Examples:
canvas push agent my-agent
canvas push agent my-agent --project my-project
canvas push agent my-agent --force
canvas deploy
Deploy an agent to Canvas platform.
Usage:
canvas deploy agent <agent-short-name> [--project <short-name>] [--profile <name>]
Triggers deployment of an existing agent version in the target project.
Examples:
canvas deploy agent my-agent
canvas deploy agent my-agent --project my-project
canvas get
Get information from Canvas platform.
Get Project Certificate:
canvas get project-certificate [--project <short-name>] [--profile <name>]
Retrieves the JWT public key certificate configured for a project. The key is used for validating JWT tokens issued by the project.
Examples:
canvas get project-certificate
canvas get project-certificate --project my-project
canvas update
Update information on Canvas platform.
Update Project Certificate:
canvas update project-certificate --public-key <path-to-pem-file> [--project <short-name>] [--profile <name>]
Uploads a new JWT public key certificate for a project. The key should be in PEM format and will be used for JWT token validation.
Options:
--public-key: Path to the public key PEM file (required)--project: Target project short name (uses default project if not specified)--profile: Profile to use for authentication
Examples:
canvas update project-certificate --public-key ./public_key.pem
canvas update project-certificate --project my-project --public-key ./key.pem
canvas help
Show help information for Canvas CLI commands.
Usage:
canvas help [<command>] [--structure]
Options:
--structure: Show workspace directory structure
Examples:
canvas help # General help
canvas help pull # Help for pull command
canvas help --structure # Show directory structure
Directory Structure
When you run canvas init and canvas add project, the following structure is created:
my-canvas-workspace/
├── canvas.yaml # Workspace configuration
├── .gitignore # Ignores sensitive files (.canvasrc, *.env, etc.)
│
├── agents/ # Global agents directory
│ └── my-agent/
│ ├── agent.yaml # Agent configuration
│ └── system_prompt.txt # System prompt (if extracted)
│
├── tools/ # Global tools directory
│ └── my-tool/
│ └── tool.yaml # Tool configuration
│
├── datasources/ # Global datasources directory
│ └── my-datasource/
│ └── datasource.yaml # Datasource configuration
│
├── projects/ # Project-specific configurations
│ └── my-project/
│ └── project.yaml # Project metadata
│
└── env/ # Environment-specific variables
├── dev.yaml # Development environment
├── staging.yaml # Staging environment
└── prod.yaml # Production environment
Key Files:
canvas.yaml: Workspace config with default project name and version~/.canvasrc: Global user profiles and authentication tokens (stored in system keychain when available)agents/<name>/agent.yaml: Agent configuration with references to tools and datasources by short nameprojects/<name>/project.yaml: Project-specific metadata including project ID, environment, and profileenv/<environment>.yaml: Environment-specific variables (API keys, connection strings, etc.)
Configuration
The CLI uses the following configuration files:
~/.canvasrc- Global user configuration and profiles (or system keychain)canvas.yaml- Workspace configurationprojects/<name>/project.yaml- Project metadata and settingsenv/*.yaml- Environment-specific variables
Development
To set up for development:
git clone https://github.com/raga-ai/raga-canvas-cli
cd raga-canvas-cli
pip install -e ".[dev]"
Run tests:
pytest
License
MIT License - see LICENSE file for details.
Metadata
Release files for raga-canvas-cli 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| raga_canvas_cli-1.0.7.tar.gz | 49.9 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| raga_canvas_cli-1.0.7-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 109.1 kB
Release files / raga_canvas_cli-1.0.7.tar.gz
| Download URL | raga_canvas_cli-1.0.7.tar.gz |
|---|---|
| Size | 49.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f5758e59be4ba712d3d4998c7008951024ccf0c0aba96d6642a33e083e47a40
|
|
BLAKE2b-256 checksum How to use checksums |
18a5f1d2ce11e035e7c84ecccf41f3202aa884843ec5854ecd7f871238c51aed
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Release files / raga_canvas_cli-1.0.7-py3-none-any.whl
| Download URL | raga_canvas_cli-1.0.7-py3-none-any.whl |
|---|---|
| Size | 59.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4534e6a9219b38d8d1da423c13dc3e71aba6f9ff86f181b10a076cbe52aff8c4
|
|
BLAKE2b-256 checksum How to use checksums |
77d18b9b4e372e278a66183ed217242dccd35c1f4125753084a3a5ac41516ca5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.7
|
Security for raga-canvas-cli 1.0.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.