pi-gpt-search: (GPT 토큰 소모 0) GPT 토큰 없이 Codex의 독립형 검색 엔진을 Pi 모델에서 사용하기
pi-gpt-search: (ZERO GPT tokens) Use Codex's standalone search engine with ZERO GPT tokens spent, native web search for any Pi model
핵심 요약
GPT 토큰 소모 없이 Codex의 웹 검색 엔진을 Pi 에이전트에서 직접 활용할 수 있는 오픈소스 확장 도구입니다.
- 토큰 비용 절감 — GPT 모델 추론 없이 Codex의 웹 검색 API를 직접 호출함
- 모델 호환성 — Gemini, Claude, 로컬 모델 등 모든 Pi 모델에서 사용 가능
- 개인정보 보호 — 대화 기록이나 시스템 프롬프트 전송 없이 검색 쿼리만 처리함
- 기술적 구현 — Codex CLI 바이너리 리버스 엔지니어링을 통해 독립형 검색 엔드포인트 추출
다들 안녕! OpenAI Codex 써본 사람들은 알겠지만, 얘네 웹 검색 결과 퀄리티가 진짜 미쳤거든. 기존 검색 확장 프로그램이나 구글 커스텀 검색, Brave API 같은 거 써보면 맨날 노이즈 섞인 결과나 구닥다리 정보, 아니면 순위도 엉망인 스니펫만 나와서 Codex 검색 엔진의 깊이랑 퀄리티를 절대 못 따라오잖아.
이제 그 Codex 검색 엔진을 Pi 안에서 어떤 모델(Gemini, Claude, 로컬 모델, OpenRouter 등)을 쓰든 간에 그대로 가져다 쓸 수 있게 됐어. 심지어 GPT 모델 추론 횟수 0회, GPT 토큰 소모 0으로 말이야.
내가 만든 **pi-gpt-search**는 Codex의 독립형 웹 검색 백엔드를 직접 재사용해서 Pi에 네이티브 web_search 도구를 추가해주는 확장 프로그램이야.
⚡ 1줄 설치
npm으로 설치: bash pi install npm:pi-gpt-search
GitHub에서 설치: bash pi install https://github.com/mateusdcc/pi-gpt-search
설치 없이 일회성 세션으로 바로 써보기: bash pi -e npm:pi-gpt-search
🧠 작동 원리 (Zero-GPT 불변성)
이 확장 프로그램은 GPT한테 웹 검색해서 Gemini용으로 요약해달라고 시키는 방식이 아니야. 대신 네가 이미 가지고 있는 codex login 인증 정보(~/.codex/auth.json 또는 .env)를 사용해서 OpenAI Codex의 독립형 웹 검색 백엔드 API( /codex/alpha/search)를 직접 호출하는 방식이지.
text Pi Coding Agent └── Gemini (or active model) └── web_search(query: "latest Rust release") └── OpenAI Standalone Search API (/codex/alpha/search) └── Structured Results (Title, URL, Snippet) └── Gemini continues reasoning & answers user
웹 검색 엔드포인트를 직접 찌르기 때문에: GPT 토큰 청구 0: 입력 토큰 0, 출력 토큰 0, 추론 토큰 0. 모델 주권: Gemini(혹은 네가 쓰는 Pi 모델)가 검색 결과 원문을 받아서 추론을 100% 수행함. 쿼리 전용 프라이버시: 대화 기록, 코드, 시스템 프롬프트는 검색 과정에서 절대 전송 안 됨.
🔬 발견 과정
우리가 엔드포인트를 리버스 엔지니어링한 방법은 다음과 같아: strings 명령어로 Codex CLI macOS 바이너리(0.147.0-alpha.6.5)를 뜯어서 검색 관련 심볼(standalone_web_search, alpha/search)을 찾아냈지. https://chatgpt.com/backend-api/codex/alpha/search에서 백엔드 파라미터를 찔러보고, 정확한 페이로드 스키마(commands.search_query: [{ q: query }])를 알아냈어. 마지막으로 웹 검색 중에 GPT_inference_calls == 0임을 검증하는 네트워크 인터셉션 테스트 스위트()를 작성했지.


