AI 에이전트 IDE "Teaspoon IDE" v1.0.0 정식 버전 출시
요약
Electron 기반 독립형 AI 코딩 에이전트 IDE인 Teaspoon IDE v1.0.0이 출시되었습니다. 이 도구는 파일 탐색기, Monaco 에디터, AI 채팅, Git 작업 등을 통합한 단독 앱으로, 외부 서버 전송 없이 로컬에서 작동하며 사용자 승인을 거치는 안전한 에이전트 루프를 제공합니다.
핵심 포인트
- 외부 서버 전송 우려 해소: 기밀 정보 보호를 위해 로컬/BYOK 방식으로 설계됨.
- 통합형 독립 앱: VS Code 확장 기능의 한계를 넘어선 단일 애플리케이션 구조.
- 안전한 에이전트 루프: 모든 코드 수정 및 명령어 실행은 사용자 승인 다이얼로그를 거침.
- 저비용 및 오프라인 지원: Gemini Flash 등 저렴한 모델에 초점을 맞추고 로컬 LLM 사용 가능.
Electron 기반의 독립형 AI 코딩 에이전트 IDE "Teaspoon IDE"의 정식 버전 v1.0.0을 출시했습니다.
9월 초 공개 이후 2주가 채 안 되는 기간 동안 거의 매일 업데이트를 거쳐 v0.1.0에서 v1.0.0까지 도달했습니다. 이전 이름인 Forger에서 변경된 경위를 포함하여, 본문에서는 "Teaspoon IDE란 무엇인가"부터 "정식 버전까지 강화한 점"까지 종합적으로 소개합니다.
초기 공개 기사는 여기입니다:
Teaspoon IDE란
파일 탐색기(File Explorer), Monaco 에디터, AI 채팅, Git 작업, 진정한 TTY 지원 터미널이 통합된 애플리케이션입니다. VS Code 포크 버전이나 확장 기능이 아닌, 단독으로 작동하는 독립형 앱입니다.
AI가 파일 목록 가져오기, 읽기, 검색, 편집을 여러 단계에 걸쳐 자율적으로 실행하는 에이전트 루프를 가지고 있으며, 쓰기(Write), 차분 편집(Diff Edit), 명령어 실행은 모두 승인 다이얼로그를 거칩니다. 체크포인트/롤백 기능을 통해 AI가 변경한 내용만 안전하게 되돌릴 수 있습니다.
왜 만들었는가
계기는 실무에서 AI 코딩 도구를 사용하려 했을 때 느꼈던 몇 가지 불만족스러움 때문입니다.
- 기밀 정보를 외부 서버로 보내고 싶지 않다 — 위탁 업무의 결과물 작성 등 기업 내부 이용을 고려할 때, 코드나 엔지니어링 지식이 벤더의 서버를 거치는 설계는 피하고 싶었습니다. -
- VS Code 확장 기능의 저주 — 확장 기능은 다른 확장과 결합되어 편리한 반면, GitHub Copilot과의 간섭 및 충돌 문제로 고민하게 됩니다. -
- 초보자에게 이해하기 쉬운 UI가 필요하다 — AI 엔지니어링 초심자의 경우, 탐색기/에디터/콘솔/AI 채팅이 독립된 페인으로 보이는 것이 압도적으로 이해하기 쉽습니다. -
- 승인 없는 수정은 인지 부하가 높다 — AI가 임의로 소스를 수정하면 리뷰어인 인간의 부담이 엄청나게 커집니다. 그래서 승인 다이얼로그와 롤백을 필수화했습니다. -
- DinD(Docker-in-Docker) 전제가 필요한 도구는 도입 장벽이 높다 — Docker-in-Docker로 작동하는 편리한 OSS 에이전트도 있지만, 초심자에게는 어렵습니다. 단일 exe 파일로 작동하는 것이 필요했습니다. -
- 높은 과금(課金)이 불가능한 조직도 있다 — 인월(人月) 비즈니스 마인드에서 벗어나지 못한 경영진의 조직에서는 월별 구독 AI IDE 도입 자체가 어려운 현실입니다.
없으면 만들자(ないものは作ってしまえ),라는 생각으로 AI를 활용하여 제작했습니다.
Forger → Teaspoon IDE로의 이름 변경
초기 공개 시 이름은 "Forger"였으나, 동명이/유사명의 프로젝트가 많아 검색성이 떨어졌기 때문에 v0.6.0에서 Teaspoon IDE로 이름을 변경했습니다(패키지명 및 리포지토리도 forger-ide → teaspoon-ide).
'티스푼(Teaspoon)'에는 '적은 양의 토큰으로 실제 작업을 수행한다(a teaspoon of tokens)'는 설계 목표를 담았습니다. 비용을 낮추기 위한 토큰 절약 설계가 이 이름 그대로 제품의 핵심입니다.
주요 특징
주요 특징
- 앱 자체는 무료 (BYOK) — Gemini API 키를 직접 가져와 사용하는 방식입니다. 월별 구독료도 없고, API 요금에 마진이 붙지도 않습니다. 사용한 만큼 Google에 직접 지불합니다.
- 완전 오프라인 동작 — Ollama + Gemma 같은 로컬 LLM을 선택하면 통신 대상은 localhost뿐입니다. 코드가 외부로 나가지 않습니다.
- 텔레메트리 없음 — 외부 통신은 사용자가 설정한 LLM 엔드포인트에 대한 요청만 이루어집니다. 소스 코드가 공개되어 있어 '무엇이 전송되는지' 직접 검증할 수 있습니다.
- 저비용 — Gemini의 저렴한 Flash 계열 모델에 초점을 맞췄습니다. 실제 측정 결과, '오목 게임을 처음부터 만들고 힌트 기능 추가까지' API 요금은 약 $0.2였습니다.
- 안전한 쓰기 제어 — 쓰기는 프로젝트 내로 제한됩니다. 생성, 차분 편집(diff editing), 명령어 실행 모두 승인 절차를 거칩니다.
- LiteLLM 프록시 지원 — 실제 API 키를 클라이언트에 두지 않고도 운영이 가능합니다.
- 토큰 절약 설계 — 파일 트리만 먼저 전송하고, 내용은 AI가 GREP/READ_FILE을 통해 필요한 만큼만 가져옵니다.
- 일본어 UI — 설정 화면에서 원터치로 일본어로 변경할 수 있습니다. 메뉴, 네이티브 다이얼로그, 오류 메시지까지 모두 일본어가 됩니다.
- 14종의 컬러 테마 — 시스템 연동을 포함한 다양한 테마를 내장하고 있습니다 (후술).
v0.1 → v1.0에서 강화 및 개선된 점
여기부터가 정식 버전까지 쌓아 올린 내용입니다. 기능 추가와 견고성 향상을 나누어 나열합니다.
AI 에이전트의 실용성
- 에이전트 루프의 대폭적인 견고화 — 취약한 로컬 모델에서 발생하기 쉬운 '손상된 명령어 출력'에 대한 대응을 포괄적으로 구현했습니다. - 마크다운 ``` 펜스 내부・
:::
펜스 내부의 명령어 기술을 올바르게 해석/무해화합니다.
...
- **편집 후 테스트의 표준화** — 테스트 스위트가 있는 프로젝트의 경우, 편집 후에 RUN_COMMAND로 테스트를 실행하고, 되돌린(rollback) 다음 완료 보고하는 흐름을 프롬프트에 포함했습니다.
- **긴 대화의 압축 (compaction)** — 최근 20 메시지를 초과하는 대화는 오래된 턴을 요약하여 보내는 로링 새마리(rolling summary) 방식으로 처리합니다. 작은 모델의 컨텍스트 제한을 의식하지 않고도 오랫동안 작업할 수 있습니다.
- **프로젝트가 없어도 작동** — 폴더를 열지 않아도 대화를 시작할 수 있으며, AI가 파일을 쓰고 싶을 때 '프로젝트 생성 다이얼로그'로 안내합니다.
- **CLOSE_PROJECT 명령어** — AI가 '프로젝트를 닫아라'라는 지시를 실행 가능하게 합니다.
### 보안 및 개인 정보 보호
- **파일 접근의 강제 스코프** — 파일 관련 명령어는 프로젝트 루트 내에서 해결되는 경우에만 수락됩니다. `..`을 이용한 탈출, 절대 경로를 사용한 임의 파일 읽기, 해결 실패 시의 폴백(fallback) 읽기를 모두 차단했습니다.
- **LLM에게 절대 경로 전송 안 함** — 컨텍스트와 명령어 결과는 모두 프로젝트 상대 경로로 변환됩니다. `C:\[사용자 이름]`과 같은 OS 사용자 이름이 클라우드 제공업체에 유출되지 않습니다.
- **API 키의 2단계화** — 오조작 방지를 위한 확인 버튼을 추가하고, 키 외의 설정(모델 선택, 프록시 URL 등)은 삭제하지 않도록 수정했습니다.
### 채팅 및 UI
- **어시스턴트 응답의 Markdown 렌더링** — 제목, 목록, 표, 코드 블록이 형식화되어 표시됩니다 (marked + DOMPurify를 통해 사니타이즈됨).
- **Ollama의 스트리밍 응답** — 로컬 모델의 답변이 토큰 단위로 흐르도록 합니다. 취소 버튼을 누르면 실제로 HTTP 요청이 중단됩니다.
- **응답 시간 및 모델명 표시** — 각 답변에 소요 시간과 사용된 모델이 붙어, 모델별 속도 비교가 한눈에 가능합니다.
- **채팅 포커스 모드** — Ctrl+Shift+B를 눌러 사이드바, 에디터, 터미널을 숨기고 채팅을 전면화할 수 있습니다. v0.9.0에서 추가되었습니다.
- **대화 목록** — 포커스 모드일 때 왼쪽 레일에서 과거 대화를 일람/전환/삭제/새로 생성할 수 있습니다.
- **대화 기록의 영속화** — localStorage에서 `userData/chat-history`
JSON 파일로 마이그레이션되었습니다. 용량 제한과 손실 위험을 해소하고, 프로젝트를 열지 않은 대화도 저장 및 복원할 수 있습니다.
- **탐색기 자동 업데이트** — 외부 에디터나 git checkout으로 인한 변경 사항을 파일 감시(file watching)로 즉시 반영합니다. Git 패널 역시 동일한 신호로 업데이트됩니다.
- **오른쪽 클릭 메뉴** — Electron 표준에는 존재하지 않는 컨텍스트 메뉴(복사/붙여넣기 등)를 구현했습니다.
- **터미널 자동 스크롤** — 스크롤 업으로 추적을 일시 정지하고, 전송 시 재개합니다. 완료된 명령어 블록은 한 줄로 접힙니다.
- **설정 화면 패널화** — v1.0.0에서 외관(Appearance), AI 컨텍스트(AI Context), LLM 프로바이더(LLM Provider), 프록시(Proxy), 기록(History)을 접을 수 있도록 정리했습니다。
### Git 연동
- **GUI로 완성하는 Git** — 스테이징/커밋/Push・Pull 외에도, 리포지토리 클론, 원격 추가 및 업데이트, 첫 커밋, upstream 포함 Push, `user.name` / `user.email` 설정까지 다이얼로그에서 실행 가능해졌습니다.
- **프로젝트 폴더를 OS로 열기** — 탐색기 헤더에서 파일 관리자(file manager)를 한 번에 실행할 수 있습니다.
### 조직 모드 (중앙 관리)
v0.5.0에서 추가된, 회사/학교용 관리 모드입니다.
- **로그인 게이트** — '조직 로그인 필수'를 ON으로 설정하면, 조직 서버가 발행한 계정으로 로그인하기 전까지 앱을 사용할 수 없습니다.
- **가상 키 방식** — 로그인하면 서버에서 사용자 전용 가상 API 키가 발급되며, AI 요청은 조직의 LLM 프록시를 통해 이루어집니다. 실제 API 키는 단말기에 전달되지 않습니다.
- **예산 배지** — 채팅 헤더에 할당된 예산 잔량을 %로 표시합니다(금액은 비공개). 20% 미만일 때 경고색, 0%일 때 빨간색으로 변합니다.
- **모델 허용 목록** — 사용할 수 있는 모델은 서버가 제어합니다. 개인의 모델 설정은 조직 모드 중 잠깁니다.
### 테마 (총 14종)
설정 화면에서 선택할 수 있는 테마가 대폭 늘었습니다. 각각 에디터의 Monaco 테마도 전용으로 설계되었습니다.
- **Dark / Light / System / Organic Light** — 기본 4가지(구 Quiet Light는 따뜻한 계열의 독자적인 색상 조합으로 개명)
- **Muted Ocean** — 심야 바다를 연상시키는 차분한 블루
- **Ancient Console** — 녹색 인광 CRT에 대한 오마주. 눈에 편안한 탁한 녹색
- **Walnut** — 깊은 나뭇결에 금속성 문자 색상의 우디 다크
- **Heritage** — 베이지색 케이스의 레트로 PC 스타일 라이트
- **Rich Wine** — 바의 와인 저장고 같은 붉은 기가 도는 다크
- **Violet Fizz** — 바이올렛 피즈 칵테일 색상. 깊은 보라색에 달빛이 비치는 노란색
- **Otegami** — 생성리(楮紙) 한지 위에 먹의 농담과 낙관의 주홍. 일본 서신을 모티브로 한 라이트 테마
- **Soda Float** — 하늘색 소다와 하얀 거품의 팬시한 색상 조합
- **Modern Syntax eXtensible** — 레트로 PC의 파란 화면에. 줄여서...
- **Chaya** — 깊은 찻밭의 녹색을 배경 세계로 한 유기적인 다크
- **Coquette** — 리본과 레이스의 페일 핑크 라이트
일본어 UI에서는 이들 역시 일본어 이름으로 번역됩니다(예: Otegami → お手紙, Modern Syntax eXtensible → 8bit의 청춘).
### 국제화
- **일본어화 완성** — v1.0.0에서 `lang/ja.json`을 대폭 확장했습니다. 애플리케이션 메뉴, 오른쪽 클릭 메뉴, 네이티브 다이얼로그(폴더 선택・내보내기 저장), IPC 에러, Gemini/Ollama/조직 로그인 에러 메시지까지 일본어로 통일되었습니다.
- **번역 파일 사용자 추가 가능** — `lang/<언어 코드>.json` 파일을 놓는 것만으로도 독자적인 언어를 추가할 수 있습니다.
### 품질 기반 시설
- **커맨드 파서 단위 테스트** — 실제로 발생한 모든 깨진 모델 출력을 `npm run test:parser`로 검증합니다.
- **E2E 테스트 스위트** — Playwright를 사용하여 실제 앱을 실행하고, Gemini 엔드포인트를 스텁(stub)하여 승인 흐름/파서/기록 저장을 자동으로 검증합니다(`npm run test:e2e`).
) -
**사이트 개편**— 제품 페이지, 설정 가이드, 활용 사례, 테마 목록을 `cuculhart.com`에 정비했습니다.
## 기술 스택
Electron / React / TypeScript / Monaco Editor / Gemini API・Ollama / Vite / Playwright(E2E)
## 라이선스 안내
FSL-1.1-MIT (소스 공개형)입니다. MIT와는 약간 다르지만, 일반적인 사용은 무료로 자유롭습니다.
- **할 수 있는 것**: 다운로드 및 이용 (개인/업무 무관), 개조 및 커스터마이징, 사내 도구로서의 도입, 라이선스 조항과 저작권 표기를 남긴 상태에서의 포크(fork) 및 재배포 -
**할 수 없는 것**: Teaspoon IDE와 경쟁하는 상용 제품/서비스로서의 이용 (예: 이름을 바꾼 클론 판매) -
**각 릴리스는 공개 후 2년 뒤에 자동으로 MIT 라이선스로 전환됩니다**
## 사용법 및 링크
다운로드 (Windows 포터블 exe / Squirrel 인스톨러 / Linux deb):
설정 가이드 (Gemini API 키, Ollama, OpenAI 호환 API, 조직 모드):
활용 사례 (AI에게 오셀로를 만들게 하는 일련의 과정, 실제 비용 기록 포함):
테마 목록 (총 14종 스크린샷):
피드백 및 버그 보고는 GitHub Issues에서 부탁드립니다.
### 토론

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기