Skip to content

OpenCode 플러그인 설치 ​

이 강의를 마치면 할 수 있는 것 ​

  • OpenCode에서 Plannotator 플러그인 설치
  • submit_plan tool과 /plannotator-review 명령어 설정
  • 환경 변수 설정 (원격 모드, 포트, 브라우저 등)
  • 플러그인 설치 성공 여부 확인

현재 겪고 있는 어려움 ​

OpenCode에서 AI Agent를 사용할 때, 계획 검토를 위해 터미널에서 일반 텍스트 계획을 읽어야 하므로 정확한 피드백을 주기 어렵습니다. 계획에 주석을 달고 메모를 추가하며, 피드백을 구조화된 형태로 Agent에게 자동으로 전송할 수 있는 시각적 인터페이스가 필요합니다.

언제 이 방법을 사용하나요 ​

Plannotator 사용 전 필수: OpenCode 환경에서 개발하고 있으며, 대화형 계획 검토 경험을 원하는 경우.

🎒 시작하기 전 준비사항 ​

  • [ ] OpenCode 설치 완료
  • [ ] 기본적인 opencode.json 설정 이해 (OpenCode 플러그인 시스템)

사전 지식

OpenCode의 기본 사용법을 아직 모르신다면, 먼저 OpenCode 공식 문서를 읽어보시기 바랍니다.

핵심 개념 ​

Plannotator는 OpenCode에 두 가지 핵심 기능을 제공합니다:

  1. submit_plan tool - Agent가 계획을 완료하면 호출하여 브라우저에서 대화형 검토 진행
  2. /plannotator-review 명령어 - Git diff 코드 검토를 수동으로 실행

설치 과정은 두 단계로 나뉩니다:

  1. opencode.json에 플러그인 설정 추가 (submit_plan tool 활성화)
  2. 설치 스크립트 실행 (/plannotator-review 명령어 획득)

따라하기 ​

1단계: opencode.json으로 플러그인 설치 ​

OpenCode 설정 파일(보통 프로젝트 루트 디렉토리 또는 사용자 설정 디렉토리에 위치)을 찾아 plugin 배열에 Plannotator를 추가합니다:

json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": ["@plannotator/opencode@latest"]
}

왜 이렇게 하나요opencode.json은 OpenCode의 플러그인 설정 파일입니다. 플러그인 이름을 추가하면 OpenCode가 자동으로 npm 저장소에서 플러그인을 다운로드하고 로드합니다.

확인 사항: OpenCode 시작 시 "Loading plugin: @plannotator/opencode..." 메시지가 표시되어야 합니다.


2단계: OpenCode 재시작 ​

왜 이렇게 하나요 플러그인 설정 변경 후 적용하려면 재시작이 필요합니다.

확인 사항: OpenCode가 모든 플러그인을 다시 로드합니다.


3단계: 설치 스크립트 실행으로 슬래시 명령어 획득 ​

bash
curl -fsSL https://plannotator.ai/install.sh | bash
powershell
irm https://plannotator.ai/install.ps1 | iex

왜 이렇게 하나요 이 스크립트는 다음을 수행합니다:

  1. plannotator CLI 도구를 시스템에 다운로드
  2. /plannotator-review 슬래시 명령어를 OpenCode에 설치
  3. 캐시된 플러그인 버전 정리

확인 사항: "Plannotator installed successfully!"와 같은 설치 성공 메시지가 표시되어야 합니다.


4단계: 설치 확인 ​

OpenCode에서 플러그인이 정상적으로 작동하는지 확인합니다:

submit_plan tool 사용 가능 여부 확인:

  • 대화에서 Agent에게 "submit_plan을 사용하여 계획을 제출해 주세요"라고 요청
  • 플러그인이 정상이면 Agent가 이 tool을 보고 호출할 수 있어야 합니다

/plannotator-review 명령어 사용 가능 여부 확인:

  • 입력창에 /plannotator-review 입력
  • 플러그인이 정상이면 명령어 제안이 표시되어야 합니다

확인 사항: 두 기능 모두 오류 없이 정상적으로 사용할 수 있어야 합니다.


5단계: 환경 변수 설정 (선택사항) ​

Plannotator는 다음 환경 변수를 지원합니다. 필요에 따라 설정하세요:

환경 변수 설명
환경 변수용도기본값예시
PLANNOTATOR_REMOTE원격 모드 활성화 (devcontainer/SSH)미설정export PLANNOTATOR_REMOTE=1
PLANNOTATOR_PORT고정 포트 (원격 모드 필수)로컬 랜덤, 원격 19432export PLANNOTATOR_PORT=9999
PLANNOTATOR_BROWSER사용자 정의 브라우저 경로시스템 기본값export PLANNOTATOR_BROWSER="/Applications/Google Chrome.app"
PLANNOTATOR_SHAREURL 공유 비활성화활성화export PLANNOTATOR_SHARE=disabled

원격 모드 설정 예시 (devcontainer/SSH):

.devcontainer/devcontainer.json에서:

json
{
  "containerEnv": {
    "PLANNOTATOR_REMOTE": "1",
    "PLANNOTATOR_PORT": "9999"
  },
  "forwardPorts": [9999]
}

왜 이렇게 하나요

  • 원격 모드: 컨테이너나 원격 머신에서 OpenCode를 실행할 때, 고정 포트를 사용하고 브라우저를 자동으로 엽니다
  • 포트 포워딩: 호스트 머신이 컨테이너 내부 서비스에 접근할 수 있게 합니다

확인 사항: Agent가 submit_plan을 호출하면 콘솔에 서버 URL이 표시됩니다 (브라우저가 자동으로 열리지 않음). 예:

Plannotator server running at http://localhost:9999

6단계: OpenCode 재시작 (환경 변수 수정 시) ​

5단계에서 환경 변수를 설정했다면, 설정을 적용하기 위해 OpenCode를 다시 재시작해야 합니다.


체크포인트 ✅ ​

설치 완료 후 다음 사항을 확인하세요:

  • [ ] opencode.json에 @plannotator/opencode@latest 추가됨
  • [ ] OpenCode 재시작 후 플러그인 로드 오류 없음
  • [ ] /plannotator-review 입력 시 명령어 제안 표시됨
  • [ ] (선택사항) 환경 변수 설정 완료

자주 발생하는 문제 ​

일반적인 오류 1: 플러그인 로드 실패 ​

증상: OpenCode 시작 시 "Failed to load plugin @plannotator/opencode" 메시지 표시

가능한 원인:

  • 네트워크 문제로 npm에서 다운로드 불가
  • npm 캐시 손상

해결 방법:

  1. 네트워크 연결 확인
  2. 설치 스크립트 실행 (플러그인 캐시 정리됨)
  3. npm 캐시 수동 정리: npm cache clean --force

일반적인 오류 2: 슬래시 명령어 사용 불가 ​

증상: /plannotator-review 입력 시 명령어 제안이 표시되지 않음

가능한 원인: 설치 스크립트가 성공적으로 실행되지 않음

해결 방법: 설치 스크립트 다시 실행 (3단계)


일반적인 오류 3: 원격 모드에서 브라우저가 열리지 않음 ​

증상: devcontainer에서 submit_plan 호출 시 브라우저가 열리지 않음

가능한 원인:

  • PLANNOTATOR_REMOTE=1 미설정
  • 포트 포워딩 미설정

해결 방법:

  1. PLANNOTATOR_REMOTE=1 설정 확인
  2. .devcontainer/devcontainer.json의 forwardPorts에 설정한 포트가 포함되어 있는지 확인
  3. 표시된 URL을 수동으로 접속: http://localhost:9999

일반적인 오류 4: 포트 충돌 ​

증상: 서버 시작 실패, "Port already in use" 메시지 표시

가능한 원인: 이전 서버가 제대로 종료되지 않음

해결 방법:

  1. PLANNOTATOR_PORT를 다른 포트로 변경
  2. 또는 포트를 사용 중인 프로세스를 수동으로 종료 (macOS/Linux: lsof -ti:9999 | xargs kill)

이번 강의 요약 ​

이번 강의에서는 OpenCode에서 Plannotator 플러그인을 설치하고 설정하는 방법을 배웠습니다:

  1. opencode.json으로 플러그인 추가 - submit_plan tool 활성화
  2. 설치 스크립트 실행 - /plannotator-review 슬래시 명령어 획득
  3. 환경 변수 설정 - 원격 모드 및 사용자 정의 요구사항 적용
  4. 설치 확인 - 플러그인 정상 작동 확인

설치 완료 후 다음을 할 수 있습니다:

  • Agent가 submit_plan을 사용하여 계획을 제출하고 대화형 검토 진행
  • /plannotator-review를 사용하여 Git diff를 수동으로 검토

다음 강의 예고 ​

다음 강의에서는 **계획 검토 기초**를 배웁니다.

배울 내용:

  • AI가 생성한 계획 확인 방법
  • 다양한 유형의 주석 추가 (삭제, 대체, 삽입, 코멘트)
  • 계획 승인 또는 거부

부록: 소스 코드 참조 ​

소스 코드 위치 보기

업데이트 날짜: 2026-01-24

기능파일 경로라인 번호
플러그인 엔트리 정의apps/opencode-plugin/index.ts34-280
submit_plan tool 정의apps/opencode-plugin/index.ts209-252
플러그인 설정 (opencode.json) 주입apps/opencode-plugin/index.ts55-63
환경 변수 읽기apps/opencode-plugin/index.ts37-51
계획 검토 서버 시작packages/server/index.ts전체
코드 검토 서버 시작packages/server/review.ts전체
원격 모드 감지packages/server/remote.ts전체

주요 상수:

  • PLANNOTATOR_REMOTE: 원격 모드 플래그 ("1" 또는 "true"로 설정하여 활성화)
  • PLANNOTATOR_PORT: 고정 포트 번호 (로컬 기본값 랜덤, 원격 기본값 19432)

주요 함수:

  • startPlannotatorServer(): 계획 검토 서버 시작
  • startReviewServer(): 코드 검토 서버 시작
  • getSharingEnabled(): URL 공유 스위치 상태 가져오기 (OpenCode 설정 또는 환경 변수에서)