Skip to main content

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

  1. Login to authenticate with Canvas platform
canvas login [--api-base https://api.canvas.raga.ai] [--profile <name>]
  1. Initialize a workspace
canvas init <directory> [--profile <name>] [--force]
  1. Add a project to your workspace
canvas add project <project-short-name> [--profile <name>]
  1. Set the default project
canvas set default-project <project-short-name>
  1. Pull an agent and its dependencies
canvas pull agent <agent-short-name> [--project <project-name>] [--profile <name>]
  1. Push your modified agent
canvas push agent <agent-short-name> [--project <project-name>] [--profile <name>] [--force]
  1. 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 configuration
  • agents/, 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 in agents/

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 name
  • projects/<name>/project.yaml: Project-specific metadata including project ID, environment, and profile
  • env/<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 configuration
  • projects/<name>/project.yaml - Project metadata and settings
  • env/*.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)

Source distribution for raga-canvas-cli 1.0.7
File Size Uploaded Provenance
raga_canvas_cli-1.0.7.tar.gz 49.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for raga-canvas-cli 1.0.7
File Interpreter ABI Platform
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page