evot-agent
v0.4.1
Published
Local browser agent for evot — browses sites with Claude or Codex and appends results as cells.
Readme
evot-agent
유저 컴퓨터에서 도는 evot의 로컬 브라우저 에이전트. evot에서 Vot에게 "내 컴퓨터 브라우저로 ○○ 수집해줘"라고 말하면(또는 루틴으로 걸어두면), 이 에이전트가 Claude(기본) 또는 Codex + Playwright로 사이트를 탐색·수집하고 결과를 지정한 쓰레드에 셀로 추가한다. 결과는 요청을 받은 Vot 이름/아바타로 정리되며, 이미지를 수집한 경우 설명과 함께 셀 안에 표시된다.
요구사항
- Node 18+
- Google Chrome
- 백엔드(택1) — 별도 API 키 불필요:
- Claude (기본): Claude Code 로그인(구독). 모델 크리덴셜은 로컬 Claude Code 로그인을 그대로 사용. (또는
ANTHROPIC_API_KEY) - Codex (선택): ChatGPT 로그인.
codex login을 한 번 해두면 그 크리덴셜을 재사용한다. (아래 백엔드 선택 참고)
- Claude (기본): Claude Code 로그인(구독). 모델 크리덴셜은 로컬 Claude Code 로그인을 그대로 사용. (또는
설치 & 연결
- evot.io에 로그인 → Settings → Integrations → Computer Use → 코드 발급.
- 코드로 연결:
npx evot-agent connect <code> # 예: npx evot-agent connect ABCD2345성공하면 ~/.evot-agent/token.json(전용 토큰, mode 600)이 생긴다.
이메일·비밀번호·API 키는 아무것도 입력하지 않는다 — 일회용 코드만.
보안 모델
- 연결 코드는 10분 만료·1회용. 코드는 스코프된 전용 토큰으로 교환되고, 서버에는 토큰의 sha-256 해시만 저장된다.
- 에이전트는 DB에 직접 붙지 않는다. 토큰이 유출돼도 할 수 있는 건 "본인 쓰레드에 셀 추가"뿐이며, evot Settings에서 언제든 Revoke할 수 있다.
- 토큰은 90일 만료 — 만료되면 코드를 다시 발급받아
connect.
데몬 모드 (권장)
npm install -g evot-agent
evot-agent start # 기본 10분마다 폴링
evot-agent install # macOS 전용: 로그인 시 자동 시작 + 백그라운드 상주
evot-agent uninstall # 상주 등록 해제
install은 현재 macOS(launchd) 전용이다. Windows/Linux는evot-agent start를 터미널에 띄워두거나, 작업 스케줄러/systemd 등으로 로그인 시 실행되게 등록한다.
데몬을 켜두면 evot이 잡을 큐에 넣는 대로 가져와 실행한다. 새 UI는 없다 — 기존처럼 쓰면 된다:
- 대화: 쓰레드에서 Vot 멘션으로 "Use my computer's browser to summarize today's top AI posts on Hacker News" → Vot이 잡을 큐잉 → 데몬이 실행 → 같은 쓰레드에 결과 셀.
- 다른 쓰레드로: "...and put the results in my 'Research' thread" → 이름으로 대상 쓰레드 지정.
- 루틴: 루틴 지시문에 같은 식으로 쓰면 스케줄 도래 시 자동 큐잉·실행.
폴링 주기는 --interval <초> 또는 EVOT_AGENT_POLL_SECONDS env로 조절(최소 30초).
결과는 evot 웹에서 쓰레드 새로고침 시 보이고, 텔레그램 연동 시 완료/실패 알림이 온다.
로그(상주 등록 시): ~/.evot-agent/logs/agent.log
로그인이 필요한 사이트 (선택)
evot-agent login x.com # 스킴 생략 가능 (https:// 자동 보정)
evot-agent login https://x.com평소 쓰는 Chrome과 별개인 전용 프로필로 창이 뜬다. 즉 평소 브라우저에 로그인돼 있어도 에이전트에는 상속되지 않으므로, 로그인이 필요한 사이트는 여기서 한 번 로그인해둬야 한다. 대상 사이트에 로그인 후 창을 닫으면 세션이 전용 프로필에 저장되어 이후 잡에 재사용된다. 아이디/비번은 저장되지 않고 브라우저 세션 쿠키만 남는다. 수집 중 로그인이 풀리면 실패 셀에 재로그인 안내가 표시된다.
소셜 로그인(Google·Apple 등) 주의: 자동화가 제어하는 브라우저라 Google 등이 로그인을 "browser may not be secure"로 막을 수 있다. 그럴 땐 사이트 자체 로그인(이메일/비밀번호)을 사용하면 우회된다.
백엔드 선택
브라우저를 구동하는 모델을 고를 수 있다. 기본은 Claude이고, Codex로 바꿀 수 있다. 둘 다 로컬 로그인 크리덴셜을 재사용하므로 별도 API 키가 필요 없다.
# 데몬을 Codex로 실행
EVOT_AGENT_BACKEND=codex evot-agent start
evot-agent start --backend codex # 플래그가 env보다 우선
# 단발 실행도 동일
evot-agent run job.json --backend codexCodex 사전 준비: 이 컴퓨터에서 codex login(ChatGPT 로그인)을 한 번 해둔다.
안 돼 있으면 잡이 "Run codex login" 안내와 함께 실패한다.
- 모델은 기본
gpt-5.6-terra(중간급, 밸런스). 더 강하게는gpt-5.6-sol, 더 빠르고 저렴하게는gpt-5.6-luna처럼EVOT_AGENT_CODEX_MODEL로 교체한다. ChatGPT 계정에서 지원하지 않는 모델이면 잡이 실패하니 계정 지원 모델을 지정해야 한다. - 유저 전역
~/.codex설정/플러그인과 섞이지 않도록 격리된 홈(~/.evot-agent/codex-home)에서 실행하며, 로그인 정보(auth.json)만 복사해 재사용한다. - 한 잡의 최대 실행 시간은
EVOT_AGENT_CODEX_TIMEOUT_SEC(기본 300초)로 조절한다.
안전
- 에이전트는 read-only로 동작하도록 지시받는다 (구매·게시·폼 제출·설정변경 금지).
- 페이지 내용은 신뢰하지 않는 입력으로 취급 (프롬프트 인젝션 대비).
- 전용 브라우저 프로필로 메인 브라우저와 격리.
License
MIT
