CLI tool for interacting with Raga Canvas no-code agent deployment platform
Project description
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.
Project details
Release history Release notifications | RSS feed
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 raga_canvas_cli-1.0.5.tar.gz.
File metadata
- Download URL: raga_canvas_cli-1.0.5.tar.gz
- Upload date:
- Size: 46.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aaef0409c60fd76bf1da47406e5a4583edc0bd6847501c9ff19d4b2009a4457
|
|
| MD5 |
f53d54567ec2d46fdf894d12a3e1d038
|
|
| BLAKE2b-256 |
aa6ef916d01a528e58e8c87076c312f2c5e5724a71a423060d8ada30f5c328d3
|
File details
Details for the file raga_canvas_cli-1.0.5-py3-none-any.whl.
File metadata
- Download URL: raga_canvas_cli-1.0.5-py3-none-any.whl
- Upload date:
- Size: 55.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec76edd4e224928a51d52a6ef31ac6353b0a0d12277aae4885cda6ad5374a9f0
|
|
| MD5 |
4939a4ce992b4373e064c5b56e113a08
|
|
| BLAKE2b-256 |
55c31ed8b49188c16be95997675f068ecf6c67bd85161ad7f90b0587b0f9f776
|