Skip to main content

Manifest

The Compose App’s manifest is a YAML file with the following schema. The manifest holds all the relevant information about the Compose App and its tasks. All compose commands will reference your manifest and pick up the configuration there. See full manifest configuration docs here.

Example

name: "my_app"
api_version: "stable"
secrets:
  - MY_SECRET
env:
  local:
    MY_VAR: "foo"
  cloud:
    MY_VAR: "bar"
tasks:
  - name: "price_fetcher"
    path: "./tasks/fetch_price.ts"
    triggers:
      - type: "cron"
        expression: "* * * * *" # Run every minute
      - type: "http"
        authentication: "auth_token"
    retry_config:
      max_attempts: 3
      initial_interval_ms: 1000
      backoff_factor: 2
  - name: "data_processor"
    path: "./tasks/process_data.ts"

App targeting

Commands that operate on a deployed app accept either -n, --name <app> to target by name directly, or -m, --manifest <path> (default compose.yaml) to read the name from a manifest. If neither is provided and no compose.yaml is present, the command errors.

Commands

init

Prompts you to choose a project name and generates a folder of that name with a fully working compose app in it.
goldsky compose init

start

Starts your app locally. Preserves execution state from previous runs, useful for testing retry behavior and other production scenarios.
goldsky compose start
Options:
  • -m, --manifest <path> Path to manifest file (default: compose.yaml)
  • --fork-chains Fork all chains referenced in contract interactions locally for testing — see forking

deploy

Deploys the app to the cloud. From there you can monitor it at https://app.goldsky.com/dashboard/compose/{appName}. See monitoring for more info.
goldsky compose deploy
Options:
  • -m, --manifest <path> Path to manifest file (default: compose.yaml)
  • -t, --token <token> Authentication token for deployment
  • -f, --force Skip version compatibility prompts
  • --sync-env Upload secrets from your local .env to the cloud before deploying, in one step. See Secrets.
Your manifest must include an api_version field to deploy. All secrets referenced in the manifest must be set before deploying (see Secrets).

callTask

Trigger a task on your locally-running app by name with an optional JSON payload. Useful for testing tasks during development.
goldsky compose callTask my_task '{"foo": "bar"}'
The payload must be valid JSON. For example, {foo: "bar"} is invalid — use {"foo": "bar"} instead.

codegen

Parse ABIs in the src/contracts/ folder and generate TypeScript classes for them. See contracts for more details.
goldsky compose codegen

clean

Deletes your local stage database (.compose/stage.db), wiping all local execution state and collection data. Prompts for confirmation unless -f is passed.
goldsky compose clean
Options:
  • -f, --force Skip the confirmation prompt
  • -c, --config <path> Path to manifest file (default: compose.yaml)

update

Update the Compose CLI to the latest version.
goldsky compose update
Options:
  • --preview Install the latest preview build from main instead of the current stable release
See Release channels for the difference between stable and preview.

App lifecycle

For full examples, see App lifecycle.

status

Show the status of a deployed app.
goldsky compose status
Options:
  • -n, --name <name> App name (alternative to -m)
  • -m, --manifest <path> Path to manifest file (default: compose.yaml)
  • -t, --token <token> Authentication token
  • --json Emit JSON output (for scripts and agents)

list

List all deployed apps in your project.
goldsky compose list
Options:
  • -t, --token <token> Authentication token
  • --json Emit JSON output

pause

Pause a deployed app. Cron triggers stop firing and HTTP triggers return an error until the app is resumed.
goldsky compose pause
Options:
  • -n, --name <name> / -m, --manifest <path>
  • -t, --token <token>
  • --json

resume

Resume a paused app.
goldsky compose resume
Options: same as pause.

delete

Delete a deployed app. Prompts you to type the app name to confirm. Also asks whether to delete the app’s hosted Postgres database unless you pass --delete-database or --force.
goldsky compose delete
Options:
  • -n, --name <name> / -m, --manifest <path>
  • -t, --token <token>
  • -f, --force Skip confirmation prompts (required for non-interactive use, e.g. CI)
  • --delete-database Also delete the app’s hosted Postgres database
  • --json
Deleting an app (and especially its database) is permanent. See Deleting a Compose app for the full behavior including pipeline safety checks.

logs

View or tail logs from a deployed app.
# show the last 100 log lines
goldsky compose logs

# tail logs live, filtered to errors and warnings
goldsky compose logs -f --level error,warn

# show logs from the last hour
goldsky compose logs --since 1h

# show 500 lines and exit
goldsky compose logs --max-lines 500
Options:
  • -n, --name <name> / -m, --manifest <path>
  • -t, --token <token>
  • -f, --follow Stream logs live
  • --tail <lines> Number of lines to fetch (default: 100)
  • --level <levels> Comma-separated log levels (e.g. error,warn)
  • --search <text> Filter log lines by text
  • --since <duration> Only show logs since a relative time (e.g. 1h, 30m, 7d)
  • --max-lines <count> Exit after N lines (useful with -f)
  • --timeout <duration> Exit after a duration (useful with -f)
  • --json Emit newline-delimited JSON

Wallet management

wallet create

Create a named wallet for this app and print its address. Useful for pre-creating wallets so you can fund them before your tasks first run.
# create a cloud wallet (default)
goldsky compose wallet create my_wallet

# create a local wallet in your stage DB
goldsky compose wallet create my_wallet --env local
Options:
  • -n, --name <app> / -m, --manifest <path> App to attach the wallet to
  • --env <local|cloud> Where to create the wallet (default: cloud)
  • -t, --token <token>
The wallet address is printed to stdout so you can pipe it into other commands or scripts.

wallet list

List wallets that have been created for this app.
goldsky compose wallet list
goldsky compose wallet list --env local
Options:
  • -n, --name <app> / -m, --manifest <path>
  • --env <local|cloud> (default: cloud)
  • -t, --token <token>

Secrets

See Secrets for the full workflow.

secret set

Set or update a secret. See Secrets for full details.
# set a cloud secret (default)
goldsky compose secret set MY_SECRET --value my-secret-value

# set a local secret (writes to .env)
goldsky compose secret set MY_SECRET --value my-secret-value --env local

# set a cloud secret and redeploy the app to pick it up
goldsky compose secret set MY_SECRET --value my-secret-value --redeploy
Options:
  • --value <value> Secret value (required)
  • --env <local|cloud> Where to store the secret (default: cloud)
  • --redeploy After setting, redeploy the app so the new value takes effect
  • -n, --name <app> / -m, --manifest <path>
  • -t, --token <token>
Secret names must be SCREAMING_SNAKE_CASE. A running app only picks up secret changes after a redeploy — pass --redeploy or run goldsky compose deploy yourself.

secret delete

Delete a secret.
goldsky compose secret delete MY_SECRET
goldsky compose secret delete MY_SECRET --env local
Options:
  • --env <local|cloud> Where to delete from (default: cloud)
  • -n, --name <app> / -m, --manifest <path>
  • -t, --token <token>

secret list

List all cloud secrets set for this app.
goldsky compose secret list
Options:
  • -n, --name <app> / -m, --manifest <path>
  • -t, --token <token>