자체 모델에서 실행되는 Cursor 스타일 에이전트를 원해서 OpenPilot을 만들었습니다
요약
OpenPilot은 사용자가 지정한 로컬 폴더 내에서 작동하는 오픈 소스 데스크톱 에이전트입니다. Cursor와 같은 AI 코딩 에이전트의 경험을 자체 모델(Bring your own model)로 구현하여, 파일 읽기/편집 및 셸 명령 실행 등 실제 작업 공간 기능을 제공합니다. 사용자는 모든 과정에 대한 통제권을 유지할 수 있습니다.
핵심 포인트
- 자체 모델 연결 가능: OpenAI 호환 엔드포인트 지원 (Ollama, LM Studio 등)
- 실제 작업 공간 기능: 지정 폴더 내 파일 읽기/편집 및 셸 명령 실행
- 사용자 통제권 강화: 민감한 작업은 사용자 승인 필요
- 오픈 소스(MIT 라이선스)로 제공되어 커스터마이징 용이
고지 사항: 저는 OpenPilot의 1인 개발자인 Ibrahim입니다. 이 글은 AI 어시스턴트의 도움을 받아 작성되었으며, OpenPilot 계정으로 게시되었습니다. 이는 comma.ai의 openpilot 주행 프로젝트와는 관련이 없으며 완전히 다른 것입니다.
저는 AI 코딩 에이전트를 많이 사용하며, Cursor 같은 도구가 작동하는 방식에 정말 만족합니다. 즉, 작업을 설명하면 에이전트가 파일들을 살펴보고, 명령을 실행하고, 문제를 수정하며, 그 과정을 지켜볼 수 있다는 점입니다. 제가 원했던 것은 동일한 경험이지만, 오픈 소스이며 저 자신의 모델에서 구동되는 것이었습니다. 이는 호스팅된 API일 수도 있고 로컬 환경일 수도 있습니다.
저는 마음속에 그리던 방식으로 작동하는 오픈 소스 도구를 찾아보았지만 적합한 것을 찾을 수 없었습니다. 그래서 제가 직접 만들었습니다. 이것의 이름은 OpenPilot입니다.
OpenPilot이란 무엇이며(무엇이 아닌지)
OpenPilot은 Electron으로 구축된 데스크톱 앱입니다. 사용자가 모델, 폴더, 그리고 작업을 지정하면 됩니다. 이는 에디터나 IDE가 아니며, Cursor를 대체하는 것도 아닙니다. 사용자가 선택한 프로젝트 폴더 내부에서 작동하는 독립적인 에이전트입니다.
- 자체 모델 연결(Bring your own model). OpenAI와 호환되는 모든 엔드포인트: 기본 URL, API 키, 모델 이름. OpenAI, OpenRouter, Ollama나 LM Studio 같은 로컬 서버 또는 자체 게이트웨이를 사용할 수 있습니다.
- 실제 작업 공간(A real workspace). 에이전트는 사용자가 지정한 폴더 내의 파일을 읽고 편집하며 스트리밍 출력을 통해 셸 명령을 실행할 수 있습니다.
- 사용자 통제권 유지(You stay in control). 도구 호출은 채팅창에 카드 형태로 표시되며, 민감한 작업은 승인 또는 거부 여부를 사용자에게 기다립니다.
- 스킬(Skills). 에이전트가 로드할 수 있는 재사용 가능한 플레이북입니다. 컴포지서에서
/를 입력하세요. - MCP. Model Context Protocol 서버에 연결하고 채팅별로 도구를 토글할 수 있습니다.
- 메모리(Memory). 세션 간에도 에이전트가 유용한 컨텍스트를 유지할 수 있도록 영구 메모리 설정 기능을 제공합니다.
- 토큰 사용량(Token usage). 모델별로 세션 및 평생 사용량을 분류하여 비용을 확인할 수 있습니다.
- 선택적 웹 검색(Optional web search). 에이전트가 최신 문서를 조회하기를 원한다면 TinyFish 키를 플러그인 할 수 있습니다.
- MIT 라이선스. 읽고, 포크하고, 변경하세요.
시작하기
- 최신 빌드는 GitHub Releases에서 다운로드하거나(Windows 설치 프로그램 또는 휴대용 exe), 가이드를 보려면 openpilot.in을 참조하세요.
- 처음 실행하면, 온보딩 과정이 세 단계로 안내합니다: 모델 연결, 작업 공간 폴더 선택, 그리고 웹 검색을 위해 TinyFish 키를 선택적으로 추가하는 것입니다.
- 모델 단계에서는 기본 URL(base URL), API 키, 모델 이름을 붙여넣으세요. 로컬 모델의 경우, Ollama 또는 LM Studio 서버의 OpenAI 호환 주소를 사용하며, 서버가 키를 확인하지 않는다면 임의의 플레이스홀더를 키로 사용하면 됩니다.
- 에이전트가 건드려도 괜찮은 폴더(스크래치 프로젝트가 좋은 시작점입니다)를 선택하고, "README 추가 및 이 함수에 대한 실패 테스트 작성"과 같이 작은 내용을 설명한 후 도구 카드를 지켜보세요.
소스에서 실행하는 것을 선호하시나요?
git clone https://github.com/ibmshaikh/OpenPilot.git
cd OpenPilot
npm install
...
Node.js 20 이상이 필요합니다.
솔직한 현황 (Honest status)
미리 말씀드리는 것이 좋겠습니다:
- 현재 주력 대상은 Windows입니다. macOS 빌드는 존재하지만 초기 단계이며 서명되지 않았습니다. Linux 빌드는 아직 없습니다.
- 작은 로컬 모델은 간단한 작업에는 괜찮지만, 길고 다단계에 걸친 작업에서는 더 강력한 모델이 큰 도움이 됩니다. 저는 더 많은 로컬 모델을 테스트하고 실제로 작동하는 것을 정리할 계획입니다.
- 원격 측정 (Telemetry): OpenPilot은 현재 기본적으로 익명 사용 통계(앱 열기, 어떤 모델과 기능이 사용되었는지, 토큰 수)를 전송합니다. 채팅 내용, 파일, 경로 또는 API 키는 전송하지 않으며, 온보딩 과정이나 설정 → 정보(Settings → About)에서 끌 수 있습니다. 이 부분이 명확해지도록 작업하고 있는데, 당연하고 쉽게 거부할 수 있어야 한다고 생각하기 때문입니다.
- 아직 초기 단계이며 저 혼자 진행하고 있습니다.
도움이 필요한 부분 (Where I'd love help)
사용해 보시고 가장 유용한 방법은 무엇이 작동하지 않았거나 혼란스러웠는지 알려주시는 것입니다: 어떤 모델을 사용했는지, 어떤 OS였는지, 무엇을 기대했는지 등을요. GitHub 이슈가 가장 좋은 장소입니다. 코드를 기여하고 싶다면, 저장소는 일반 JavaScript이며 README에 간단한 기여 가이드가 있습니다.
- 코드: github.com/ibmshaikh/OpenPilot
- 다운로드 및 가이드: openpilot.in
읽어주셔서 감사합니다. 앞으로 몇 주 동안 여기에 설정 튜토리얼(Ollama, LM Studio, MCP, skills)을 게시할 예정입니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기