컨텐츠로 건너뛰기

참조

참조(reference)를 통해 OpenCode는 현재 프로젝트 외부의 디렉터리에 접근할 수 있습니다. 각 참조에는 별칭이 할당되며, 이를 사용해 내용을 대화에 첨부할 수 있습니다.

{
  "$schema": "https://opencode.ai/config.json",
  "references": {
    "docs": {
      "path": "../product-docs",
      "description": "제품 기능 관련 질문에 답할 때 사용"
    },
    "sdk": {
      "repository": "anomalyco/opencode-sdk-js",
      "branch": "main",
      "description": "SDK 기반 코드를 작성할 때 사용"
    }
  }
}

로컬 디렉터리

path 필드로 로컬 디렉터리를 참조합니다. 상대 경로는 프로젝트 루트를 기준으로 확인되고, 절대 경로는 그대로 사용되며, ~/로 시작하는 경로는 홈 디렉터리로 확인됩니다:

{
  "references": {
    "shared": { "path": "~/projects/shared-libs" }
  }
}

추가 옵션이 필요 없을 때는 단순 문자열이 path의 축약 표현입니다:

{
  "references": {
    "shared": "~/projects/shared-libs"
  }
}

Git 리포지토리

repository 필드로 Git 리포지토리를 참조합니다. 전체 Git URL, host/path 형식, GitHub owner/repo 축약 표기를 모두 사용할 수 있습니다. 리포지토리는 캐시에 클론되어 비동기적으로 새로 고쳐지므로 참조가 항상 최신 상태로 유지됩니다:

{
  "references": {
    "effect": {
      "repository": "Effect-TS/effect",
      "branch": "main"
    }
  }
}

branch 필드는 브랜치나 ref를 선택합니다. 생략하면 기본 브랜치가 사용됩니다. 로컬 디렉터리와 마찬가지로, 브랜치가 필요 없을 때는 문자열 값도 축약 표현이 됩니다.

용도 설명

description을 추가하여 각 참조의 용도와 언제 참고해야 하는지 에이전트에게 알립니다. 설명이 없는 참조는 에이전트에 능동적으로 노출되지 않습니다:

{
  "references": {
    "design-system": {
      "path": "../design-tokens",
      "description": "UI 컴포넌트 또는 디자인 토큰을 구현할 때 사용"
    }
  }
}

자동 완성 항목 숨기기

"hidden": true를 설정하면 해당 참조가 TUI의 @ 자동 완성 메뉴에서 제외됩니다. 설명이 있는 숨겨진 참조는 여전히 에이전트의 컨텍스트에 포함됩니다:

{
  "references": {
    "archive": {
      "path": "../legacy-archive",
      "description": "마이그레이션 작업을 위한 과거 맥락",
      "hidden": true
    }
  }
}

참조 사용

TUI에서 @ 뒤에 별칭을 입력하면 참조의 내용을 메시지에 첨부할 수 있고, @별칭/을 입력하면 그 안의 파일을 퍼지 검색할 수 있습니다. 관련 단축키는 키바인드를 참고하세요.

참조된 디렉터리는 권한 문서에서 설명하는 외부 디렉터리 권한 경계를 자동으로 넘어가므로, 도구는 추가 승인 없이 읽을 수 있습니다. 일반 도구 수준의 권한 규칙도 계속 적용됩니다.

구성 필드

필드로컬Git설명
path참조할 로컬 디렉터리
repositoryGit URL, host/path 또는 owner/repo
branch선택적 브랜치 또는 ref. 생략 시 기본 브랜치 사용
description이 참조를 언제 사용할지에 대한 에이전트 안내
hiddenTUI @ 자동 완성에서 제외

참조 별칭은 비워 둘 수 없으며, /, 공백, 백틱 또는 쉼표를 포함할 수도 없습니다.