컨텍스트를 직접 확인하고 수정할 수 있는 오픈소스 코딩 에이전트를 만들었습니다 — LLM이 보는 내용을 직접 관리하세요
I built an open-source coding agent that makes context visible and editable — you curate exactly what the LLM sees
핵심 요약
LLM의 컨텍스트를 직접 관리하고 수정할 수 있는 오픈소스 코딩 에이전트 'Nice Coding Agent' 소개.
- 가시적 컨텍스트 — LLM이 참조하는 파일과 정보를 사용자가 직접 확인하고 수정 가능함
- 워크플로우 분리 — 계획, 구현, 검색 등 단계를 나누어 단계별로 검토 및 승인 가능함
- 로컬 검색 엔진 — 외부 서비스 없이 로컬에서 임베딩 및 검색을 수행하여 보안성 강화함
- MCP 서버 지원 — Claude Code 등 다른 MCP 클라이언트와 연동하여 코드 인덱스 공유 가능함
터미널 코딩 에이전트 쓰면서 컨텍스트가 어떻게 돌아가는지 안 보여서 진짜 답답했거든. 모델이 지 맘대로 읽을 거 정하고, 컨텍스트는 비대해지고, 왜 결과물이 구린지도 모르는 상황이 계속되니까 말이야. 그래서 웹 UI가 포함된 인간 개입형 코딩 워크벤치인 Nice Coding Agent를 직접 만들었어. 오픈소스니까 피드백 좀 부탁해.
📸 UI 스크린샷은 댓글에 달아둘게 👇
핵심 아이디어는 이거야. 불투명한 컨텍스트 윈도우 대신, 눈에 보이고 수정 가능한 컨텍스트 스택을 제공하는 거지. 파일, 검색 결과, 계획, 메모 같은 모든 요소가 카드 형태로 되어 있어서, 모델한테 넘기기 전에 고정하거나, 최소화하거나, 직접 수정하거나, 요약하거나, 삭제할 수 있어. 실시간 토큰 미터기가 있어서 컨텍스트가 얼마나 꽉 찼는지 바로바로 확인 가능해. 모델이 알아서 잘 읽겠지 하고 기도하는 게 아니라, 네가 직접 LLM이 볼 내용을 큐레이팅하는 거야.
그냥 던져놓고 알아서 하라는 식의 에이전트들과 다른 점 몇 가지는 이래:
- 범용 루프 하나로 퉁치는 게 아니라 워크플로우 분리 — 컨텍스트 구축 → 계획 → 구현 → 조사 → 검토/탐색 단계로 나눴어. '계획' 단계에서 검토 가능한 계획을 짜고, '구현' 단계에서는 승인된 계획을 바탕으로 파일 단위로 diff를 제안해. 한꺼번에 다 바꾸는 게 아니라 하나씩 확인하면서 진행하는 거지.
- 모델이 찍기 안 해도 되는 하이브리드 코드 검색 — 코드는 Postgres(ParadeDB BM25 + pgvector + cross-encoder reranking)에 tree-sitter 청킹 방식으로 인덱싱돼. "JWT 토큰 검증 어디서 하냐"라고 검색하면 정확히 그 단어가 없어도 딱 맞는 함수를 찾아내.
- 로컬 우선 검색 — 임베딩이랑 리랭킹은 sentence-transformers를 써서 로컬에서 돌아가. 네 코드가 외부 인덱싱 서비스로 나갈 일이 없어.
- 샌드박스 실행 — 에이전트가 짠 코드는 OS 레벨 샌드박스(macOS seatbelt, Linux bubblewrap)에서 실행돼. 그래서 diff를 작성하기 전에 가정이 맞는지 먼저 검증할 수 있지.
- MCP 서버 역할도 겸함 — SSE를 통해
search_code/search_documents/build_comprehensive_context를 노출해서, Claude Code나 다른 MCP 클라이언트가 네 코드 인덱스에 바로 붙을 수 있어. 경쟁하는 게 아니라 상호 보완적인 거지. - 멀티 모델 지원 — 클릭 한 번으로 Standard/High 티어 전환 가능(탐색할 땐 싼 모델, 최종 구현엔 고성능 모델). 기본값으로 무료 NVIDIA 티어를 제공해서 진입 장벽도 낮췄어.
솔직히 말하자면: 이건 자율형 에이전트가 아니야. 그냥 목표 하나 던져주고 손 떼고 싶은 거면 기존 터미널 에이전트들이 훨씬 낫지. 하지만 통제권, 가시성, 큐레이션이 중요할 때, 즉 모든 계획과 변경 사항을 직접 검토하고 컨텍스트를 손수 조정하며 로컬 검색을 유지하고 싶을 때 이 툴이 빛을 발할 거야.
프론트엔드는 NiceGUI, 오케스트레이션은 LangChain/LangGraph를 써서 파이썬으로 만들었어.
특히 이 컨텍스트 스택 방식에 대해 피드백을 좀 듣고 싶어. 눈에 보이는 큐레이션 방식이 실제로 쓸만할 것 같아, 아니면 그냥 모델이 알아서 다 해주는 게 편해?


