콘텐츠로 이동

Tools

Manage the tools an LLM can use.

도구는 LLM을 사용하여 코드베이스에서 작업을 수행 할 수 있습니다. opencode는 내장 도구 세트로 제공되지만, custom tools 또는 MCP 서버로 확장할 수 있습니다.

기본적으로 모든 도구는enabled이며, 실행할 권한이 없습니다. permissions를 통해 공구 동작을 제어할 수 있습니다.


구성

permission 필드를 사용하여 도구 동작을 제어합니다. 각 도구에 대한 승인이 필요할 수 있습니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "deny",
"bash": "ask",
"webfetch": "allow"
}
}

한 번에 여러 도구를 제어 할 와일드 카드를 사용할 수 있습니다. 예를 들어, MCP 서버의 모든 도구에 대한 승인을 요구합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"mymcp_*": "ask"
}
}

Learn more configuring 권한에 대해.


내장

다음은 opencode에서 사용할 수있는 모든 내장 도구입니다.


bash

프로젝트 환경에서 shell 명령을 실행합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"bash": "allow"
}
}

이 도구는 npm install, git status 또는 다른 shell 명령과 같은 terminal 명령을 실행하는 LLM을 허용합니다.


편집

정확한 문자열 교체를 사용하여 기존 파일을 수정합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}

이 도구는 정확한 텍스트 일치를 대체하여 파일에 정확한 편집을 수행합니다. LLM은 코드를 modify하는 주요 방법입니다.


쓰기

새로운 파일을 만들거나 기존의 것을 덮어쓰기.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}

LLM을 사용하여 새 파일을 만듭니다. 이미 존재하는 경우 기존 파일을 덮어쓰겠습니다.


읽기

codebase에서 파일 내용을 읽으십시오.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"read": "allow"
}
}

이 도구는 파일을 읽고 내용을 반환합니다. 큰 파일에 대한 특정 라인 범위를 읽을 수 있습니다.


그라프

정규 표현식을 사용하여 파일 내용을 검색합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"grep": "allow"
}
}

Codebase에서 빠른 콘텐츠 검색. 전체 regex 문법 및 파일 패턴 필터링 지원.


glob

패턴 매칭으로 파일 찾기.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"glob": "allow"
}
}

**/*.js 또는 src/**/*.ts와 같은 glob 패턴을 사용하여 파일 검색. 수정 시간에 의해 정렬 된 파일 경로 반환.


리스트

주어진 경로의 파일 및 디렉토리 목록.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"list": "allow"
}
}

이 도구는 디렉토리 내용을 나열합니다. 그것은 glob 패턴을 필터 결과에 받아들입니다.


lsp (실험)

정의, 참고, hover info 및 호출 hierarchy와 같은 코드 인텔리전스 기능을 얻기 위해 구성 된 LSP 서버와 인터랙트.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"lsp": "allow"
}
}

지원된 가동은 goToDefinition, findReferences, hover, documentSymbol, workspaceSymbol, goToImplementation, prepareCallHierarchy, incomingCallsoutgoingCalls를 포함합니다.

LSP 서버가 프로젝트에 사용할 수 있는 구성하려면 LSP Servers를 참조하십시오.


패치

파일에 패치를 적용합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"edit": "allow"
}
}

이 도구는 코드베이스에 패치 파일을 적용합니다. 다양한 소스에서 diffs 및 Patch를 적용하는 데 유용합니다.


기술

skill (SKILL.md 파일)을로드하고 대화의 내용을 반환합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"skill": "allow"
}
}

todowrite에

코딩 세션 중에 todo 목록을 관리합니다.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todowrite": "allow"
}
}

복잡한 작업 중에 진행 상황을 추적하기 위해 작업 목록을 만들고 업데이트합니다. LLM은 멀티 단계 작업을 구성하기 위해 이것을 사용합니다.


todoread

기존의 todo 목록 읽기.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"todoread": "allow"
}
}

현재 todo 목록 상태를 읽습니다. 작업이 종료되거나 완료되는 것을 추적하기 위해 LLM에 의해 사용됩니다.


웹 사이트

Fetch 웹 콘텐츠.

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"webfetch": "allow"
}
}

LLM을 fetch 및 웹 페이지를 읽을 수 있습니다. 온라인 리소스를 찾는 데 도움이 되는 문서 또는 연구


웹 검색

웹 검색

opencode.json
{
"$schema": "https://opencode.ai/config.json",
"permission": {
"websearch": "allow"
}
}

Exa AI를 사용하여 웹 검색을 수행하여 관련 정보를 온라인으로 찾으십시오. 연구 주제에 유용한, 현재 이벤트를 찾는, 또는 훈련 데이터 차단을 넘어 정보를 수집.

API 키가 필요하지 않습니다 - 도구는 인증없이 Exa AI의 호스팅 MCP 서비스에 직접 연결됩니다.


질문

실행 중에 사용자의 질문 요청.

opencode.json
{
"$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 파일을 만듭니다. 이 파일은 명시적으로 특정 경로를 허용 할 수 있습니다.

.ignore
!node_modules/
!dist/
!build/

예를 들어,이 .ignore 파일은 node_modules/, dist/build/ 디렉토리 내에서 검색 할 수 있습니다. .gitignore.