OpenWork 소개
OpenWork는 터미널 기반의 코딩 에이전트 도구인 OpenCode를 그래픽 사용자 인터페이스(GUI) 환경에서 사용할 수 있도록 구현한 오픈소스 데스크톱 애플리케이션입니다. (
몇 일 전 소개한, 같은 이름의 Claude Cowork를 대체하는 목적의 Openwork과는 다른 프로젝트입니다)
OpenCode는 강력한 성능을 가졌지만, 텍스트 기반의 CLI(Command Line Interface) 환경에서 작동하기 때문에 일반 사용자가 접근하기 어렵거나, 복잡한 파일 변경 내역(diffs)과 로그를 텍스트로만 확인해야 하는 불편함이 있었습니다. OpenWork는 이러한 기술적 장벽을 해소하기 위해 개발되었습니다. 터미널의 복잡한 명령어 대신 채팅 기반의 직관적인 UI를 제공하여, 개발자뿐만 아니라 비개발자도 자신의 로컬 환경에서 AI 에이전트와 협업할 수 있도록 돕는 OpenCode의 클라이언트 역할을 수행합니다.
OpenWork 프로젝트는 Rust 기반의 Tauri 프레임워크를 사용하여 가볍고 안전하게 구동되며, 사용자의 로컬 머신에 설치된 OpenCode 엔진과 직접 통신합니다. 결과적으로 사용자는 세련된 UX를 경험하면서도, 실제 구동은 로컬 인프라와 오픈소스 엔진 위에서 이루어지는 데이터 주권과 확장성을 동시에 누릴 수 있습니다.
OpenCode CLI vs OpenWork Desktop
OpenWork는 독자적인 AI 서비스라기보다, OpenCode를 사용하는 새로운 방식(Interface)입니다. 기존 OpenCode는 터미널에서 작동하며, 시스템 통합이나 자동화 스크립트, 서버 환경에서의 실행에 최적화되어 있습니다. 모든 상호작용이 텍스트 로그와 명령어로 이루어집니다.
이에 비해, OpenWork는 일반 사용자를 위한 제품(Product) 형태의 앱입니다. CLI의 텍스트 로그를 시각적인 **타임라인(Timeline)**으로 변환하여 보여주며, 파일 승인이나 권한 제어를 클릭 한 번으로 처리할 수 있는 UX를 제공합니다.
OpenWork의 주요 기능
OpenWork는 OpenCode 엔진의 잠재력을 UI/UX로 풀어내는 데 집중하고 있습니다.
시각화된 에이전트 워크플로우 (Visualized Workflow)
OpenCode 엔진이 생성하는 복잡한 실행 계획과 사고 과정을 사용자가 이해하기 쉬운 형태로 시각화합니다.
-
타임라인 UI: 에이전트가 어떤 파일을 읽고, 어떤 생각을 거쳐, 어떤 명령어를 실행했는지를 채팅방 형태의 타임라인으로 보여줍니다.
-
실시간 스트리밍: 백엔드(OpenCode)에서 넘어오는 SSE(Server-Sent Events) 데이터를 실시간으로 렌더링하여, 에이전트의 작업 진행 상황을 즉시 확인할 수 있습니다.
-
세션 관리: 여러 개의 작업 맥락(Context)을 동시에 유지하고 전환할 수 있는 세션 관리 기능을 제공합니다.
GUI 기반의 권한 제어 (Interactive Permissions)
CLI에서는 설정 파일이나 프롬프트로 처리해야 했던 보안 권한을 UI 상에서 직관적으로 제어합니다.
-
사용자 승인 요청: 에이전트가 파일 시스템을 수정하거나 민감한 명령어를 실행하려 할 때, 팝업이나 UI 버튼을 통해 사용자에게 승인을 요청합니다.
-
유연한 정책 설정: 특정 명령어에 대해 '항상 허용', '이번만 허용', '거부' 등을 마우스 클릭으로 간편하게 설정하여, 에이전트가 안전한 범위 내에서만 작동하도록 제한할 수 있습니다.
스킬 관리자 (Skill Manager)
OpenWork은 OpenCode의 가장 큰 장점인 '플러그인 시스템'을 UI 레벨에서 지원합니다.
OpenCode의 스킬 디렉토리(.opencode/skill)에 위치한 스킬들을 표시하고, OpenPackage를 사용하여 설치(opkg install ...)하는 등, 스킬(SKILL) 관리 작업을 수행할 수 있습니다.
Tauri 기반의 로컬 아키텍처
OpenWork는 웹 기술로 UI를 만들고, Rust 기반의 Tauri로 이를 감싸 데스크톱 앱으로 만들었습니다. Electron 대비 메모리 사용량이 적고 가벼운 Tauri를 사용하여 쾌적한 사용성을 제공합니다.
또한, 앱 실행 시 내부적으로 opencode CLI 프로세스를 스폰(Spawn)하거나, 이미 실행 중인 OpenCode 서버에 연결하여 작동합니다. 이는 UI와 로직이 완전히 분리된 구조임을 의미합니다:
-
Host Mode: 로컬 컴퓨터에서 OpenCode 서버를 직접 구동하여 독립적으로 실행합니다. (기본 포트 바인딩)
-
Client Mode: 원격 서버나 다른 로컬 포트에서 실행 중인 OpenCode 인스턴스에 접속하여 제어하는 리모트 컨트롤러 역할도 수행할 수 있습니다.
OpenWork 설치 및 실행 요건
OpenWork는 OpenCode를 위한 UI 프로젝트이므로, 반드시 OpenCode가 설치 및 실행 가능해야 합니다.
사전 요구 사항
- OpenCode CLI: 시스템 PATH에
opencode명령어가 설치되어 있어야 합니다. - Node.js (패키지 관리자 pnpm 권장)
- Rust (Tauri 빌드를 위한 도구 체인)
실행 방법
OpenWork GitHub 저장소의 릴리즈(Release) 페이지에서 운영체제별 설치 파일을 내려받아 실행하거나, GitHub 저장소를 클론한 후 다음 명령어로 실행할 수 있습니다.
# 의존성 설치
pnpm install
# 데스크톱 앱 실행 (Tauri + Vite)
# 로컬의 OpenCode 엔진을 호스트 모드로 실행합니다.
pnpm dev
라이선스
OpenWork 프로젝트는 MIT License를 따르고 있습니다. 누구나 자유롭게 코드를 수정하거나, OpenCode 기반의 자체 클라이언트를 개발하는 데 참고할 수 있습니다.
OpenWork 공식 홈페이지
OpenWork 프로젝트 GitHub 저장소
이 글은 GPT 모델로 정리한 글을 바탕으로 한 것으로, 원문의 내용 또는 의도와 다르게 정리된 내용이 있을 수 있습니다. 관심있는 내용이시라면 원문도 함께 참고해주세요! 읽으시면서 어색하거나 잘못된 내용을 발견하시면 덧글로 알려주시기를 부탁드립니다. ![]()
파이토치 한국 사용자 모임
이 정리한 이 글이 유용하셨나요? 회원으로 가입하시면 주요 글들을 이메일
로 보내드립니다! (기본은 Weekly지만 Daily로 변경도 가능합니다.)
아래
쪽에 좋아요
를 눌러주시면 새로운 소식들을 정리하고 공유하는데 힘이 됩니다~ ![]()



