jcode
무엇인가
jcode는 터미널에서 동작하는 코딩 에이전트 하네스로, Claude Code·Codex CLI·OpenCode·Cursor Agent 같은 CLI 에이전트와 같은 자리를 차지한다. Rust로 작성된 단일 바이너리이며 TUI 클라이언트가 세션을 유지한다. 저장소는 스스로를 RAM 효율과 지능 양쪽에서 최적화된 하네스로 규정한다.
어떻게 동작하나
동작의 중심에는 기억 그래프가 있다. 각 턴과 응답을 의미 벡터로 임베딩하고, 매 턴마다 그래프를 코사인 유사도로 조회해 관련 기억 항목을 찾는다. 검색된 항목은 그대로 대화에 주입되거나, 선택적으로 memory sideagent가 관련성을 검증하고 추가 정보 검색을 수행한 뒤 주입된다. 기억을 검색하려면 먼저 추출·저장되어야 하며, 의미 드리프트·마지막 추출 이후 K턴 경과·세션 종료 같은 시점에 memory sideagent가 추출해 그래프에 넣는다. 에이전트가 직접 호출하는 명시적 메모리 도구도 함께 제공된다.
무엇과 다른가
같은 조건의 1개 세션 PSS 측정에서 jcode는 로컬 임베딩을 끈 경우 27.8MB, 켠 경우 167.1MB를 쓴다. 비교 대상인 Claude Code 386.6MB, OpenCode 371.5MB, GitHub Copilot CLI 333.3MB, Cursor Agent 214.9MB보다 낮다. 10개 세션에서는 jcode 260.8MB(임베딩 off 117.0MB)인 반면 OpenCode 3237.2MB, Claude Code 2300.6MB, Copilot CLI 1756.5MB로, 세션 수가 늘 때의 증가폭이 다르다. 첫 프레임과 첫 입력까지의 시간도 10회 인터랙티브 PTY 실행으로 측정해 공개한다.
어떻게 쓰나
설치는 Homebrew 또는 소스 빌드로 하고 provider를 설정한다. TUI에서 `/update`를 실행하면 최신 안정 릴리스를 백그라운드로 내려받고 세션을 보존한 채 재로드한다. 터미널에서는 `jcode update`를 실행한 뒤 클라이언트를 재시작한다. 두 경로는 같은 업데이트 정책을 쓰며, 기본값은 `features.update_channel = "stable"`이다. `"main"`을 지정하면 소스 브랜치 업데이트를 받고, `/rebuild`는 자체 체크아웃을 다시 빌드한다.
전제와 한계
provider 설정이 선행되어야 한다. 로컬 임베딩을 켜면 메모리 사용량이 크게 늘어난다. 업데이트는 같거나 오래된 릴리스 버전을 건너뛰고, 개발 빌드는 실행 중 바이너리의 Git 커밋과 릴리스 태그를 비교해 앞서거나 동일하거나 분기된 빌드를 보존한다. 계보를 로컬이나 GitHub로 확인할 수 없으면 다운그레이드 위험을 피하기 위해 업데이트를 중단한다. 표시되는 dev 패치는 커밋 수 오프셋을 포함하므로 릴리스 버전 비교에 쓰지 않는다.
관련 논문 5
유사 도구
- Codewhale터미널에서 프로젝트를 읽고 파일을 고치고 명령을 실행하는 Rust 기반 코딩 에이전트다. 호스티드·로컬 모델을 골라 붙인다.
- oh-my-pi터미널에서 도는 코딩 에이전트로, LSP와 DAP를 에이전트 루프에 직접 연결해 이름 변경과 디버깅까지 IDE 수준으로 처리한다. Rust 코어 단일 바이너리다.
- chroma임베딩과 메타데이터를 저장하고 벡터·전문·하이브리드 검색을 제공하는 오픈소스 AI 검색 인프라다. Rust 코어와 Python·JS 클라이언트로 동작한다.
- letta에이전트의 기억과 정체성을 대화 세션 밖에 보관하는 상태 유지 에이전트 플랫폼이다. 터미널 UI, App Server, TypeScript SDK로 같은 에이전트에 접속한다.
- gentle-shellPi 위에서 동작하는 터미널 코딩 에이전트 워크스페이스다. ODD/SDD 워크플로, 서브에이전트 오케스트레이션, TDD 증거 기록, 리뷰 가드레일을 한 화면에 묶는다.
- terax-aiTauri 2와 Rust로 만든 7MB대 터미널 우선 AI 개발 환경이다. 네이티브 PTY와 WebGL 터미널, CodeMirror 6 편집기, BYOK·로컬 모델 에이전트 패널을 한 창에 묶는다.