v0.1.60
v0.1.60 — AI CLI 통합 (Claude Code / Codex / Ollama CLI) + 에이전트→Provider 자동 바인딩
요청
- "활동목록에 있는 AI 에이전트나 추적중인 AI 에이전트를 선택하여 ollama, OpenClaw, NemoClaw, codex, claude code, vscode github copilot 등 채팅과 연동되어서 ViewWork 에서도 채팅을 전송 — 기존 IDE 프로그램의 채팅 세션과 동일하게 일체화 / VS Code 확장 프로그램처럼 / 일반적으로 불가하다면 MCP 혹은 커넥터로 연동"
설계 분석
- Claude Code / Codex CLI 의 기존 세션에 외부에서 메시지 주입 = 불가 (각 CLI 의 stdin 외엔 API 없음).
- VS Code Copilot = VS Code 확장 외 통합 불가능.
구현 가능한 통합 방식
- (1) CLI 브리지 — ViewWork 가
claude/codexsubprocess 를 spawn 해서 stdin/arg 로 메시지 전달, (2) MCP 서버 — ViewWork 가 자체 MCP server 노출 (역방향, Claude Code 등이 ViewWork 데이터 조회), (3) 에이전트 → Provider 자동 바인딩. - v0.1.60: (1) + (3) 구현. (2) MCP 서버는 v0.1.61+ 에서 별도 release 예정 — homepage 에 안내.
#1 CLI 브리지 (신규 `kind: 'cli'` provider)
electron/ipc/handlers.ts—ai:cliInvokeIPC 채널 +runCliOneShot()헬퍼.spawn(shell: false)로 injection 차단. AbortController 타임아웃 (기본 120s, 최대 600s). stdout 캡처 + ANSI 코드 제거 + 8MB hard cap. ENOENT 에러 → "명령어가 PATH 에 없음" 메시지.electron/preload.ts—viewworkApi.aiCliInvoke(payload)+AiCliInvokePayloadDto타입 export.src/store/chatStore.ts—ChatProvider인터페이스에command/args/cwd/promptStyle('arg' | 'stdin') /cliTimeoutMs추가.sendChatMessage에서kind === 'cli'분기 — 대화 히스토리를 prompt 앞에 prepend 해서 context 유지.- 신규 preset 3종: Claude Code (CLI), Codex (CLI), Ollama CLI —
suggestedFor자동 매칭 키워드 포함.
#3 에이전트 → Provider 자동 바인딩
chatStore.findProviderForAgent(providers, agentName)— agent 이름이 provider.suggestedFor 에 포함되면 매칭. CLI > HTTP 우선.AgentFollowPanel의 useEffect —followedAgent변경 시 자동으로setActiveProvider(matchId).- 결과: 활동 목록에서 'claude-code' 에이전트 클릭 → 채팅 탭 의 provider 가 자동으로 "Claude Code (CLI)" 로 전환 → 사용자 메시지가 CLI subprocess 로 전달.
ChatPanel ProviderEditor 개선
- kind dropdown 에 'CLI 도구' 옵션 추가 (가장 위, 추천).
- CLI kind 선택 시 — command / args / promptStyle / cwd / timeout 필드 + 동작 설명 박스로 자동 전환.
- HTTP kind 일 때만 baseUrl / model / apiKey / temperature 표시.
- 모든 kind 에 "자동 매칭 에이전트" 필드 (쉼표 구분) — suggestedFor 직접 편집.
homepage MCP 가이드 (web/index.html)
- 다운로드 섹션 아래 새 "🔌 AI 통합 가이드" 카드 — CLI 브리지 / MCP 서버 / VS Code 확장의 3가지 방식 비교 + Claude Code MCP 등록 방법 (
.mcp.json예시).
검증
npx tsc --noEmitexit=0.npm run build통과 (renderer 3,168kB, +10kB CLI editor + presets).
📦 GitHub 릴리스 노트: v0.1.60