Plugins

Plugin 관리

대부분의 Plugin 워크플로는 몇 가지 명령으로 이루어집니다. 검색, 설치, Gateway 재시작, 확인, 그리고 더 이상 Plugin이 필요하지 않을 때 제거입니다.

Plugin 목록

openclaw plugins list
openclaw plugins list --enabled
openclaw plugins list --verbose
openclaw plugins list --json

스크립트에는 --json을 사용하세요. Plugin 패키지가 dependencies 또는 optionalDependencies를 선언한 경우, 레지스트리 진단과 각 Plugin의 정적 dependencyStatus가 포함됩니다.

openclaw plugins list --json \
  | jq '.plugins[] | {id, enabled, format, source, dependencyStatus}'

plugins list는 콜드 인벤토리 검사입니다. OpenClaw가 구성, 매니페스트, Plugin 레지스트리에서 발견할 수 있는 항목을 보여주지만, 이미 실행 중인 Gateway 프로세스가 Plugin 런타임을 가져왔다는 것을 증명하지는 않습니다.

Plugin 설치

# Search ClawHub for plugin packages.
openclaw plugins search "calendar"

# Bare package specs try ClawHub first, then npm fallback.
openclaw plugins install <package>

# Force one source.
openclaw plugins install clawhub:<package>
openclaw plugins install npm:<package>

# Install a specific version or dist-tag.
openclaw plugins install clawhub:<package>@1.2.3
openclaw plugins install clawhub:<package>@beta
openclaw plugins install npm:@scope/[email protected]
openclaw plugins install npm:@openclaw/codex

# Install from git or a local development checkout.
openclaw plugins install git:github.com/acme/[email protected]
openclaw plugins install ./my-plugin
openclaw plugins install --link ./my-plugin

Plugin 코드를 설치한 뒤, 채널을 제공하는 Gateway를 재시작하세요.

openclaw gateway restart
openclaw plugins inspect <plugin-id> --runtime --json

도구, 훅, 서비스, Gateway 메서드, Plugin 소유 CLI 명령과 같은 런타임 표면을 Plugin이 등록했다는 증명이 필요할 때는 inspect --runtime을 사용하세요.

Plugin 업데이트

openclaw plugins update <plugin-id>
openclaw plugins update <npm-package-or-spec>
openclaw plugins update --all

Plugin이 @beta 같은 npm dist-tag에서 설치된 경우, 이후 update <plugin-id> 호출은 기록된 해당 태그를 재사용합니다. 명시적인 npm 사양을 전달하면 추적되는 설치가 향후 업데이트에 해당 사양을 사용하도록 전환됩니다.

openclaw plugins update @scope/openclaw-plugin@beta
openclaw plugins update @scope/openclaw-plugin

두 번째 명령은 이전에 정확한 버전이나 태그로 고정된 Plugin을 레지스트리의 기본 릴리스 라인으로 되돌립니다.

베타 채널에서 openclaw update가 실행되면, 기본 라인의 npm 및 ClawHub Plugin 레코드는 먼저 일치하는 Plugin @beta 릴리스를 시도합니다. 해당 베타 릴리스가 없으면 OpenClaw는 기록된 기본/최신 사양으로 대체합니다. npm Plugin의 경우, 베타 패키지가 존재하지만 설치 검증에 실패해도 OpenClaw는 대체합니다. 정확한 버전과 @rc 또는 @beta 같은 명시적 태그는 보존됩니다.

Plugin 제거

openclaw plugins uninstall <plugin-id> --dry-run
openclaw plugins uninstall <plugin-id>
openclaw plugins uninstall <plugin-id> --keep-files
openclaw gateway restart

제거는 해당되는 경우 Plugin의 구성 항목, Plugin 인덱스 레코드, 허용/거부 목록 항목, 연결된 로드 경로를 제거합니다. 관리형 설치 디렉터리는 --keep-files를 전달하지 않는 한 제거됩니다.

Nix 모드(OPENCLAW_NIX_MODE=1)에서는 Plugin 설치, 업데이트, 제거, 활성화, 비활성화 명령이 비활성화됩니다. 대신 설치의 Nix 소스에서 이러한 선택을 관리하세요. nix-openclaw의 경우 agent 우선 빠른 시작을 사용하세요.

Plugin 게시

외부 Plugin은 ClawHub, npmjs.com 또는 둘 다에 게시할 수 있습니다.

ClawHub에 게시

ClawHub는 OpenClaw Plugin을 위한 기본 공개 검색 표면입니다. 사용자는 설치 전에 검색 가능한 메타데이터, 버전 기록, 레지스트리 스캔 결과를 확인할 수 있습니다.

npm i -g clawhub
clawhub login
clawhub package publish your-org/your-plugin --dry-run
clawhub package publish your-org/your-plugin
clawhub package publish your-org/[email protected]

사용자는 다음으로 ClawHub에서 설치합니다.

openclaw plugins install clawhub:<package>
openclaw plugins install <package>

축약 형식도 여전히 ClawHub를 먼저 확인합니다.

npmjs.com에 게시

네이티브 npm Plugin에는 Plugin 매니페스트와 package.json OpenClaw 엔트리포인트 메타데이터가 포함되어야 합니다.

{
  "name": "@acme/openclaw-plugin",
  "version": "1.0.0",
  "type": "module",
  "openclaw": {
    "extensions": ["./dist/index.js"]
  }
}
npm publish --access public

사용자는 npm 전용으로 다음과 같이 설치합니다.

openclaw plugins install npm:@acme/openclaw-plugin
openclaw plugins install npm:@acme/openclaw-plugin@beta
openclaw plugins install npm:@acme/[email protected]

같은 패키지가 ClawHub에서도 제공되는 경우, npm:은 ClawHub 조회를 건너뛰고 npm 해결을 강제합니다.

소스 선택

  • ClawHub: OpenClaw 네이티브 검색, 스캔 요약, 버전, 설치 힌트가 필요할 때 사용하세요.
  • npmjs.com: 이미 JavaScript 패키지를 배포하고 있거나 npm dist-tags/비공개 레지스트리 워크플로가 필요할 때 사용하세요.
  • Git: 브랜치, 태그, 커밋에서 직접 설치하려는 경우 사용하세요.
  • 로컬 경로: 같은 머신에서 Plugin을 개발하거나 테스트할 때 사용하세요.

관련 항목