Kalynt: 오픈코어 AI IDE, Offline LLMs, P2P Collaboration 등 더 많은 기능
Source: Dev.to

내가 해결하고 싶었던 문제
나는 VS Code와 Cursor를 사랑한다. 두 툴 모두 강력하지만, 같은 모델을 전제로 한다: 코드를 클라우드로 보내 AI 분석을 수행한다.
프라이버시를 중시하는 사람으로서, 이는 여러 면에서 잘못된 느낌을 주었다.
- 클라우드 의존성 – LLM 호출이 로그에 남고, 잠재적으로 학습에 사용되며, 항상 추적 가능하다.
- 단일 사용자 설계 – 두 툴 모두 처음부터 팀을 위해 설계되지 않았다.
- 서버 의존성 – “Live Share”와 협업 기능은 릴레이 서버에 의존한다.
나는 다른 무언가를 원했다. 그래서 직접 만들었다.
Kalynt란 무엇인가?
- AI가 로컬에서 실행됩니다 –
node-llama-cpp를 통해. 인터넷이 필요 없습니다. - 협업은 P2P – 서버 없이 실시간 동기화를 위한 CRDTs + WebRTC.
- 투명합니다 – 모든 안전‑중요 코드는 오픈소스(AGPL‑3.0)입니다.
- 저사양 하드웨어에서도 동작합니다 – 8 GB Lenovo 노트북에서 구축 및 테스트되었습니다.
The Technical Deep Dive
Local AI with AIME
대부분의 개발자는 LLM을 로컬에서 실행하고 싶어하지만 “그건 고성능 GPU나 클라우드 구독이 필요하다”는 생각을 합니다.
AIME (Artificial Intelligence Memory Engine)는 저의 답입니다. 이것은 제한된 하드웨어에서도 에이전트가 효율적으로 실행될 수 있게 해주는 컨텍스트‑관리 레이어이며, 다음을 제공합니다:
- 스마트 컨텍스트 윈도잉
- 효율적인 토큰 캐싱
node-llama-cpp를 통한 로컬 모델 추론
결과: “감자” 수준의 머신에서도 Mistral이나 Llama를 실행해 실제 작업을 수행할 수 있습니다.
P2P Sync with CRDTs
서버 없이 협업하는 것은 어렵습니다. 대부분의 도구는 포기하고 중앙 릴레이(예: Figma, Notion, VS Code Live Share)를 구축했습니다.
저는 yjs를 이용한 CRDTs (Conflict‑free Replicated Data Types)를 선택했습니다:
- 모든 변경 사항에 타임스탬프가 부여되고 순서에 독립적
- 피어가 WebRTC를 통해 직접 동기화
- 중앙 권한 없음 = 서버 불필요
- 선택적인 종단‑간 암호화
Architecture modules
@kalynt/crdt→ 충돌‑없는 상태@kalynt/networking→ WebRTC 시그널링 + 피어 관리@kalynt/shared→ 공통 타입
Open‑Core for Transparency
핵심(에디터, 동기화, 코드 실행, 파일 시스템 격리)은 100 % AGPL‑3.0입니다. 모든 보안 경계를 감사할 수 있습니다.
프로프라이어터리 모듈(고급 에이전트, 하드웨어 최적화)은 폐쇄형이지만 여전히 사용자에게는 보입니다:
- 완전히 로컬에서 실행
- 바이너리에서 강하게 난독화
- 핵심 IDE에 필수적이지 않음
How I Built It
- Timeline: 1 month
- Hardware: 8 GB Lenovo laptop (no upgrades)
- Code: ~44 k lines of TypeScript
- Stack: Electron + React + Turbo monorepo + yjs +
node-llama-cpp
Process
- 아키텍처 설계(보안 모델, P2P 연결, 에이전트 기능)
- 구현을 돕기 위해 AI 모델(Claude, Gemini, GPT) 활용
- 검토, 테스트, 통합 진행
- SonarQube + Snyk를 통한 보안 스캔
이것이 현대적인 솔로 개발이 작동해야 하는 방식입니다: 인간은 아키텍처와 판단을, AI는 구현 작업을 담당합니다.
What I Learned
- Shipping beats perfect – 또 한 달을 다듬는 데에 쓸 수도 있었지만, v1.0‑beta를 출시하면서 실제 피드백을 얻을 수 있었고, 이는 겉보이는 완벽함보다 더 가치가 있습니다.
- Open‑core requires transparency – 닫힌 소스 부분이 있다면, 무엇을 왜 숨기는지에 대해 매우 명확히 밝혀야 합니다. 저는
SECURITY.md,OBFUSCATION.md,CONTRIBUTING.md를 문서화하여 악의적인 것이 없음을 보여주었습니다. - WebRTC is powerful but gnarly – P2P 동기화는 정말 어렵습니다. CRDT가 알고리즘 문제를 해결해 주지만, 시그널링, NAT 트래버설, 피어 탐색에서 많은 시간을 잃게 됩니다.
- Privacy‑first is a feature, not a checkbox – “암호화 지원이 추가되었습니다”가 아니라, “시스템이 중앙 저장소를 옵션으로 두고, 기본값이 아니도록 설계되었습니다”라는 의미입니다.
Try It
- GitHub:
- Download installers: 설치 프로그램 다운로드:
- Or build from source: 또는 소스에서 빌드:
git clone https://github.com/Hermes-Lekkas/Kalynt.git
cd Kalynt
npm install
npm run dev