cloudcannon/agent-skills

cloudcannon-sdk

Use when calling the CloudCannon API from code — constructing a client, finding a site or organisation UUID, reading or writing files on a hosted site programmatically, triggering and inspecting builds, or reaching a CloudCannon endpoint the CLI has no comm…

소스 보기

사용 방법

  1. 설치 명령을 복사하고 자신의 에이전트 환경에 설치하기 전에 소스 패키지를 확인하세요.
  2. 필요한 도구, 인증 정보, 지원 환경은 원본 문서에서 확인하세요.
  3. 입력과 원하는 산출물을 설명하고 출처와 결과를 대조하세요.
npx skills add https://github.com/cloudcannon/agent-skills --skill cloudcannon-sdk

시작 전 확인

  • 설치에는 모델 구독, API 한도, 파일 접근 권한이 포함되지 않습니다.
  • 별점 수와 설치 수는 활동 지표이며 독립적인 품질·보안 검증이 아닙니다.
원본 Skill 문서

원본 저장소의 제목, 예시, 코드, 표, 링크, 이미지를 유지해 표시합니다.

The CloudCannon SDK

@cloudcannon/sdk is the REST API client the CloudCannon CLI is built on. It exposes a hierarchy of sub-clients over the API, plus a typed fetch that reaches endpoints no sub-client wraps.

Reach for it when the work is programmatic. Reach for the CLI when the work is a shell command.

When to use

  • Calling the CloudCannon API from a script, a build step, or a service
  • Operating over many sites or organisations in one pass
  • Reaching a surface the CLI does not expose — DAMs, backups, sync history and pulls, site scans, screenshots, provider connect/disconnect, site.copy, site.delete
  • Handling API failures by type rather than by exit code
  • Finding out which methods exist, and what they take

When not to use

The rule that costs the most

MUST confirm with the user before any call that writes to a hosted site. This is the same rule the CLI carries, and the reason is the same — see `cloudcannon-cli` § The rule that costs the most for the canonical statement.

Two things make it easier to break here than at the command line:

  • There is no command name to read as a warning. site.delete() is a method call with no arguments, no flag, and no confirmation prompt.
  • The SDK reaches destructive endpoints the CLI has no command for at all — site.delete(), site.copy(), disconnectSourceProvider(), disconnectOutputProvider().

The gate covers `client.fetch` too. A POST through the escape hatch is a write.

Requirements

Node 20 or newer, per the package's engines field — lower than the CLI's Node 24. The package is ESM ("type": "module") and its default export is the client class.

js
import CloudCannonClient from "@cloudcannon/sdk";

Quick start

Sub-clients take a UUID and nothing else, so almost every task starts by finding one.

js
import CloudCannonClient from "@cloudcannon/sdk";

// The SDK reads no credentials of its own — you supply them.
const client = new CloudCannonClient({
  userAccessKey: {
    id: process.env.CC_ACCESS_KEY_ID,
    secret: process.env.CC_ACCESS_KEY_SECRET,
  },
});

const { items: orgs } = await client.orgs();
const { items: sites } = await client.org(orgs[0].uuid).sites({ filters: { search: "my-site" } });

const site = await client.site(sites[0].uuid).get();

Contents

FileCovers
SKILL.md (this file)Routing, the write gate, requirements
client.mdConstructing the client, the config shape, and why it reads no credentials itself
resources.mdThe sub-client hierarchy, UUID addressing, pagination, return types
api-surface.mdReading the authoritative method list, and the raw client.fetch escape hatch
editing-sessions.mdWriting files to a hosted site through the SDK
troubleshooting.mdSymptom → cause → fix

Common mistakes

ExcuseReality
"I'll pass the site name to client.site()."Sub-clients take a UUID only. Resolve it first — resources.md § Addressing a resource.
"client.sites() will list every site I can see."There is no such method. Sites are listed per organisation. See resources.md.
"The SDK will pick up my cloudcannon login credentials."It reads nothing from disk or the environment. That chain is a CLI feature — client.md.
"I'll write out the method signatures from memory."Signatures change between releases. Read them from the installed package — api-surface.md.
"await site.getFile(path) gives me the file contents."It gives you a Response. Several methods do — resources.md § What a method returns.
"The list came back, so that's all of them."Paginated endpoints return one page. Check total_pages — resources.md § Pagination.
"client.fetch is the low-level API, so the write gate is a CLI thing."The gate is about the endpoint, not the wrapper. A POST through fetch writes to a live site exactly as a named method does.
같은 저장소의 Skills

더 많은 Skills

모든 Skills
cloudcannon
커뮤니티

brainstorming

Structured design dialogue before CloudCannon work that has more than one sensible answer — a migration's editability tradeoffs, how to model a collection or page builder, restructuring content or config, or an ambiguous "make this work with CloudCannon". Explores intent and constraints, then presents a design for approval before implementation. Not for single well-defined tasks, clear bug fixes, or a detailed spec.

1시간 설치 수
7
GitHub Stars
9
업데이트
10월 28일
cloudcannon
커뮤니티

cloudcannon-bookshop

Use when a CloudCannon site uses Bookshop — .bookshop.yml files, @bookshop/ packages, bookshopname keys, bookshop:live, or partial "bookshop" calls or {% bookshop %} tags. Covers how Bookshop works, maintaining a site that stays on it, and migrating it to editable regions.

1시간 설치 수
7
GitHub Stars
9
업데이트
10월 28일
cloudcannon
커뮤니티

cloudcannon-cli

Use when running the CloudCannon CLI — logging in, listing or creating sites, reading and writing files on a hosted site, triggering and inspecting builds, changing a site's build configuration, reading form submissions, or finding out which command and flags exist for a task.

1시간 설치 수
7
GitHub Stars
9
업데이트
10월 28일
cloudcannon
커뮤니티

cloudcannon-configuration

Use when configuring a site for CloudCannon for any of the following. Download the JSON schemas before writing any configuration (see the top of SKILL.md). - Setting up cloudcannon.config.yml or .cloudcannon/initial-site-settings.json - Generating a baseline with the CloudCannon CLI - Adding or modifying Collections, Inputs, Structures, or Select Data - Setting up Structures for Array and Object Inputs - Configuring Collection URLs - Troubleshooting missing fields or Input types

1시간 설치 수
7
GitHub Stars
9
업데이트
10월 28일