Tools
Manage the tools an LLM can use.
도구는 LLM을 사용하여 코드베이스에서 작업을 수행 할 수 있습니다. opencode는 내장 도구 세트로 제공되지만, custom tools 또는 MCP 서버로 확장할 수 있습니다.
기본적으로 모든 도구는enabled이며, 실행할 권한이 없습니다. permissions를 통해 공구 동작을 제어할 수 있습니다.
구성
permission 필드를 사용하여 도구 동작을 제어합니다. 각 도구에 대한 승인이 필요할 수 있습니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "deny", "bash": "ask", "webfetch": "allow" }}한 번에 여러 도구를 제어 할 와일드 카드를 사용할 수 있습니다. 예를 들어, MCP 서버의 모든 도구에 대한 승인을 요구합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "mymcp_*": "ask" }}Learn more configuring 권한에 대해.
내장
다음은 opencode에서 사용할 수있는 모든 내장 도구입니다.
bash
프로젝트 환경에서 shell 명령을 실행합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "bash": "allow" }}이 도구는 npm install, git status 또는 다른 shell 명령과 같은 terminal 명령을 실행하는 LLM을 허용합니다.
편집
정확한 문자열 교체를 사용하여 기존 파일을 수정합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}이 도구는 정확한 텍스트 일치를 대체하여 파일에 정확한 편집을 수행합니다. LLM은 코드를 modify하는 주요 방법입니다.
쓰기
새로운 파일을 만들거나 기존의 것을 덮어쓰기.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}LLM을 사용하여 새 파일을 만듭니다. 이미 존재하는 경우 기존 파일을 덮어쓰겠습니다.
읽기
codebase에서 파일 내용을 읽으십시오.
{ "$schema": "https://opencode.ai/config.json", "permission": { "read": "allow" }}이 도구는 파일을 읽고 내용을 반환합니다. 큰 파일에 대한 특정 라인 범위를 읽을 수 있습니다.
그라프
정규 표현식을 사용하여 파일 내용을 검색합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "grep": "allow" }}Codebase에서 빠른 콘텐츠 검색. 전체 regex 문법 및 파일 패턴 필터링 지원.
glob
패턴 매칭으로 파일 찾기.
{ "$schema": "https://opencode.ai/config.json", "permission": { "glob": "allow" }}**/*.js 또는 src/**/*.ts와 같은 glob 패턴을 사용하여 파일 검색. 수정 시간에 의해 정렬 된 파일 경로 반환.
리스트
주어진 경로의 파일 및 디렉토리 목록.
{ "$schema": "https://opencode.ai/config.json", "permission": { "list": "allow" }}이 도구는 디렉토리 내용을 나열합니다. 그것은 glob 패턴을 필터 결과에 받아들입니다.
lsp (실험)
정의, 참고, hover info 및 호출 hierarchy와 같은 코드 인텔리전스 기능을 얻기 위해 구성 된 LSP 서버와 인터랙트.
{ "$schema": "https://opencode.ai/config.json", "permission": { "lsp": "allow" }}지원된 가동은 goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCalls 및 outgoingCalls를 포함합니다.
LSP 서버가 프로젝트에 사용할 수 있는 구성하려면 LSP Servers를 참조하십시오.
패치
파일에 패치를 적용합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "edit": "allow" }}이 도구는 코드베이스에 패치 파일을 적용합니다. 다양한 소스에서 diffs 및 Patch를 적용하는 데 유용합니다.
기술
skill (SKILL.md 파일)을로드하고 대화의 내용을 반환합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "skill": "allow" }}todowrite에
코딩 세션 중에 todo 목록을 관리합니다.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todowrite": "allow" }}복잡한 작업 중에 진행 상황을 추적하기 위해 작업 목록을 만들고 업데이트합니다. LLM은 멀티 단계 작업을 구성하기 위해 이것을 사용합니다.
todoread
기존의 todo 목록 읽기.
{ "$schema": "https://opencode.ai/config.json", "permission": { "todoread": "allow" }}현재 todo 목록 상태를 읽습니다. 작업이 종료되거나 완료되는 것을 추적하기 위해 LLM에 의해 사용됩니다.
웹 사이트
Fetch 웹 콘텐츠.
{ "$schema": "https://opencode.ai/config.json", "permission": { "webfetch": "allow" }}LLM을 fetch 및 웹 페이지를 읽을 수 있습니다. 온라인 리소스를 찾는 데 도움이 되는 문서 또는 연구
웹 검색
웹 검색
{ "$schema": "https://opencode.ai/config.json", "permission": { "websearch": "allow" }}Exa AI를 사용하여 웹 검색을 수행하여 관련 정보를 온라인으로 찾으십시오. 연구 주제에 유용한, 현재 이벤트를 찾는, 또는 훈련 데이터 차단을 넘어 정보를 수집.
API 키가 필요하지 않습니다 - 도구는 인증없이 Exa AI의 호스팅 MCP 서비스에 직접 연결됩니다.
질문
실행 중에 사용자의 질문 요청.
{ "$schema": "https://opencode.ai/config.json", "permission": { "question": "allow" }}이 도구는 작업 중에 LLM을 요청할 수 있습니다. 그것은 유용합니다:
- 사용자 선호도 또는 요구 사항 변경
- 주위 지침
- 구현 선택에 대한 결정
- 어떤 방향에 대한 선택 제공
각 질문에는 헤더, 질문 텍스트 및 옵션 목록이 포함되어 있습니다. 사용자는 제공된 선택권에서 선택하거나 주문 대답을 타자를 수 있습니다. 여러 질문이 있을 때, 사용자는 모든 답변을 제출하기 전에 그들 사이에서 탐색 할 수 있습니다.
사용자 정의 도구
사용자 정의 도구는 LLM이 호출 할 수있는 자신의 기능을 정의 할 수 있습니다. config 파일에 정의되어 arbitrary 코드를 실행할 수 있습니다.
Learn more 사용자 정의 도구 만들기.
MCP 서버
MCP(Model Context Protocol) 서버는 외부 도구와 서비스를 통합할 수 있습니다. 이 데이터베이스 액세스, API 통합 및 타사 서비스가 포함되어 있습니다.
MCP 서버 구성에 대한 Learn more.
내부
내부, 도구 grep, glob, 그리고 list 사용 ripgrep 후드 아래에. 기본적으로 ripgrep은 .gitignore 패턴을 존중하며 .gitignore에 나열된 파일 및 디렉토리를 검색 및 목록에서 제외됩니다.
Ignore 패턴
일반적으로 무시되는 파일을 포함하려면 프로젝트 루트에 .ignore 파일을 만듭니다. 이 파일은 명시적으로 특정 경로를 허용 할 수 있습니다.
!node_modules/!dist/!build/예를 들어,이 .ignore 파일은 node_modules/, dist/ 및 build/ 디렉토리 내에서 검색 할 수 있습니다. .gitignore.