Agent Reach는 AI 에이전트(Claude Code, Cursor 등)가 Twitter/X, Reddit, YouTube, GitHub, Bilibili, 샤오홍슈 등 10여 개 플랫폼의 콘텐츠를 CLI 명령 하나로 읽고 검색할 수 있게 해주는 파이썬 패키지입니다. 유료 API 키 없이도 동작하도록 사이트별로 '첫 번째 후보 + 대체 후보' 백엔드를 두고, 막히면 다른 경로로 전환하는 방식을 지향합니다.
핵심은 agent_reach/channels/ 아래 플랫폼별 모듈(twitter.py, reddit.py, bilibili.py 등)과 agent_reach/backends/opencli.py 같은 백엔드 어댑터의 조합입니다. 각 채널은 base.py가 정의하는 공통 인터페이스를 구현해 CLI(cli.py)와 MCP 서버(integrations/mcp_server.py)에서 동일한 방식으로 호출됩니다. config.py가 ~/.agent-reach/config.yaml에 쿠키·토큰·프록시 등을 저장하고, doctor.py가 각 채널의 연결 상태를 점검해 '어디가 뚫려 있고 어디가 막혔는지'를 알려줍니다. Reddit·Boss직퍼·샤오홍슈처럼 로그인이 필요한 곳은 사용자가 보유한 Chrome 세션을 재사용하는 OpenCLI 백엔드나 Cookie-Editor로 추출한 쿠키를 쓰도록 분리되어 있고, pyproject.toml에서 rdt-cli·boss-agent-cli는 PyPI가 아닌 특정 git 커밋에 핀 고정되어 있어 업스트림 변동의 영향을 통제합니다. 설치는 agent에게 install.md URL을 붙여넣게 하는 '자연어 설치' 방식이며, 실제 실행은 agent-reach CLI 서브커맨드(install/doctor/configure/setup)를 통해 이뤄집니다.
- STEP 01
pip install agent-reach 후 agent-reach doctor를 실행하면 YouTube·RSS·웹처럼 설정이 필요 없는 채널은 바로 정상, Twitter·Reddit·샤오홍슈 같은 채널은 '설정 필요' 상태로 표시되는 것을 보게 됩니다.
- STEP 02
agent-reach setup 대화형 마법사를 돌리면 Exa 검색 키, GitHub 토큰, Groq Whisper 키 등 선택적 항목을 하나씩 물어보고 .agent-reach/config.yaml에 저장하는 과정을 거칩니다.
- STEP 03
YouTube 자막 추출이나 V2EX 글 읽기처럼 무설정 채널은 명령 한 번으로 텍스트 결과를 즉시 받아볼 수 있습니다.
- STEP 04
Twitter나 Reddit을 쓰려면 브라우저에서 쿠키를 추출해 agent-reach configure twitter-cookies 같은 명령으로 주입해야 하고, 이 과정에서 TWITTER_AUTH_TOKEN, TWITTER_CT0 같은 환경변수 설정이 요구됩니다.
- STEP 05
Boss직퍼은 전용 Chrome을 CDP로 띄워 사용자가 직접 로그인해야 하는 수동 단계가 끼어 있어, 완전 자동화가 아니라 '반자동' 경험에 가깝습니다.
- STEP 06
테스트 스위트(tests/ 폴더, 40개 이상 파일)를 로컬에서 pytest로 돌려보면 쿠키 보안, 홈 디렉터리 격리, 자격증명 스크러빙 등 보안 관련 항목까지 검증되는 것을 확인할 수 있습니다.
설치 후에는 agent-reach CLI와 MCP 서버를 통해 여러 플랫폼의 콘텐츠를 텍스트로 받아오는 통합 인터페이스를 얻게 됩니다. 무설정 채널(웹, YouTube, RSS, V2EX)은 바로 쓸 수 있고, 로그인 필요 채널은 쿠키/토큰을 한 번 설정하면 이후부터 CLI 한 줄 명령으로 검색·읽기가 가능해집니다. doctor 명령으로 어떤 채널이 살아있는지 수시로 점검할 수 있는 것도 실질적 산출물입니다.
Reddit, Boss직퍼, 샤오홍슈 등 로그인 필요 채널은 README에서도 밝히듯 '무설정 경로가 없다'고 명시되어 있어, 실제로는 Cookie 추출이나 수동 로그인 같은 사람 손이 들어가는 단계가 반드시 필요합니다.
rdt-cli, boss-agent-cli 같은 핵심 의존성이 PyPI 정식 릴리스가 아니라 특정 git 커밋에 핀 고정된 포크/업스트림 PR 상태라서, 해당 저장소가 삭제되거나 변경되면 설치가 깨질 수 있는 공급망 리스크가 존재합니다.
플랫폼 측 봇 차단 정책이 바뀌면(예: yt-dlp가 Bilibili 풍공에 막혀 bili-cli로 전환된 사례) 도구가 일시적으로 동작하지 않을 수 있고, '우리가 고친다'는 약속은 유지보수자의 대응 속도에 의존합니다.
쿠키/토큰을 로컬 파일에 저장하는 구조라, 로컬 환경 보안(파일 권한, 홈 디렉터리 격리)에 대한 신뢰는 테스트로 검증돼 있지만 사용자가 그 파일을 직접 관리해야 하는 책임은 남습니다.
Claude Code, Cursor, OpenClaw처럼 명령줄을 실행할 수 있는 AI 에이전트를 운용하면서 웹·소셜·영상 플랫폼 정보를 에이전트에 붙여주고 싶은 개발자에게 적합합니다. README의 채널별 표, pyproject.toml의 핀 고정된 의존성, tests/ 폴더의 보안·격리·채널 계약 테스트, 그리고 CI가 Linux/Windows 다중 Python 버전과 wheel 빌드까지 검증하는 구조를 보면, 코드 품질과 테스트 커버리지에 대한 신뢰는 합리적으로 가질 수 있습니다. 다만 로그인 필요 채널의 실제 성공률과 외부 포크 의존성의 지속성은 문서만으로는 완전히 보장되지 않으므로, 완전 무설정을 기대하기보다 '설정은 줄었지만 일부는 여전히 수동'이라는 현실적 기대로 접근하는 것이 맞습니다.