본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 13:51

gensyn-ai/codeassist

요약

Gensyn에서 개발한 CodeAssist는 사용자의 코딩 습관과 스타일을 학습하는 프라이빗 로컬 AI 코딩 어시스턴트입니다. 사용자의 모든 키스트로크를 학습 신호로 활용하여, 단순한 명령 수행을 넘어 사용자의 기술을 배우는 견습생처럼 작동하며 에디터에 직접 코드를 작성합니다.

핵심 포인트

  • 사용자의 타이핑, 수정, 삭제 등 모든 키스트로크를 학습 피드백으로 활용하여 개인화된 모델 구축
  • Docker, Python 3.10+, UV를 기반으로 하는 로컬 실행 환경 제공
  • 별도의 확인 절차 없이 사용자가 타이핑을 멈추면 에디터에 직접 코드를 작성하는 주도적 동작 방식
  • HuggingFace 토큰을 통한 모델 접근 및 웹 UI 기반의 난이도별 코딩 문제 제공

참고: Mainnet (메인넷)으로 초점을 전환함에 따라, Testnet (테스트넷)에서의 새로운 CodeAssist 참여 추적을 중단했습니다. 모든 과거 데이터는 온체인 (on-chain)에 유지됩니다.

CodeAssist는 Gensyn에서 개발한 완전히 프라이빗하고 로컬에서 작동하는 AI 코딩 어시스턴트 (AI coding assistant)입니다. 이는 프로그래밍 문제를 연습하고, 당신의 코딩을 도울 새로운 어시스턴트를 훈련시키는 것을 도와줍니다.

일반적인 코드 어시스턴트와 달리, CodeAssist는 당신이 작업하는 동안 에디터 (editor)에 직접 코드를 작성합니다. 타이핑, 수정, 삭제, 또는 출력을 그대로 두는 것 등 모든 키스트로크 (keystroke)가 학습 신호 (learning signal)가 됩니다. 시간이 지남에 따라, 이는 당신의 습관과 스타일에 적응하며, 명령을 따르는 도구라기보다 당신의 기술로부터 배우는 견습생처럼 작동합니다.

문서 (Docs) | 튜토리얼 (Tutorial) | 리더보드 (Leaderboard)

CodeAssist 설치를 시작하세요.

사용 중인 기기에 맞는 지침에 따라 시스템에 Docker (도커)를 설치하십시오.

환경을 처리하는 메인 스크립트 (main script)를 실행하려면 Python (파이썬)이 필요합니다. 3.10 버전보다 오래되지 않은 버전을 요구합니다.

메인 스크립트의 의존성 (dependencies)을 관리하려면 UV가 필요합니다. 다음 단계에 따라 설치할 수 있습니다:

brew install uv

curl -LsSf https://astral.sh/uv/install.sh | sh

코드를 다운로드하려면 단순히 저장소 (repository)를 클론 (clone)하십시오:

git clone https://github.com/gensyn-ai/codeassist.git
cd codeassist

CodeAssist를 실행하려면 다음 명령어를 실행하기만 하면 됩니다:

uv run run.py

CodeAssist를 시작하려면 HuggingFace 토큰 (token)이 필요합니다. 이 지침을 따라 Write 권한으로 토큰을 생성하십시오.

스크립트가 실행된 후 브라우저가 자동으로 열려야 하지만, 그렇지 않은 경우 창을 열고 localhost:3000으로 이동하여 CodeAssist를 여십시오.

웹 UI (web UI)가 로드되면 이메일(일회용 비밀번호 전송) 또는 Google (구글)로 로그인할 수 있는 로그인 모달 (login modal)이 나타납니다. 처음 로그인한 후에는 로컬 자격 증명 (local credentials)이 persistent-data/auth/userKeyMap.json에 저장됩니다.

로그인한 후에는 사이드바에서 Easy, Medium 또는 Hard 난이도의 문제를 선택할 수 있습니다. CodeAssist가 에피소드 (episode) 기록을 시작할 것입니다. 모든 클릭, 키 입력 (keystroke), 편집 또는 삭제는 학습 피드백 (training feedback)으로 기록됩니다.

타이핑을 멈추면 CodeAssist가 주도적으로 동작합니다. 별도의 팝업이나 확인 절차 없이 파일에 직접 코드를 작성합니다. 사용자가 해당 편집을 수락(accept), 수정(modify) 또는 제거(remove)하든 관계없이, 각 상호작용은 사용자의 선호도에 대한 모델의 이해에 기여합니다.

  • Shift+Space를 사용하거나 일시 중지 어시스턴트 (Pause Assistant) 버튼을 클릭하여 어시스턴트를 일시적으로 중단할 수 있습니다. 일시 중지 후 첫 번째 키 입력 (keystroke)이 발생하면 다시 재개됩니다.
  • CodeAssist는 커서 위치를 기준으로 코드를 삽입하므로, 작업 중인 섹션 근처에 커서를 유지하십시오.
  • 어시스턴트가 "No-Op" (아무 작업도 하지 않음)을 생성할 때는 사용자의 입력을 기다리고 있는 상태입니다. 이는 의도된 동작이며, 사용자의 차례임을 나타냅니다.

CodeAssist는 웹 UI (web UI)가 실행되는 동안 사용자의 상호작용을 지속적으로 기록합니다. 에피소드를 완료하고 모델을 학습시키려면 CodeAssist가 실행 중인 터미널 (terminal)에서 Ctrl+C를 누르십시오.

모델을 학습시키기 위해 반드시 LeetCode 문제를 성공적으로 풀어야 할 필요는 없습니다. CodeAssist 웹 UI를 종료하고 CodeAssist가 실행 중인 터미널로 돌아가 ctrl+c 명령어를 사용하여 학습을 시작함으로써 에피소드 기록을 중단할 수 있습니다.

학습 과정 동안 CodeAssist는 다음을 수행합니다:

  • 사용자의 편집 내용과 어시스턴트의 동작을 비교
  • 사용자의 상호작용을 기반으로 보상 (rewards) 및 페널티 (penalties) 계산
  • 로컬 모델 체크포인트 (local model checkpoint) 업데이트
  • persistent-data/trainer/models 경로에 새로운 모델 가중치 (model weights) 저장
  • 학습된 모델을 Hugging Face에 업로드 (유효한 토큰이 제공된 경우)

학습이 완료되면 (시스템에 따라 몇 분 정도 소요됨), CodeAssist를 재시작하여 가장 최근의 에피소드로 학습된 업데이트된 모델을 사용할 수 있습니다.

인내심을 가지세요: 어시스턴트는 사용자의 타이핑과 타이밍을 관찰합니다. 너무 빠르게 작업하거나 공격적으로 수정하면 학습 효율 (training efficacy)이 무력화될 수 있습니다.
협업자로서 대하세요: 어시스턴트가 자연스럽게 코드를 끼워 넣도록 두고, 코드를 편집하거나 삭제하기 전에 유용한 코드를 잠시 유지해 주세요.
모든 것을 즉시 삭제하지 마세요: 어시스턴트가 작성한 모든 것을 즉시 삭제하면, 어시스턴트에게 아예 아무것도 하지 말라고 가르치는 셈이 됩니다.
다양한 문제를 여러 번 기록하세요: 서로 다른 문제들을 해결함으로써 학습 신호 (learning signals)를 다양화하세요.
점진적인 개선을 기대하세요: 초기 에피소드 (episodes)는 일관성이 없게 느껴질 수 있습니다. 학습이 4~5 에피소드 정도 진행된 후에 개선 사항이 더 명확해집니다.

이 현상은 컨테이너 (container) 부팅에 실패했을 때 발생합니다. docker logs <container-name> 명령어를 실행하여 로그를 확인할 수 있습니다.

새로운 이슈 (issue)를 생성할 때 로그를 검토하고 업로드해 주세요.

2025-09-04 15:03:47,975 - ERROR - Error connecting to Docker daemon: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
2025-09-04 15:03:47,976 - ERROR - Please ensure Docker is installed and running.

위와 같은 줄이 보인다면, Docker가 실행 중이 아니거나 Docker에 연결할 권한이 없음을 의미합니다. 시스템에 Docker가 제대로 설치되어 있고 실행 중인지 확인하세요.

이 현상은 3000번 포트를 사용하는 Docker 컨테이너가 이미 실행 중일 때 발생합니다. 두 가지 옵션이 있습니다:

  • 해당 포트를 사용 중인 다른 서비스(예: RL Swarm을 실행 중인 경우)를 중지합니다.
  • --port 인자를 사용하여 다른 포트에서 CodeAssist를 실행합니다:

uv run run.py --port 3001

참고: 새로운 포트를 선택할 때 8000, 8080, 8001, 8008, 3003, 11434는 다른 CodeAssist 서비스용으로 예약되어 있으므로 피해주시기 바랍니다.

기여를 환영합니다!

저희는 커밋 (commit)하기 전에 저장소 (repository)에 린팅 (linting)을 실행하기 위해 pre-commit 훅 (hook)을 사용합니다. 아래 설명에 따라 pre-commit을 설치할 수 있습니다:

pre-commit을 설치하려면 다음 명령어를 실행하세요:

pip install pre-commit

pre-commit을 설정하려면 다음 명령어를 실행하세요

pre-commit install

이 저장소는 ruff format으로 포맷팅되었습니다.

Ruff의 린트 (lint) 체크를 통과하지 못하는 모든 커밋은 GitHub Actions가 실패하게 되며, 머지 (merge)하기 전에 수정이 필요합니다.

CodeAssist는 (MIT) 라이선스 하에 배포됩니다.

AI 자동 생성 콘텐츠

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

원문 바로가기
0

댓글

0