프로젝트 소개

OpenCLI는 웹사이트, 브라우저 세션, Electron 앱, 로컬 도구를 인간과 AI 에이전트 모두를 위한 결정적 인터페이스로 연결하는 명령줄 도구입니다. 세 가지 주요 자동화 표면을 제공합니다: 인기 사이트용 내장 어댑터, AI 에이전트 브라우저 제어, 로컬 도구용 CLI 허브. **핵심 기능** 1. **내장 어댑터**: OpenCLI는 Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, Twitter/X, LinkedIn, Amazon, Upwork, Midjourney 등 100개 이상의 사이트용 어댑터를 제공합니다. 각 어댑터는 `opencli bilibili hot`, `opencli twitter trending`, `opencli hackernews top` 같은 사이트별 명령을 노출합니다. 2. **AI 에이전트 브라우저 제어**: AI 에이전트(Claude Code, Cursor 등)에 `opencli-browser` 스킬을 설치하면 로그인된 Chrome 세션을 통해 페이지 탐색, 클릭, 입력, 양식 작성, 데이터 추출, 페이지 검사를 할 수 있습니다. 에이전트는 스크린샷 대신 구조화된 DOM 스냅샷을 사용하여 안정적으로 상호작용합니다. 3. **CLI 허브**: `gh`, `docker`, `vercel`, `wrangler`, `obsidian`, `longbridge`, `lark-cli`, `ntn`(Notion), `dws`(DingTalk), `wecom-cli`, `tg`, `discord`, `wx` 같은 기존 명령줄 도구를 위한 통합 패스스루입니다. 사용자 정의 도구는 `opencli external register`로 등록합니다. 4. **데스크톱 앱 어댑터**: Chrome DevTools Protocol을 통해 Cursor, Trae CN, Codex, Antigravity, ChatGPT App, ChatWise, Qoder, Discord, Doubao, Trae SOLO 같은 Electron 앱을 제어합니다. **설치** OpenCLI는 Node.js >= 20.18.1이 필요합니다. npm(`npm install -g @jackwener/opencli`)으로 설치하거나 macOS/Windows용 OpenCLIApp 데스크톱 애플리케이션을 사용할 수 있습니다. Chrome 확장 프로그램(Browser Bridge)은 OpenCLI를 브라우저에 연결하며, Chrome 웹 스토어 또는 수동 설치로 사용할 수 있습니다. **브라우저 자동화 기본 명령** `opencli browser` 명령은 브라우저 자동화를 위한 기본 명령을 제공합니다: `open`, `state`, `click`, `type`, `fill`, `select`, `keys`, `wait`, `get`, `find`, `extract`, `frames`, `screenshot`, `scroll`, `back`, `eval`, `network`, `tab list`, `tab new`, `tab select`, `tab close`, `init`, `verify`, `close`. 세션은 명시적인 세션 이름으로 관리되며, 탭을 개별적으로 대상으로 지정할 수 있습니다. **어댑터 개발** `opencli-adapter-author` 스킬을 사용하여 어댑터를 처음부터 끝까지 작성할 수 있습니다. 워크플로에는 사이트 정찰, 엔드포인트 발견, 인증 선택(PUBLIC/COOKIE/INTERCEPT/UI/LOCAL), 필드 디코딩, 검증이 포함됩니다. 사이트 지식은 로컬에 유지되어 여러 어댑터에서 재사용됩니다. **다운로드 지원** Xiaohongshu, Bilibili, Twitter, Douban, Pixiv, 1688, Xiaoyuzhou(오디오 및 트랜스크립트), Zhihu(Markdown 문서), Weixin(WeChat 기사)을 포함한 지원 플랫폼에서 이미지, 비디오, 문서를 다운로드할 수 있습니다. 비디오 다운로드에는 `yt-dlp`가 필요합니다. **출력 형식** 모든 명령은 `table`(기본값), `json`, `yaml`, `md`, `csv` 형식의 `--format`을 지원하며, jq, LLM 또는 스프레드시트로 파이프할 수 있습니다. **플러그인** `opencli plugin install github:user/repo`로 커뮤니티 플러그인을 설치하여 OpenCLI를 확장할 수 있습니다. 사용 가능한 플러그인에는 GitHub Trending, 멀티플랫폼 트렌드 집계, Juejin 인기 기사, VK wall/feed/search, X 기사 게시자가 포함됩니다. **구성** 환경 변수는 프로필 선택, 창 배치(포그라운드/백그라운드), 세션 지속성, 타임아웃, CDP 엔드포인트, 상세 로깅을 제어합니다. 종료 코드는 CI/스크립트 통합을 위해 Unix `sysexits.h`를 따릅니다. **라이선스**: Apache-2.0