개요
Pi 코딩 에이전트(명령 및 구성 디렉터리 이름은pi)는 Earendil Works의 오픈 소스 터미널 네이티브 코딩 에이전트(명령줄 도구)입니다. 여러 모델 공급자, 사용자 지정 공급자 및 플러그형 도구를 지원하므로 명령줄에서 코드 지원 및 작업 자동화에 적합합니다.
Pi는 맞춤형 모델 제공자와 Anthropic Messages API를 지원합니다. ~/.pi/agent/models.json에서 EvoLink를 사용자 정의 공급자로 구성하면 Pi의 완전한 에이전트 도구 호출 기능을 유지하면서 Pi에서 EvoLink의 Claude 모델 제품군을 사용할 수 있습니다.
Pi의 공식 초점은 터미널 CLI(4가지 실행 모드: 대화형/인쇄/RPC/SDK)이며, 이 가이드는 CLI를 따릅니다.
시작하기 전에
구성을 시작하기 전에 다음 준비를 완료했는지 확인하십시오.1. Pi 코딩 에이전트 CLI 설치
Pi에는 Node.js ≥ 22.19.0이 필요합니다. 먼저
node -v로 버전을 확인하세요. 이 버전 이하에서는 npm install -g가 EBADENGINE를 보고하므로 먼저 Node를 업그레이드하세요.- 컬 스크립트
- npm

pi 명령을 사용할 수 있는지 확인합니다.
2. EvoLink API 키 받기
- EvoLink 콘솔에 로그인하세요.
- 콘솔에서 API 키를 찾아 “새 키 생성” 버튼을 클릭한 후 생성된 키를 복사하세요.
- API 키는 일반적으로
sk-로 시작합니다. 안전하게 보관해주세요.
1단계: EvoLink 공급자 구성
Pi는 홈 디렉터리(전체 경로~/.pi/agent/models.json) 내의 .pi/agent/ 폴더에 있는 models.json라는 구성 파일을 통해 공급자와 모델을 정의합니다. Claude 모델은 Pi에서 tool_use / tool_result를 자주 사용하므로 이 가이드에서는 EvoLink의 Anthropic Messages 호환 API를 사용하고 이를 anthropic-messages 유형의 사용자 지정 공급자로 구성합니다.
~는 홈 디렉터리(macOS에서는 /Users/your-username, Linux에서는 /home/your-username)를 나타냅니다. .pi는 점으로 시작하여 Finder/파일 탐색기에 기본적으로 표시되지 않는 숨겨진 폴더가 됩니다. 따라서 아래 파일을 생성하는 가장 쉬운 방법은 명령줄을 이용하는 것입니다. 복사해서 붙여넣으면 됩니다..pi 폴더는 일반적으로 Pi가 실행될 때까지 생성되지 않음). 따라서 수동으로 생성해야 합니다. 다음 세 단계를 따르세요.
1
터미널 열기
- macOS:
Command + Space를 눌러 Spotlight를 열고Terminal를 입력한 후 Enter를 누릅니다. - Windows: 시작 메뉴에서
PowerShell를 검색하여 엽니다.
2
구성 폴더와 새 파일을 만듭니다.
다음 명령을 터미널에 붙여넣고 Enter를 누르십시오. 필요한 폴더를 자동으로 생성하고 텍스트 편집기에서 빈 그러면
models.json를 엽니다.- 맥OS/리눅스
- 윈도우(파워셸)
nano 편집기(터미널 내부의 간단한 텍스트 편집기)로 이동됩니다.3
구성을 붙여넣고 저장
아래 전체 구성을 복사하여 방금 연 편집기에 붙여넣습니다.그런 다음 저장합니다.
- 나노(macOS/Linux):
Control + O를 누른 다음 Enter를 눌러 저장하고Control + X를 눌러 종료합니다. - 메모장(Windows):
Control + S를 눌러 저장한 후 창을 닫습니다.
api: "anthropic-messages"— EvoLink의 Anthropic Messages 호환 경로를 사용하므로 Pi는 Claude의 기본tool_use/tool_result프로토콜을 사용합니다.baseUrl를 도메인 루트에만 설정https://direct.evolink.ai—/v1또는/v1/messages를 수동으로 추가하지 마세요. Pi는/v1/messages를 자동으로 추가합니다. 이를 수동으로 추가하면 경로가 복제되고404 Invalid URL가 발생합니다.authHeader: true가 필요합니다. Pi의 Anthropic SDK는 기본적으로x-api-key를 사용하는 반면 EvoLink의/v1/messages는Authorization: Bearer <your-key>를 예상합니다. 이 필드는 Pi가 올바른 Bearer 인증 헤더를 보내도록 합니다.apiKey에는 두 가지 형식이 있습니다. 하나를 선택하세요.- 옵션 1 · 키를 직접 붙여넣기(가장 간단하고 로컬 개인 사용에 적합): 구성에서
"$EVOLINK_API_KEY"를 실제 키로 바꿉니다."apiKey": "sk-your-real-key". 한 단계로 완료되며 환경 변수가 필요하지 않습니다. 단점은 키가 구성 파일의 일반 텍스트에 있으므로 이 파일을 공유하거나 Git에 커밋하지 마세요. - 옵션 2 · 환경 변수 보간(더 안전함, 권장):
"$EVOLINK_API_KEY"를 그대로 유지하고 실제 키를 환경 변수에 넣습니다(아래 “API 키 환경 변수 설정” 참조). 이렇게 하면 구성 파일에서 일반 텍스트 키가 유지됩니다. - (고급) Pi의
apiKey는 또한${EVOLINK_API_KEY}(동등함, 변수 이름 바로 뒤에 리터럴 텍스트가 올 때 중괄호를 사용하여 구분) 및!command(선행!가 명령을 실행하고 해당 출력을 키로 사용합니다. 예를 들어 암호 관리자에서 읽는 경우:"!op read 'op://vault/item/credential'")를 지원합니다. 값에 리터럴**(고급)** Pi의apiKey는 또한및$!`로 이스케이프 처리하세요.
- 옵션 1 · 키를 직접 붙여넣기(가장 간단하고 로컬 개인 사용에 적합): 구성에서
구성 파일의 키를 터치하고 싶지 않으신가요? 대화형 모드에서
/login를 사용하여 이 공급자를 선택하고 ~/.pi/agent/auth.json에 키를 저장할 수도 있습니다. 효과는 동일합니다.API 키 환경 변수 설정
위에서 **옵션 2(환경 변수 보간)**을 선택한 경우에만 이 단계가 필요합니다. **옵션 1(키 직접 붙여넣기)**을 선택한 경우 키는 이미 구성 파일에 있습니다. 이 섹션을 건너뛰고 바로 2단계로 이동하세요.
$EVOLINK_API_KEY를 실제 키로 지정하세요. 다음은 임시 버전(현재 터미널 창에서만 유효하며 창을 닫으면 사라집니다. 첫 번째 테스트 실행에 적합)과 영구 버전(터미널을 열 때마다 자동으로 로드됨)이 모두 있습니다.
- 맥OS/리눅스
- 윈도우(파워셸)
임시(현재 터미널 창, 닫으면 손실됨):지속적(셸 구성 파일에 기록되며 모든 새 터미널에 자동으로 적용됨):
어떤 쉘을 사용하고 있는지 모르시나요? 터미널에서
echo $SHELL를 실행합니다. 출력에 zsh가 포함되어 있으면 ~/.zshrc를 사용합니다. bash가 포함된 경우 ~/.bashrc를 사용하세요.2단계: 사용 시작 및 확인
1. 모델을 선택하세요
Pi를 시작하려면 터미널에서 다음 명령을 실행하세요./model를 입력하여 모델 선택기를 연 다음 위에서 구성한 EvoLink 모델(예: claude-fable-5)을 선택합니다.
2. 구성 확인
모델을 선택한 후 먼저 간단한 프롬프트를 입력하여 모델 응답을 확인하세요.
- AI의 일반적인 응답(몇 줄의 텍스트)이 표시됩니다.
- Pi는 두 번째 작업에서
ls도구를 호출하고 계속 응답할 수 있습니다. 401,404,model_not_found또는Unexpected role "tool"와 같은 오류는 없음입니다.
문제 해결
다음은 표시되는 실제 오류별로 정리되어 있습니다. 일치하는 오류를 찾으세요.401(잘못된 API 키)를 반환합니다.
- 환경 변수가 적용되지 않았습니다(가장 일반적). 현재 터미널에서
test -n "$EVOLINK_API_KEY" && echo "Key loaded" || echo "Key not loaded"를 실행합니다. Windows에서는setx를 사용한 후 터미널을 다시 시작해야 합니다. apiKey필드가 잘못되었습니다. 변수 이름을 리터럴 키로 처리하지 않고models.json에"$EVOLINK_API_KEY"(환경 변수 참조)가 포함되어 있는지 확인하세요."authHeader": true가 누락되었습니다. EvoLink의/v1/messages에는 Bearer 토큰이 필요하므로 이 필드가apiKey와 동일한 공급자 구성 내에 있는지 확인하세요.- 키 자체가 유효하지 않거나 비활성화되었습니다. EvoLink 콘솔에서 확인하세요.
404 Invalid URL를 반환합니다.
baseUrl에 추가 경로를 수동으로 추가했습니다. Pi는 자동으로 /v1/messages를 추가하므로 baseUrl를 도메인 루트 https://direct.evolink.ai로 다시 변경합니다.
404 model_not_found를 반환합니다.
models.json의 id가 EvoLink 콘솔//v1/models에서 반환된 모델 이름과 정확히 일치하는지 확인하세요.
400 Unexpected role "tool"를 반환합니다.
/v1로 끝나는 기본 URL과 함께 api: "openai-completions"를 사용하고 있습니다. Pi는 현재 Claude 호환 경로가 허용하지 않는 OpenAI의 role: "tool"를 사용하여 에이전트 도구 결과를 보냅니다.
해결책: 다음 세 가지 제공업체 필드를 변경하세요.
developer 역할이나 추론 매개변수가 아니라 도구 역할이기 때문에 이 문제는 supportsDeveloperRole 또는 supportsReasoningEffort로 해결할 수 없습니다. 구성을 업데이트한 후 새 세션을 시작하십시오.
비용에 대하여
위models.json의 cost 필드는 Pi가 사용량을 추정할 때 참조로 사용할 수 있도록 EvoLink의 실제 가격(백만 토큰당 USD로 고정 10% 할인)입니다.
캐시 읽기는 캐시에 적중되었을 때의 가격입니다(입력의 약 0.1배). 실제 절감액은 캐시 적중률에 따라 달라집니다. 맥락이 클수록 히트의 안정성이 떨어지므로 혜택이 할인됩니다. 무조건 저렴한 가격으로 취급하지 마세요.
FAQ
명령줄 터미널을 어떻게 열 수 있나요?
- macOS
- 윈도우
- 리눅스
- 옵션 1:
Command + Space를 눌러 Spotlight를 열고Terminal를 입력한 후 Enter를 누릅니다. - 옵션 2: 응용 프로그램 → 유틸리티 → 터미널로 이동합니다.
1. baseUrl를 도메인 루트에만 설정하는 이유는 무엇입니까?
Pi의 anthropic-messages 공급자는 baseUrl 뒤에 /v1/messages를 자동으로 추가하기 때문입니다. /v1 또는 /v1/messages를 추가하면 경로가 수동으로 복제되고 404 Invalid URL가 반환됩니다. https://direct.evolink.ai만 사용하세요.
2. authHeader: true를 설정해야 합니까?
예. Pi의 Anthropic SDK는 기본적으로 x-api-key를 사용하는 반면 EvoLink의 /v1/messages는 Bearer 토큰을 사용합니다. authHeader: true는 Pi가 Authorization: Bearer <your-key>를 보내도록 합니다. 생략하면 401가 발생할 수 있습니다.
3. 이 가이드가 터미널 CLI를 따르는 이유는 무엇입니까?
Pi의 공식 기본 형식은 터미널 CLI(4가지 실행 모드: 대화형/인쇄/RPC/SDK)입니다. EvoLink 통합 구성 및 확인은 모두 안정적이고 신뢰할 수 있는 CLI에서 수행됩니다. 이 가이드의 모든 단계는 CLI를 따릅니다.4. 구성에서 API 키를 일반 텍스트로 작성하지 않으려면 어떻게 해야 합니까?
apiKey 필드(예: "$EVOLINK_API_KEY")에서 환경 변수 보간을 사용하여 실제 키를 환경 변수에 유지합니다.
5. EvoLink는 어떤 일반 모델을 지원합니까?
EvoLink는 전체 Claude 제품군을 지원합니다(콘솔에서 볼 수 있는 GPT, Gemini 등도 지원함). 계획/복잡한 추론을 위해서는claude-fable-5를 권장합니다. 일상적인 실행에는 claude-sonnet-5를 사용하십시오. 가벼운 작업에는 claude-haiku-4-5-20251001를 사용하세요.
