<p align="center">
<img src="https://raw.githubusercontent.com/memcode-ai/memcode/HEAD/assets/banner.png" alt="memcode" width="100%">
</p>
<p align="center"><b>당신의 저장소(repo)를 기억하는 코딩 에이전트.</b></p>
<p align="center">
<a href="https://memcode.ai"><img src="https://img.shields.io/badge/Website-memcode.ai-8A7CFF?style=for-the-badge" alt="memcode.ai"></a>
<a href="https://github.com/memcode-ai/memcode/releases"><img src="https://img.shields.io/github/v/release/memcode-ai/memcode?style=for-the-badge&color=blue" alt="Latest release"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-green?style=for-the-badge" alt="License: MIT"></a>
</p>
Memcode
대부분의 코딩 에이전트는 매 세션을 처음부터 시작합니다. memcode는 .memcode 파일에 저장소(repo)의 지속적인 모델을 유지합니다. 여기에는 서브시스템, 지난주 작업 내용, 어떤 접근 방식이 실패했는지 그리고 그 이유, 그리고 사용자가 수정했던 선호도 설정 등이 포함됩니다. 사용 시간이 길어질수록 설명해야 할 것이 줄어듭니다.
하나의 Go 바이너리로 두 가지 방식으로 실행할 수 있습니다. <b>Code</b>는 터미널에서 작동하는 대화형 에이전트입니다. <b>Agents</b>는 자체 호스팅 게이트웨이와 동일한 바이너리이며, 이미 사용하고 있는 채팅 인터페이스에서 답변을 제공합니다. 또한, 지속적인 목표(standing objective)를 부여받고 무인으로 작업할 권한을 준 에이전트를 실행할 수 있습니다. 둘 다 사용자가 가지고 있는 어떤 모델과도 작동합니다: 사용자 자신의 API 키, Ollama와 같은 로컬 엔드포인트, 또는 호스팅된 memcode 계정입니다.
Screenshots
<p align="center">
<img src="https://raw.githubusercontent.com/memcode-ai/memcode/HEAD/assets/screenshot-models.png" alt="memcode terminal UI: the matrix splash and the model picker, from Automatic to any specific model" width="100%">
</p>
<p align="center">
<img src="https://raw.githubusercontent.com/memcode-ai/memcode/HEAD/assets/screenshot-agent.png" alt="memcode editing code while tracking a live task plan in the terminal" width="100%">
</p>
Code
memcode를 저장소(repo)에서 실행하면 완벽한 터미널 코딩 에이전트를 얻을 수 있습니다.
기억합니다. 지난주에 멈췄던 지점부터 이어서 작업해 달라고 요청하면 가능합니다. 저장소(repo)의 레이아웃, 이전에 시도했던 내용, 그리고 사용자가 수정하여 알려준 선호 사항을 알고 있습니다. 메모리 기능은 .memcode 파일에 존재하므로, 저장소와 함께 이동하며 팀 전체가 혜택을 누릴 수 있습니다.
하나의 모델을 선택하면 작업 중간에 다른 것으로 교체되지 않습니다. 세션이 실행되는 모델을 사용자가 지정하면 작업 도중에 변경되지 않습니다. 언제든지 /model 명령어로 변경할 수 있습니다. 서브 에이전트(sub-agents)와 스카우트(scouts)는 사용자가 선택한 저렴한 모델에서 실행될 수 있어, 고가 모델은 필요한 곳에만 집중적으로 사용할 수 있습니다.
상황을 파악합니다. 사용자가 수정 작업을 할 때는 속도를 늦추고, 행동하기 전에 질문하며, 지름길로 빠지는 것을 멈춥니다. 상황이 안정적일 때는 방해되지 않도록 거리를 유지합니다.
중요할 때 먼저 계획합니다. /plan은 코드베이스를 조사하고 승인할 수 있는 접근 방식을 초안으로 작성하며, 이후 실행은 사용자가 승인한 내용에 충실하게 따릅니다. 위험 부담이 클 때는 이 초안을 두 번째 모델(second model)에게 검토 요청을 먼저 보내는 것이 좋습니다.
병렬로 작업합니다. 서브 에이전트(sub-agents)와 백그라운드 작업(background jobs)에 사이드 퀘스트를 위임하고 계속 작업을 진행하며, /jobs와 /tail 명령어로 상태를 확인할 수 있습니다.
진화하는 터미널 UI를 제공합니다. 여러 줄 편집(Multiline editing), 슬래시 명령어 자동 완성(slash-command autocomplete), 스트리밍 출력(streaming output), 턴 중간에 중단 및 리디렉션, 테마, 그리고 실시간 컨텍스트 미터가 포함됩니다.
기대할 수 있는 모든 기능을 갖추고 있습니다. MCP 서버, 에이전트 스킬(Agent Skills), 훅(hooks), 코드 탐색 및 진단 기능, 비전 및 PDF 입력, MEMCODE.md, AGENTS.md, 또는 CLAUDE.md 파일의 지침, 그리고 자동 업데이트가 포함됩니다.
에이전트(Agents)
현재 어느 위치에 있든 에이전트에게 메시지를 보낼 수 있습니다. 에이전트가 작업을 수행하고 동일한 대화창에서 답변합니다. 기차 안에서 Telegram으로 버그를 수정하거나, SMS로 상태 업데이트를 요청하거나, 이메일을 전달하여 처리할 수 있습니다.
12개 채널을 지원합니다. Telegram, Discord, Slack, GitHub, WhatsApp, 이메일(Email), Signal, Matrix, Mattermost, Microsoft Teams, Google Chat, 그리고 SMS가 포함됩니다. memcode gateway setup 명령어가 각 채널 연결 과정을 안내해 줍니다.
음성(Voice). 타이핑 대신 음성 메모를 보낼 수 있습니다. 채널별로 설정 가능하며 기본적으로 비활성화되어 있지만, 답변도 음성으로 받을 수 있습니다.
누가 들어올지 결정합니다. 알 수 없는 발신자는 먼저 페어링해야 합니다. 코드를 받게 되며, 사용자가 승인해야 합니다. 여기에 채널별 허용 목록(allow-list)이 추가됩니다.
Hermes 또는 OpenClaw에서 오는 경우? memcode hermes migrate 또는 memcode claw migrate를 사용하면 채널, API 키, 스킬, 장기 메모리를 단일 명령으로 가져올 수 있습니다.
스스로 실행되는 에이전트 (Agents that run on their own)
에이전트에게 지속적인 **목표(objective)**와 자율적으로(autonomously) 실행할 권한을 부여할 수 있습니다. 그러면 누군가 감시하지 않아도 그 목표에 따라 스케줄링되어 작동합니다. 어느 쪽이든 같은 에이전트입니다. 자율성은 별도의 종류가 아니라 설정(setting)일 뿐이며, memcode admin과 대화하여 이를 설정할 수 있습니다.
목표와 자율성은 의도적으로 분리된 권한 부여입니다. 에이전트는 사용자가 함께 작업하는 목표를 가질 수도 있고, 아예 명시적인 목표 없이 스케줄에 따라 관리자 없이 실행될 수도 있습니다. 두 번째 경우가 중요한 이유입니다. 관리자 없는 실행은 정책 기반(policy-gated)이며 (해시로 사전에 권한 승인), 모든 결과적인 행동을 기록하고, 파일 접근을 명시적 권한으로 제한하며, 추측하는 대신 사용자에게 질문하기 위해 지속적으로 일시 중지될 수 있습니다. 순수한 스케줄링 에이전트는 이러한 기능 중 어느 것도 가지고 있지 않았습니다.
또한 브라우저, MCP, 셸 및 파일 시스템 접근 권한을 가진 범위가 지정된 워커(scoped worker)에게 실제 작업을 위임할 수 있으며, 로그아웃된 프로필 대신 사용자가 직접 로그인한 Chrome을 구동합니다. docs/autonomous-agents.md를 참조하세요.
스스로 유지되는 작업 (Work that keeps itself done)
요청하는 것 중 일부는 '작업(jobs)'입니다. 다른 것은 지속적인 책임(standing responsibilities)입니다. 종속성을 최신 상태로 유지하거나, 보안 권고 사항을 분류하고, 문서를 코드와 일치시키는 등의 작업입니다. Memcode는 이 차이를 감지하고 작업을 수행한 후, 계속할 의향이 있는지 제안합니다.
'예'라고 답하면 먼저 저장소(repo)를 대상으로 자동화를 검증하며, 사용자가 동의하는 내용(무엇을 할지, 어떻게 작동했는지 알게 될지, 무엇을 변경할 수 있는지, 그리고 방금 무엇이 증명되었는지)을 보여줍니다. 설정 양식 없이 한 번의 승인으로 충분합니다. 만약 해당 작업이 이미 대화에서 완료된 경우, 두 번 수행하는 대신 그것 자체가 증거로 간주됩니다.
적응합니다. 매번 실행할 때마다 생성된 날의 단계를 재현하는 대신 현재 상태를 계산합니다. 파일은 이동하고, 패키지는 이름이 변경되며, 빌드 명령어는 바뀝니다. 중요한 것은 목표(goal)가 지속 가능하다는 점입니다.
다른 곳에서도 작동합니다. 각 실행은 자체적인 체크아웃(checkout)을 사용하며, 절대 작업 중인 트리(working tree)를 건드리지 않고, 검토할 수 있도록 풀 리퀘스트(pull request)를 열어줍니다.
추측하기보다 멈춥니다. 진행하는 것이 에이전트가 가지지 않은 의도를 발명하거나, 부여하지 않은 권한을 행사하거나, 사용자를 대신하여 두 개의 마이그레이션 경로 중 하나를 선택해야 하는 경우, 스스로 일시 정지하고 필요한 것을 알려줍니다. 매주 똑같은 방식으로 실패하지 않습니다.
하나의 책임이 여러 저장소에 걸칠 수 있습니다. 만약 작업이 실제로 두 프로젝트에 존재한다면, 자동화는 이를 하나의 작업으로 모두 처리하며, 요청 없이 세 번째 프로젝트로 확장되지 않습니다.
memcode task list, show, run, history, inbox, paused, resume.
프로젝트 작업은 .memcode/tasks/*.yaml에 존재하며 검토하고 커밋할 목적으로 설계되었습니다.
설치 (Install)
curl -fsSL https://memcode.ai/install.sh | sh
또는 Go를 사용하여:
go install github.com/memcode-ai/memcode@latest
또는 소스에서 빌드하기:
git clone https://github.com/memcode-ai/memcode
cd memcode && go build -o memcode .
그런 다음 저장소(repo) 내에서 memcode를 실행합니다.
모든 모델 사용 (Use any model)
MEMCODE_ENDPOINT_URL=http://localhost:11434/v1 memcode
MEMCODE_ENDPOINT_URL=https://api.openai.com/v1 memcode
MEMCODE_ENDPOINT_URL=https://api.anthropic.com memcode
제공자(provider)의 API 키는 표준 환경 변수에서 자동으로 가져옵니다.
서버의 컨텍스트 윈도우(context window)나 출력 제한이 적은 경우, memcode에 알려주면 모든 요청이 그에 맞게 크기가 조정됩니다:
MEMCODE_ENDPOINT_CONTEXT_WINDOW=32768 MEMCODE_ENDPOINT_MAX_OUTPUT=8192 memcode
저장된 엔드포인트의 경우, config.json에 해당 항목의 context_window와 max_output_tokens를 설정하거나, model_limits 아래에서 모델별로 설정할 수 있습니다.
memcode 계정을 사용하면 모든 공급업체에 걸쳐 하나의 잔액을 얻고, BYOK(Bring Your Own Key)용 키 금고를 사용할 수 있으며, 호스팅 웹 검색 기능도 이용할 수 있습니다:
문서화 (Documentation)
사용자 매뉴얼은 memcode.ai/docs에서 확인할 수 있습니다:
- Code: 명령어(commands), 모델 라우팅(model routing), 메모리(memory), 플랜 모드(plan mode), MCP, 스킬(skills), 사용자 지정 지침(custom instructions), 구성(configuration).
- Agents: 모든 게이트웨이 채널, 페어링(pairing), 음성(voice)에 대한 개별 채널 설정 가이드.
내부 및 참조 문서는 이 저장소에서 확인할 수 있습니다:
아키텍처 (Architecture)
CLI가 에이전트 역할을 합니다: 모든 모델 선택, 에스컬레이션(escalation), 복구는 클라이언트 측에서 실행됩니다. 모든 백엔드는 하나의 OpenAI와 호환되는 와이어를 사용하는 단순한 서비스 표면입니다. memcode를 사용자의 자체 API 키, Ollama와 같은 로컬 엔드포인트 또는 호스팅된 memcode.ai 계정에 연결하세요.
라이선스 (License)
MIT. LICENSE를 참조하십시오.