jcode

AI Coding ToolsTUIRust

★ 19,544주당 +268조회 4

무엇인가

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

유사 도구