본문으로 건너뛰기
  • 오픈 소스
  • AGPL-3.0
  • v0.2.0
  • Bun ≥ 1.3.14
  • TypeScript

대화 기록이 아니라 콕핏을 갖춘 터미널 코딩 에이전트.

Rovecode는 Bun 위에서 돌아가고, 16개 제공자나 OpenAI 호환 엔드포인트와 이야기하며, 모든 도구 호출을 저장소에 닿기 전에 기본이 거부인 정책에 통과시킵니다. AGPL-3.0의 자유 소프트웨어입니다.

$ rovecode "fix the failing test"
rovecode · atlas · feature/authreal frame
160×44 셀의 sextant TUI: git 상태가 붙은 파일 트리, 수정된 줄이 강조된 src/auth/callback.ts를 보여 주는 코드 패널, 읽기와 편집 도구 행 그리고 bun test 실행 허가를 구하는 승인 카드가 있는 메시지 패널, 4단계 중 1단계의 계획, 13퍼센트의 컨텍스트 사용량, 그리고 끄덕임을 기다리는 rovecode 구름 마스코트.
+4 −1 반영됨먼저 묻기 · 승인 카드컨텍스트 200k의 13 %

실제 프레임: bun test 승인 카드, +4 −1 편집 행, 컨텍스트는 200k의 13 %. 고정된 시계로 sextant 페인터를 통해 그렸습니다.

  • 2,200+테스트
  • 16내장 프로바이더
  • 4정책 계층
  • 15이 페이지의 언어
  • AGPL-3.0라이선스

터미널을 위한 코딩 에이전트. Bun 위의 TypeScript, 이식한 패턴 47개, 모든 도구 앞에 기본이 거부인 정책 하나.

rovecode를 쓰는 팀들

  • Northwind Robotics
  • Harbourline Payments
  • Meridian Studio
  • Cobalt Grid
  • Larkspur Health
  • Tessellate
  • Ferrous Labs
  • Quill & Compass

첫 고객들이 게재에 동의할 때까지의 임시 이름입니다.

02콕핏

한 화면에 여섯 패널. 신경 쓰는 파일이 위로 밀려 사라지지 않습니다.

git 상태가 붙은 파일, 강조 띠와 ± 차이가 있는 코드, 간결한 도구 행, 계획, 사용량 그리고 마스코트. 고정된 시계로 sextant 페인터를 통해 화면 없이 그립니다. TUI가 그리는 것과 같은 코드 경로이지 목업이 아닙니다.

메시지 패널 · 한 행씩

위 프레임에서 받아 적은 한 번의 실행.

모든 도구 호출은 한 행입니다. 동사, 파일, 그리고 무엇이 바뀌었는지. 편집은 +4 −1로 반영되었습니다. 셸 명령은 답이 셋인 카드 한 장 뒤에서 기다립니다. Esc는 거부이고, 답은 세션이 끝날 때까지 기억됩니다.

자식 에이전트는 물을 수 없습니다. 금지된 argv는 카드에 아예 닿지 않습니다.

03문제 → 해법

터미널 에이전트에서 어긋나는 네 가지, 그리고 rovecode가 각각에 하는 일.

키보드 앞에서 쓸 법한 말로 적고, 방법과 그 한계로 답합니다. 모든 띠는 실제 프레임 조각이거나 실제 설정 파일입니다.

  1. ~/.rovecode/providers.json
    {
    "default": "kaesra/zai-org/glm-5.3-flash",
    "providers": {
    "kaesra": {
    "baseUrl": "https://api.kaesra.tech/v1",
    "protocol": "openai",
    "keyEnv": "KAESRA_API_KEY"
    },

    01문제

    모든 에이전트가 한 공급사의 API와 한 장의 가격표에 용접된 채 나온다.

    rovecode가 하는 일

    하나의 StreamFn 이음매와 살아 있는 제공자 레지스트리. 16개의 이름 있는 제공자, 또는 providers.json에 적힌 OpenAI·Anthropic 호환 엔드포인트라면 무엇이든. 다른 터미널에서 추가한 제공자가 바로 다음 호출을 처리합니다. 역할별 대체 사슬은 429나 5xx에서 다음으로 넘어갑니다.

    rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key
  2. The messages panel: a user line, the assistant's note, then compact tool rows for read and edit with +5 −2

    02문제

    에이전트가 파일을 고치는 동안 대화 기록이 그 파일을 화면 밖으로 밀어낸다.

    rovecode가 하는 일

    패널로 나뉜 콕핏: 파일, 코드, 메시지, 계획, 사용량 그리고 구름 마스코트. 메시지 패널은 도구 호출마다 한 줄만 쓰고, 코드 패널은 반영된 그 조각 하나를 보여 줍니다.

    files · code · messages · plan · usage · rovecode
  3. The approval card: needs your permission, bash rm -rf node_modules && git checkout -- ., with deny selected

    03문제

    모델이 rm -rf를 요구하고, 제때 아니라고 한 사람이 없어 하네스가 그대로 실행한다.

    rovecode가 하는 일

    먼저 기본이 거부인 와일드카드 규칙, 다음으로 금지된 것이 실행에도 사람에게도 닿지 않는 execpolicy 판정, 그다음 고쳐진 인자에 대한 승인 카드. 네 겹을 쌓지만 어느 것도 샌드박스인 척하지 않습니다.

    rules → execpolicy → approval → runtime denylist + cwd lock
  4. The /rewind picker: rewind to a turn, rows #38 to #41 with #40 selected

    04문제

    40번째 턴이 어긋나는데 돌아갈 길이 새 대화뿐이다.

    rovecode가 하는 일

    sha256 해시 사슬을 가진 덧붙이기 전용 JSONL 세션 트리. /rewind는 턴 선택기를 열고 어느 턴에서든 갈라지며 그 턴의 전체 문장을 편집기에 채웁니다. shadow-git 체크포인트는 당신의 .git을 건드리지 않고 3가지 모드로 되돌립니다.

    /rewind /checkpoints /restore rovecode trace <session-id>
  1. 01sextant 콕핏
  2. 02실시간으로 다시 읽는 제공자
  3. 03MCP 클라이언트
  4. 04안전 사다리
  5. 05세션 트리 + 체크포인트
  6. 06Zed + JetBrains용 ACP
  7. 07헤드리스 HTTP + SSE
  8. 08배경 하위 에이전트
  9. 09훅
  10. 10OpenTelemetry

04기능

열 가지 기능, 각각 file:line 자취가 있는 이식.

Rovecode는 pi, opencode, codex, cline, aider, gemini-cli 등에서 근거 있는 패턴을 옮겨 옵니다. 이식은 작업 전에 적어 둔 기준에 맞춰 새 문맥의 비평자가 검증한 뒤에야 반영됩니다.

표면

sextant 콕핏

최소 100×30의 트루컬러 TTY에 6개 패널: git 상태가 붙은 파일, 강조 띠와 ± 차이가 있는 코드, 간결한 도구 행, 계획, 사용량, 마스코트. 팔레트 3개, /theme는 실행 중에 바꾸고, --classic은 pi-tui 대화를 유지합니다.

rovecode · ROVECODE_TUI=sextant|classic · /theme night|ember|contrast
sextant 프레임 조각: 파일 트리와 편집 강조 띠가 있는 코드 패널

제공자

실시간으로 다시 읽는 제공자

기본 16개에 providers.json에 등록한 모든 것. 호출마다 살아 있는 스냅숏에서 제공자를 찾습니다. 다른 터미널에서 하나 추가하면 실행 중인 콕핏이 다음 호출에 씁니다. 재시작은 없습니다.

rovecode provider add|list|test · rovecode model use provider/model
~/.rovecode/providers.json
{
"default": "kaesra/zai-org/glm-5.3-flash",
"providers": {
"kaesra": {
"baseUrl": "https://api.kaesra.tech/v1",
"protocol": "openai",
"keyEnv": "KAESRA_API_KEY"
},
"homelab": {
"baseUrl": "http://10.0.0.7:8000/v1",
"protocol": "openai",
"noKey": true,
"models": ["qwen3-coder-30b"]
}
}
}
  • 문맥

    MCP 클라이언트

    .rovecode/mcp.json의 stdio와 HTTP 서버. 레지스트리 도구 2개를 통한 지연 공개라, 놀고 있는 서버는 토큰을 거의 쓰지 않습니다.

    mcp_list · mcp_call
  • 안전

    안전 사다리

    모든 도구 호출은 실행 전에 네 단을 오릅니다. 금지된 argv는 어떤 훅이 보기도 전에 거부됩니다. --yolo는 확인을 건너뛰지만 거부 규칙은 결코 건너뛰지 않습니다.

    rules → execpolicy → approval → runtime

  • 기억

    세션 트리 + 체크포인트

    sha256 해시 사슬을 가진 덧붙이기 전용 JSONL. /rewind로 갈라지고 /resume으로 이어가며, shadow-git 체크포인트는 3가지 모드로 되돌리고 당신의 .git은 절대 건드리지 않습니다.

    /rewind · /checkpoints · /restore
  • Zed + JetBrains용 ACP

    stdio 위의 Agent Client Protocol v1, 공식 SDK.

    rovecode acp
  • 헤드리스 HTTP + SSE

    세션, 하나의 RunEvent 스트림, /doc의 OpenAPI. 포트 4100, 루프백만.

    rovecode serve
  • 배경 하위 에이전트

    상한이 있는 FIFO 자식 세션, 기본 동시 3개. 메모는 부모의 다음 턴에 도착합니다.

    /tasks
  • 훅

    .rovecode/hooks.ts에 타입이 붙은 훅 9개, 각각 5초 제한. pre_tool은 거부만 할 수 있습니다.

    pre_tool · approval · on_event
  • OpenTelemetry

    실행마다 하나의 추적: run ⊃ turn ⊃ tool에 토큰, 지연, 비용. 엔드포인트를 두지 않으면 익스포터도 없습니다.

    ROVECODE_OTEL_ENDPOINT

05보안과 배포

모든 도구 호출 앞에 네 개의 층. 당신이 설정하지 않은 기계로는 아무것도 나가지 않습니다.

README가 밝히는 그대로의 안전 모델을, 한계까지 포함해 보여줍니다. 각 층은 무엇을 판단하고 어디서 멈추는지 스스로 밝힙니다. 어느 것도 샌드박스가 아닙니다.

  1. 층 01

    01rules

    도구와 argv에 대한 기본 거부 와일드카드 규칙. 금지된 패턴은 무엇이 실행되기 전에 거부됩니다.

    한계의도가 아니라 패턴 대조입니다. 위험한 명령의 새로운 표기는 다음 층으로 넘어갑니다.

  2. 층 02

    02execpolicy

    구문 분석된 argv에 대한 판정: allow, prompt, forbidden. 금지된 것은 실행에도 사람에게도 닿지 않습니다.

    한계명령을 읽을 뿐, 그것이 돌아갈 셸을 읽지는 않습니다. 별칭이나 스크립트 본문은 불투명합니다.

  3. 층 03

    03approval

    수정된 인자에 대해 허용·항상·거부가 있는 카드 하나. 답은 세션 단위로 캐시되며, 하위 에이전트는 물을 수 없습니다.

    한계사람의 결정입니다. --yolo는 이 단만 건너뛰며, 그 위의 거부 규칙은 결코 건너뛰지 않습니다.

  4. 층 04

    04runtime

    실행 시점의 bash 거부 목록과 cwd 잠금. Esc는 진행 중인 호출을, Windows에서는 그 프로세스 트리 전체를 종료합니다.

    한계격리가 아니라 위임입니다. 신뢰할 수 없는 작업은 컨테이너나 마이크로VM에 두십시오.

배포와 데이터

  • 01

    정의상 자체 호스팅

    당신의 기계나 CI에서 소스로 실행됩니다. 계정은 선택입니다. 가격 페이지의 플랜을 열어 줄 뿐, CLI를 막는 일은 결코 없습니다. 요구 사항은 Bun ≥ 1.3.14 하나뿐입니다.

  • 02

    본사로 전화하지 않음

    나가는 트래픽은 당신이 설정한 프로바이더, 당신이 나열한 MCP 서버, 그리고 모델이 요청할 때의 web_fetch뿐입니다. 가격 카탈로그는 오프라인 스냅샷이며 자동 업데이트는 없습니다.

  • 03

    텔레메트리는 선택

    ROVECODE_OTEL_ENDPOINT를 설정하기 전까지 OpenTelemetry 내보내기는 꺼져 있습니다. 설정해도 담기는 것은 id와 크기와 결과뿐이며, 프롬프트·인자·출력은 결코 담기지 않습니다.

  • 04

    구조가 만드는 감사 기록

    세션은 sha256 해시 체인이 붙은 추가 전용 JSONL입니다. 모든 실행이 하나의 트레이스(run ⊃ turn ⊃ tool)를 내보내며, 취소된 것도 포함합니다.

  • 05

    플랫폼 상태

    윈도우가 먼저입니다. 개발과 릴리스 게이트는 Windows 11에서 돕니다. POSIX 경로는 테스트되었지만 Linux와 macOS는 아직 CI로 검증되지 않았습니다.

  • 06

    라이선스

    AGPL-3.0-only. 자유롭게 수정하고 재배포하십시오. 수정한 빌드를 네트워크 서비스로 운영하면 그 사용자에게 소스를 제공할 의무가 생깁니다.

06터미널에서

160×44의 실제 프레임 넷, 읽을 만한 곳에 번호를 붙여.

고정된 시계로 sextant 페인터를 통해 화면 없이 그렸습니다. TUI가 그리는 것과 같은 코드 경로이지 목업이 아닙니다. 프레임에 올리면 평평해지고, 행에 올리면 그 표시가 켜집니다.

rovecode · atlas · feature/auth · 160×44real frame
편집 후 sextant 프레임: 차이 모드의 코드 패널이 조각 하나를 보이고, 메시지 패널이 읽기와 편집 행을 늘어놓는다

편집이 반영됐다. 코드 패널이 바로 그 조각을 보여 준다.

승인된 편집 전에는 그대로 담고, 승인을 거치지 않은 편집 뒤에는 편집 자신의 기준점에서 되살립니다.

  1. 1편집이 반영될 때 ± 차이 모드로 바꾸기
  2. 2디스크의 파일에 대한 +4 −1 읽기
  3. 3간결한 도구 행을 따라가기: 읽기, 그다음 편집
  4. 4컨텍스트가 200k의 13 %까지 차는 것 보기
rovecode · atlas · feature/auth · 160×44real frame
승인 카드가 열린 sextant 프레임: bash bun test tests/auth.test.ts, 허용 항상 거부

셸 명령이 끄덕임을 기다린다. 카드 하나, 답 셋.

승인은 고쳐진 인자에 대해 결정되고 세션 단위로 기억됩니다. 자식 에이전트는 물을 수 없습니다.

  1. 1실행 전에 정확한 argv 보기
  2. 2허용·항상·거부 중 고르기, Esc는 거부
  3. 3머리글이 당신을 기다리는 중으로 바뀜
  4. 4마스코트가 끄덕임을 청하고 그 답을 기억함
rovecode · atlas · feature/auth · 160×44real frame
실행 후 sextant 프레임: run 모드의 코드 패널이 18개 통과한 bun test 출력을 보이고, 계획은 4/4 완료

테스트가 돌았다. $ 패널이 출력을 남기고, 머리글이 시계를 멈춘다.

PASS와 FAIL 칩은 도구 자신의 머리글 줄에서 종료 코드를 읽습니다.

  1. 1$ 모드에서 실행 출력 읽기, 18개 통과
  2. 2계획이 4/4 단계에서 닫힘
  3. 3도구 행이 출력의 마지막 줄을 실어 나름
  4. 4비용은 오프라인 카탈로그 기준 $0.071
rovecode · atlas · feature/auth · 160×44real frame
크루 보드가 열린 sextant 프레임: 레인 둘, 테스트 작성 진행 중이고 리뷰는 완료

배경 작업 둘, 각각 한 레인씩, 크루 보드에.

자식 세션은 하나뿐인 에이전트 루프를 함께 씁니다. TUI를 나가면 살아 있는 자식이 모두 취소됩니다.

  1. 1⌃a로 ∷ agents 보드 열기
  2. 2레인마다 이름표, 경과 시간, 상태를 보여 줌
  3. 3크루 요약은 계획 패널에 남음
  4. 4그동안 부모 실행은 계속 편집함

07빠른 시작

클론에서 도는 에이전트까지 명령 셋.

제공자를 설정하지 않으면 일회성 실행은 대본이 있는 가짜 제공자를 씁니다. 패키징 스모크 테스트도 같은 방식입니다.

  1. 01

    클론하고 링크하기 (Bun ≥ 1.3.14)

    CLI 진입점은 bun이 실행하는 TypeScript라 node로는 돌지 않습니다. bun link가 rovecode를 PATH에 올립니다.

    $ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link
  2. 02

    모델 연결하기

    rovecode setup이 안내합니다. 제공자를 고르고, 키를 가린 채 붙여 넣고, 작은 테스트 호출 한 번이면 끝입니다. 또는 rovecode auth set으로 키를 바로 저장하거나, ROVECODE_BASE_URL을 OpenAI 호환 엔드포인트로 향하게 하세요.

    $ rovecode setup
    또는
    $ rovecode auth set anthropic
  3. 03

    작업 실행하거나 콕핏 열기

    그냥 rovecode면 sextant 화면이 열립니다. 따옴표로 감싼 프롬프트는 일회성 실행이고, --output json은 결과 객체를 정확히 하나 돌려줍니다.

    $ rovecode "fix the failing test"
    $ run · exit 0
    실행 출력: 18개 통과, 0개 실패, expect() 호출 41회, 파일 1개에서 테스트 18개 실행.
13
호스팅 api
3
로컬 런타임

08제공자

기본 제공자 16개, 또는 OpenAI 호환 URL이라면 무엇이든.

저장된 자격 증명이 <NAME>_API_KEY 환경 변수를 이기고, 명시한 ROVECODE_BASE_URL / ROVECODE_API_KEY 짝이 둘 다를 이깁니다.

호스팅 api

로컬 런타임

  • kaesra
  • openai
  • anthropic
  • deepseek
  • groq
  • openrouter
  • together
  • mistral
  • cerebras
  • fireworks
  • perplexity
  • xai
  • moondream
  • ollama
  • lmstudio
  • vllm

● 로컬 런타임에는 키가 필요 없습니다 · rovecode auth set <이름>은 키를 ~/.rovecode/credentials.json에 저장합니다. 터미널에서 묻고 결코 화면에 찍지 않습니다.

어떤 엔드포인트든 · 실행 중

다른 터미널에서 제공자를 추가하면 실행 중인 콕핏이 다음 호출에 집어 옵니다. 재시작은 없습니다.

$ rovecode provider add homelab http://10.0.0.7:8000/v1 --no-key
~/.rovecode/providers.json
{
"default": "kaesra/zai-org/glm-5.3-flash",
"providers": {
"kaesra": {
"baseUrl": "https://api.kaesra.tech/v1",
"protocol": "openai",
"keyEnv": "KAESRA_API_KEY"
},
"homelab": {
"baseUrl": "http://10.0.0.7:8000/v1",
"protocol": "openai",
"noKey": true,
"models": ["qwen3-coder-30b"]
}
}
}

09그들의 말로

리뷰를 터미널로 옮긴 팀들.

  • 리뷰가 터미널로 옮겨 오고 승인 카드가 대화 그 자체가 되었습니다. 오가는 말은 3분의 1로 줄었는데 출시량은 같습니다.

    Aylin Demirci

    Head of Platform · Northwind Robotics

  • 기본 거부 정책이 보안팀이 승인한 이유입니다. 모든 도구 호출이 우리가 이미 읽는 로그의 한 줄입니다.

    Marcus Oyelaran

    Staff Engineer · Harbourline Payments

  • 열두 명, 로컬 모델, 중간에 벤더 없음. 고객 코드가 실행되도록 허용된 곳에서 실행됩니다.

    Inés Ferrer

    창업자 · Meridian Studio

페이지를 위해 쓴 가상의 팀들의 예시 인용문입니다. 출시 전에 실제 인용문으로 교체합니다.

10가격

무료로 시작하세요. 출시하는 팀을 위한 가격입니다.

모든 플랜은 같은 에이전트를 같은 기본 거부 정책 뒤에서 실행합니다. 플랜의 차이는 얼마나, 누구와 함께 실행하는가입니다.

  • Free

    내 저장소에서 에이전트를 시험해 보려는 분께.

    $0/ 월

  • Pro

    매일 이것으로 출시하는 한 명의 엔지니어에게.

    $20/ 월

  • Max

    한 주를 이 안에서 보내는 엔지니어에게.

    $200/ 월

  • Teams

    크레딧, 지식, 정책을 공유하는 팀에게.

    $80/ 월

    최소 $80 · 정규 좌석당 $40 / 월

모든 플랜 보기

11자주 묻는 질문

반론에, 구체로 답하기.

셸을 에이전트에 맡기기 전에 사람들이 묻는 일곱 가지. 모든 답은 방법과 그것이 멈추는 지점을 말합니다.

여기 있는 모든 것은 README.md의 안전 모델, 알려진 한계, 관측 가능성, 라이선스와 고지 절에서 가져왔습니다. README가 한계를 말하는 곳에서는 이 페이지도 말합니다.

아닙니다. 모든 도구 호출 앞과 둘레에서 네 겹이 함께 돕니다. 기본이 거부인 정책 규칙, execpolicy 판정(금지된 명령은 실행에도 사람에게도 닿지 않습니다), 고쳐진 인자에 대한 승인 관문, 그리고 cwd 잠금이 있는 실행 시 bash 거부 목록입니다. bash가 어디서 도는지는 고를 수 있지만(직접, WSL2, Docker) 모든 단은 위임이지 격리가 아닙니다. 믿을 수 없는 작업에는 컨테이너나 마이크로 VM을 쓰세요.

12rovecode 받기

패널 여섯. 제공자 열여섯. 무료로 시작하고, 팀에는 가격을.

$ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link
구름 마스코트 Rovecode, 엄지를 치켜들고