소개
CtxPack은 AI 에이전트를 위해 설계된 토큰 인식 컨텍스트 추출 명령줄 도구입니다. 웹 페이지, HTML 또는 마크다운에서 노이즈를 제거하고 관련 섹션을 상위로 이동하여 컴팩트한 컨텍스트를 생성하며, 절약된 토큰 수를 추적합니다. Akira Taniwaki가 개발했으며 MIT 라이선스로 배포됩니다.
상세정보
콘텐츠 필터링
HTML에서 script, style, noscript, svg, canvas, iframe, nav, footer, aside 요소를 제거하고, class, id, role에 광고, 배너, 쿠키, 메뉴, 모달, 관련, 사이드바, 소셜, 추적 등의 키워드가 포함된 요소를 걸러냅니다.
토큰 추정
빠른 모델 비종속적 추정을 제공합니다. CJK 문자는 약 0.8토큰, 기타 문자는 4자당 약 1토큰으로 계산합니다. 정확한 토크나이저와는 다를 수 있습니다.
쿼리 기반 재정렬
–query 옵션을 사용하면 관련성 점수에 따라 섹션을 재정렬합니다. 단어 일치 시 +2점, 제목에 포함 시 +3점을 부여하며, 모든 콘텐츠는 유지됩니다.
누적 통계
실행 기록은 ~/.ctxpack/stats.jsonl에 저장되며, ctxpack stats 명령으로 총 절약 토큰과 감소율을 확인할 수 있습니다.
설치 및 시작
Windows에서는 winget으로 설치할 수 있습니다. 터미널에서 다음 명령을 실행합니다.
winget install atani.ctxpackmacOS에서는 Homebrew로 설치할 수 있습니다.
brew install atani/tap/ctxpack소스에서 빌드하려면 Go가 필요하며, 다음 명령을 사용합니다.
git clone https://github.com/atani/ctxpack.git
cd ctxpack
go install ./cmd/ctxpack기본 사용법
URL, 로컬 HTML/마크다운 파일, 또는 표준 입력(-)을 소스로 지정합니다. 기본 출력은 마크다운이며, –json 옵션으로 구조화된 JSON을 얻을 수 있습니다.
ctxpack https://example.com/article
ctxpack https://example.com/article --query "pricing and limits" --json
ctxpack stats
ctxpack reset --yes–stats 옵션을 추가하면 마크다운 출력에 토큰 절약 통계가 포함됩니다. -o FILE로 출력 파일을 지정할 수 있습니다.
활용 예시
AI 에이전트가 URL을 읽기 전에 CtxPack을 호출하여 컨텍스트를 압축할 수 있습니다. 예를 들어, 문서 페이지를 가져와 –json으로 출력하면 에이전트가 구조화된 데이터를 사용할 수 있습니다. –query를 사용하면 특정 주제와 관련된 섹션을 상위로 이동시켜 관련성을 높일 수 있습니다.
지원 환경 및 요구사항
Windows x64/arm64용 ZIP 아티팩트와 winget 매니페스트가 제공됩니다. Go로 작성되었으며, HTML 파싱을 위해 golang.org/x/net/html에 의존합니다. 네트워크 타임아웃은 20초, 응답 크기 제한은 50MB(로컬 파일 100MB)입니다.
버전 및 업데이트
현재 버전은 0.4.0이며, 초기 MVP 단계입니다. v0.2.x 이하의 Python 버전에서 마이그레이션하는 경우 CLI 인터페이스와 통계 형식이 유지되지만 Python 라이브러리 API는 제거되었습니다.
제한 사항 및 라이선스
JavaScript로 렌더링되는 페이지, 로그인 필요 콘텐츠, PDF/DOCX 등 바이너리 형식은 지원하지 않습니다. JavaScript 렌더링이 필요한 페이지는 종료 코드 3으로 감지됩니다. 토큰 추정은 근사치이며, 정확한 토큰 수는 모델 토크나이저에 따라 다릅니다. 이 도구는 MIT 라이선스로 배포됩니다.
시스템 요구사항
Windows 11 · x64 · winget


