chucky deploy command uploads your workspace to Chucky Cloud, making it available for AI agent execution.
Prerequisites
Before deploying:- Logged in: Run
chucky loginfirst - Project initialized: Run
chucky initin your project directory - Git repository: Your project must be a git repository
- Clean working tree: Commit or stash changes (or use
--force)
Basic Deployment
- Create a tar.gz archive of your workspace (including
.git) - Upload to Chucky’s R2 storage
- Sync any cron jobs defined in
.chucky.json - Output example code for generating tokens
Command Options
| Option | Description |
|---|---|
--folder <path> | Deploy a specific folder (default: current directory) |
--force | Auto-commit uncommitted changes before deploying |
--json | Output result as JSON |
--quiet | Minimal output |
Examples
Configuration Files
.chucky.json (Committed)
Project configuration that’s part of your codebase:
Configuration Options
| Field | Type | Description |
|---|---|---|
name | string | Project display name |
description | string | Project description |
folder | string | Root folder for workspace (default: .) |
crons | array | Scheduled job definitions |
Cron Job Options
| Field | Type | Description |
|---|---|---|
cron | string | Cron expression (e.g., 0 9 * * *) |
message | string | Prompt to send |
timezone | string | IANA timezone (e.g., America/New_York) |
model | string | Model to use |
maxTurns | number | Maximum conversation turns |
maxBudgetUsd | number | Maximum budget for this job |
systemPrompt | object | System prompt configuration |
tools | object | Tool configuration |
callback | object | Webhook for job results |
.chucky (Git-ignored)
Local binding that links your directory to a Chucky project:
chucky init and should be added to .gitignore. It allows different team members to bind to different projects (e.g., dev vs production).
Environment Variables
Override CLI configuration with environment variables:| Variable | Description | Default |
|---|---|---|
CHUCKY_API_KEY | Your API key (overrides ~/.chucky/config.json) | - |
CHUCKY_PORTAL_URL | Portal API URL (for dev/staging) | Production URL |
CHUCKY_WORKER_URL | Worker URL for sessions/jobs | https://conjure.chucky.cloud |
Using in CI/CD
Deployment Workflow
What Gets Uploaded
The deployment archive includes:- All files in the workspace folder
- The
.gitdirectory (for history and branching) - Excluding:
.DS_Store,Thumbs.db,*.tgz
What Happens After Upload
- Archive stored: Uploaded to R2 with presigned URL
- Project updated: Portal notified of new workspace version
- Crons synced: Jobs created/updated/deleted to match
.chucky.json - Ready for use: Sessions and jobs use the new workspace
Git Requirements
Your workspace must be:- A git repository (has
.gitdirectory) - The root of its own repository (not nested in another repo)
- Have a clean working tree (or use
--force)
CI/CD Integration
GitHub Actions
When you runchucky init, the CLI offers to create a GitHub Actions workflow:
GitLab CI
Manual Deployment
For manual deployments, ensure you’re logged in:Output
Interactive Output
JSON Output
Troubleshooting
”Not a git repository”
Your project folder must be a git repository:“Uncommitted changes”
Either commit your changes or use--force:
“Nested repository”
The deploy folder must be the root of its own git repository, not a subdirectory of another repo.”Not logged in”
Runchucky login first:
“Project not initialized”
Runchucky init in your project directory: