Przejdź do treści
  • otwarte źródła
  • AGPL-3.0
  • v0.2.0
  • Bun ≥ 1.3.14
  • TypeScript

Agent kodujący w terminalu z kokpitem, a nie z zapisem czatu.

Rovecode działa na Bun, rozmawia z 16 dostawcami albo z dowolnym endpointem zgodnym z OpenAI i przepuszcza każde wywołanie narzędzia przez politykę odmawiającą domyślnie, zanim dotknie twojego repozytorium. Wolne oprogramowanie na licencji AGPL-3.0.

$ rovecode "fix the failing test"
rovecode · atlas · feature/authreal frame
TUI sextant o rozmiarze 160 na 44 komórki: drzewo plików ze statusem gita, panel kodu pokazujący src/auth/callback.ts z podświetlonymi zmienionymi wierszami, panel wiadomości z wierszami narzędzi czytania i edycji oraz karta zgody prosząca o uruchomienie bun test, plan na kroku 1 z 4, 13 procent zużytego kontekstu i chmurkowa maskotka rovecode prosząca o kiwnięcie.
+4 −1 weszłonajpierw pytaj · karta zgodykontekst 13 % z 200k

Prawdziwa klatka: karta zgody dla bun test, wiersz edycji +4 −1, kontekst na 13 % z 200k. Wyrenderowane przez malarzy sextant przy ustalonym zegarze.

  • 2,200+testy
  • 16wbudowani dostawcy
  • 4warstwy polityki
  • 15języki na tej stronie
  • AGPL-3.0licencja

Agent kodujący do terminala. TypeScript na Bun, 47 przeniesionych wzorców, jedna polityka odmawiająca domyślnie przed każdym narzędziem.

zespoły używające rovecode

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

Nazwy zastępcze, dopóki pierwsi klienci nie zgodzą się na wymienienie.

02kokpit

Sześć paneli na jednym ekranie. Plik, który cię interesuje, nigdy nie ucieka w górę.

Pliki ze statusem gita, kod z pasem podświetlenia i różnicą ±, zwarte wiersze narzędzi, plan, zużycie i maskotka. Renderowane bez ekranu przez malarzy sextant przy ustalonym zegarze: dokładnie ta sama ścieżka kodu, którą rysuje TUI, a nie makieta.

panel wiadomości · wiersz po wierszu

Jedno uruchomienie, przepisane z klatki powyżej.

Każde wywołanie narzędzia to jeden wiersz: czasownik, plik i to, co się zmieniło. Edycja weszła jako +4 −1. Polecenie powłoki czeka za jedną kartą z trzema odpowiedziami; Esc odmawia, a odpowiedź obowiązuje do końca sesji.

Agenci potomni nie mogą pytać. Zabronione argv nigdy nie dociera do karty.

03problemy → rozwiązania

Cztery rzeczy, które psują się w agentach terminalowych, i co rovecode robi z każdą.

Powiedziane tak, jak powiedziałbyś przy klawiaturze, rozwiązane mechanizmem i jego granicą. Każdy pasek to prawdziwy wycinek klatki albo prawdziwy plik konfiguracyjny.

  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"
    },

    01problem

    Każdy agent przychodzi zespawany z API jednego dostawcy i jego cennikiem.

    co robi rovecode

    Jeden szew StreamFn i żywy rejestr dostawców. 16 nazwanych dostawców albo dowolny endpoint zgodny z OpenAI lub Anthropic z providers.json; dostawca dodany w innym terminalu obsłuży już następne wywołanie. Łańcuchy zapasowe dla roli przesuwają się przy 429 lub 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

    02problem

    Zapis czatu wypycha z ekranu plik, który agent właśnie edytuje.

    co robi rovecode

    Kokpit z panelami: pliki, kod, wiadomości, plan, zużycie i chmurkowa maskotka. Panel wiadomości trzyma każde wywołanie narzędzia w jednym zwartym wierszu; panel kodu pokazuje jedyny fragment, który wszedł.

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

    03problem

    Model prosi o rm -rf, a szkielet to wykonuje, bo nikt nie powiedział nie na czas.

    co robi rovecode

    Najpierw reguły z wieloznacznikami odmawiające domyślnie, potem wyroki execpolicy, gdzie zabronione nie dociera ani do wykonania, ani do człowieka, a potem karta zgody na poprawionych argumentach. 4 nałożone warstwy i żadna nie udaje piaskownicy.

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

    04problem

    Tura 40 idzie źle, a jedyna droga powrotu to nowa rozmowa.

    co robi rovecode

    Drzewo sesji JSONL tylko do dopisywania, z łańcuchem skrótów sha256. /rewind otwiera wybór tur, rozgałęzia się z dowolnej i wypełnia edytor pełnym tekstem tej tury; punkty kontrolne shadow-git przywracają w 3 trybach, nie tykając twojego .git.

    /rewind /checkpoints /restore rovecode trace <session-id>
  1. 01kokpit sextant
  2. 02dostawcy przeładowywani na gorąco
  3. 03Klient MCP
  4. 04Drabina bezpieczeństwa
  5. 05Drzewo sesji + punkty kontrolne
  6. 06ACP dla Zed + JetBrains
  7. 07Bezgłowe HTTP + SSE
  8. 08Podagenci w tle
  9. 09Hooki
  10. 10OpenTelemetry

04możliwości

Dziesięć możliwości, każda to port ze śladem file:line.

Rovecode przenosi udokumentowane wzorce z pi, opencode, codex, cline, aider, gemini-cli i innych. Port wchodzi dopiero wtedy, gdy krytyk ze świeżym kontekstem sprawdzi go wobec poprzeczki zapisanej przed rozpoczęciem pracy.

powierzchnia

kokpit sextant

6 paneli na TTY truecolor o co najmniej 100×30: pliki ze statusem gita, kod z pasem podświetlenia i różnicą ±, zwarte wiersze narzędzi, plan, zużycie, maskotka. 3 palety, /theme przełącza na gorąco; --classic zachowuje czat pi-tui.

rovecode · ROVECODE_TUI=sextant|classic · /theme night|ember|contrast
Wycinek klatki sextant: drzewo plików i panel kodu z pasem podświetlenia edycji

dostawcy

dostawcy przeładowywani na gorąco

16 wbudowanych plus wszystko, co zarejestrujesz w providers.json. Każde wywołanie rozwiązuje dostawcę wobec żywej migawki: dodaj jednego w innym terminalu, a działający kokpit użyje go przy następnym wywołaniu. Bez restartu.

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"]
}
}
}
  • kontekst

    Klient MCP

    Serwery stdio i HTTP z .rovecode/mcp.json. Leniwe ujawnianie przez 2 narzędzia rejestru, więc bezczynny serwer kosztuje prawie zero tokenów.

    mcp_list · mcp_call
  • bezpieczeństwo

    Drabina bezpieczeństwa

    Każde wywołanie narzędzia wchodzi na cztery szczeble, zanim się wykona. Zabronione argv zostaje odrzucone, zanim zobaczy je jakikolwiek hook; --yolo pomija pytania, nigdy reguł odmowy.

    rules → execpolicy → approval → runtime

  • pamięć

    Drzewo sesji + punkty kontrolne

    JSONL tylko do dopisywania z łańcuchem skrótów sha256. /rewind rozgałęzia, /resume podejmuje, punkty shadow-git przywracają w 3 trybach i nigdy nie tykają twojego .git.

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

    Agent Client Protocol v1 po stdio, oficjalny SDK.

    rovecode acp
  • Bezgłowe HTTP + SSE

    Sesje, jeden strumień RunEvent, OpenAPI pod /doc. Port 4100, tylko pętla lokalna.

    rovecode serve
  • Podagenci w tle

    Ograniczone sesje potomne FIFO, domyślnie 3 równolegle; notatki trafiają w następnej turze rodzica.

    /tasks
  • Hooki

    9 typowanych hooków w .rovecode/hooks.ts, każdy z limitem 5 s. pre_tool może tylko odmówić.

    pre_tool · approval · on_event
  • OpenTelemetry

    Jeden ślad na uruchomienie: run ⊃ turn ⊃ tool z tokenami, opóźnieniem i kosztem. Brak endpointu, brak eksportera.

    ROVECODE_OTEL_ENDPOINT

05bezpieczeństwo i wdrożenie

Cztery warstwy przed każdym wywołaniem narzędzia. Nic nie opuszcza maszyny, której nie skonfigurowałeś.

Model bezpieczeństwa tak, jak podaje go README, wraz z ograniczeniami. Każda warstwa mówi, co rozstrzyga i gdzie się kończy; żadna nie jest piaskownicą.

  1. warstwa 01

    01rules

    Reguły z symbolami wieloznacznymi w trybie deny-by-default nad narzędziem i argv. Zakazany wzorzec zostaje odrzucony, zanim cokolwiek się uruchomi.

    ograniczenieDopasowanie wzorca, nie intencji: nowy zapis groźnego polecenia przechodzi do następnej warstwy.

  2. warstwa 02

    02execpolicy

    Werdykty nad sparsowanym argv: allow, prompt, forbidden. To, co zakazane, nie dociera ani do wykonania, ani do człowieka.

    ograniczenieCzyta polecenie, a nie powłokę, w której ono ruszy; alias albo treść skryptu pozostają nieprzejrzyste.

  3. warstwa 03

    03approval

    Jedna karta z poprawionymi argumentami: zezwól, zawsze, odmów. Odpowiedzi są zapamiętywane na sesję; podagenci nie mogą pytać.

    ograniczenieDecyzja człowieka: --yolo pomija ten szczebel, nigdy reguł odmowy powyżej.

  4. warstwa 04

    04runtime

    Denylista basha i blokada cwd przy wykonaniu; Esc zabija trwające wywołanie, a w Windowsie całe jego drzewo procesów.

    ograniczenieDelegowanie, nie izolacja. Niezaufana praca należy do kontenera albo mikroVM.

wdrożenie i dane

  • 01

    Self-hosted z definicji

    Działa ze źródeł na twojej maszynie albo w twoim CI. Konto jest opcjonalne: odblokowuje plany ze strony cennika i nigdy nie blokuje CLI. Bun ≥ 1.3.14 to jedyny wymóg.

  • 02

    Żadnego phone-home

    Ruch wychodzący idzie wyłącznie do skonfigurowanego dostawcy, do wypisanych przez ciebie serwerów MCP i do web_fetch, gdy model o to poprosi. Katalog cen to migawka offline; nie ma samoaktualizacji.

  • 03

    Telemetria na życzenie

    Eksport OpenTelemetry jest wyłączony, dopóki nie ustawisz ROVECODE_OTEL_ENDPOINT; nawet wtedy niesie identyfikatory, rozmiary i wyniki — nigdy promptów, argumentów ani wyjścia.

  • 04

    Ślad audytowy z założenia

    Sesje to JSONL tylko-dopisywany z łańcuchem skrótów sha256; każdy przebieg eksportuje jeden trace (run ⊃ turn ⊃ tool), także anulowany.

  • 05

    Status platform

    Windows przede wszystkim: rozwój i bramka wydania działają na Windows 11. Ścieżki POSIX są testowane, Linux i macOS nie są jeszcze zweryfikowane w CI.

  • 06

    Licencja

    AGPL-3.0-only. Zmieniaj i rozpowszechniaj swobodnie; uruchomienie zmienionej wersji jako usługi sieciowej zobowiązuje cię do udostępnienia jej źródeł tym użytkownikom.

06z terminala

Cztery prawdziwe klatki w 160×44, z ponumerowanymi miejscami wartymi przeczytania.

Renderowane bez ekranu przez malarzy sextant przy ustalonym zegarze: dokładnie ta sama ścieżka kodu, którą rysuje TUI, a nie makieta. Najedź na klatkę, by ją spłaszczyć; na wiersz, by zaświecić jego znacznik.

rovecode · atlas · feature/auth · 160×44real frame
klatka sextant po edycji: panel kodu w trybie różnicy pokazuje jeden fragment, panel wiadomości wymienia wiersze czytania i edycji

Edycja weszła. Panel kodu pokazuje dokładnie ten fragment.

Uchwycone przed zatwierdzoną edycją, odtworzone z własnych zakotwiczeń edycji po takiej bez zgody.

  1. 1Przełącz na tryb różnicy ±, gdy edycja wchodzi
  2. 2Przeczytaj +4 −1 wobec pliku na dysku
  3. 3Idź za zwartymi wierszami: czytanie, potem edycja
  4. 4Patrz, jak kontekst rośnie do 13 % z 200k
rovecode · atlas · feature/auth · 160×44real frame
klatka sextant z otwartą kartą zgody: bash bun test tests/auth.test.ts, pozwól zawsze odmów

Polecenie powłoki czeka na kiwnięcie. Jedna karta, trzy odpowiedzi.

Zgody rozstrzygają się na poprawionych argumentach i są pamiętane w sesji; agenci potomni nie mogą pytać.

  1. 1Zobacz dokładne argv, zanim się wykona
  2. 2Wybierz pozwól, zawsze albo odmów; Esc odmawia
  3. 3Nagłówek przechodzi w czeka na ciebie
  4. 4Maskotka prosi o kiwnięcie, a potem je pamięta
rovecode · atlas · feature/auth · 160×44real frame
klatka sextant po zakończeniu: panel kodu w trybie run pokazuje wyjście bun test z 18 zaliczonymi, plan 4/4 gotowy

Testy przeszły. Panel $ trzyma wyjście; nagłówek zatrzymuje zegar.

Plakietki PASS i FAIL czytają kod wyjścia z własnego wiersza nagłówka narzędzia.

  1. 1Przeczytaj wyjście w trybie $, 18 zaliczonych
  2. 2Plan zamyka się na 4/4 krokach
  3. 3Wiersz narzędzia nosi ostatni wiersz wyjścia
  4. 4Koszt wypada na $0.071 z katalogu offline
rovecode · atlas · feature/auth · 160×44real frame
klatka sextant z otwartą tablicą załogi: dwa tory, pisanie testów w toku i recenzja gotowa

Dwa zadania w tle, po jednym torze, na tablicy załogi.

Sesje potomne dzielą jedną pętlę agenta; wyjście z TUI anuluje każde żywe dziecko.

  1. 1Otwórz tablicę ∷ agents przez ⌃a
  2. 2Każdy tor pokazuje etykietę, czas i status
  3. 3Podsumowanie załogi zostaje w panelu planu
  4. 4W tym czasie uruchomienie nadrzędne dalej edytuje

07szybki start

Trzy polecenia od klonowania do działającego agenta.

Bez skonfigurowanego dostawcy pojedyncze uruchomienia używają skryptowanego dostawcy pozornego — tak działa też dymny test pakowania.

  1. 01

    Sklonuj i zlinkuj (Bun ≥ 1.3.14)

    Wejście CLI to TypeScript uruchamiany przez bun; node go nie odpali. bun link umieszcza rovecode w PATH.

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

    Podłącz model

    rovecode setup przeprowadza krok po kroku: wybierz dostawcę, wklej klucz ukryty, jedno małe wywołanie testowe, gotowe. Albo zapisz klucz wprost przez rovecode auth set, albo skieruj ROVECODE_BASE_URL na dowolny endpoint zgodny z OpenAI.

    $ rovecode setup
    albo
    $ rovecode auth set anthropic
  3. 03

    Uruchom zadanie albo otwórz kokpit

    Samo rovecode otwiera powierzchnię sextant. Zapytanie w cudzysłowach to jednorazowe uruchomienie; --output json zwraca dokładnie jeden obiekt wyniku.

    $ rovecode "fix the failing test"
    $ run · exit 0
    Wyjście uruchomienia: 18 zaliczonych, 0 błędów, 41 wywołań expect(), 18 testów w 1 pliku.
13
api hostowane
3
lokalne runtime'y

08dostawcy

16 wbudowanych dostawców albo dowolny URL zgodny z OpenAI.

Zapisane dane uwierzytelniające biją zmienne środowiskowe <NAME>_API_KEY; jawna para ROVECODE_BASE_URL / ROVECODE_API_KEY bije oba.

api hostowane

lokalne runtime'y

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

● lokalne runtime'y nie potrzebują klucza · rovecode auth set <nazwa> zapisuje klucz w ~/.rovecode/credentials.json, pytany w terminalu i nigdy nie wypisywany.

dowolny endpoint · na żywo

Dodaj dostawcę w innym terminalu; działający kokpit weźmie go przy następnym wywołaniu. Bez restartu.

$ 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"]
}
}
}

09ich słowami

Zespoły, które przeniosły review do terminala.

  • Review przeniósł się do terminala, a karta zatwierdzenia stała się rozmową. Dostarczamy tyle samo przy jednej trzeciej przepychanek.

    Aylin Demirci

    Head of Platform · Northwind Robotics

  • Polityka odmawiająca domyślnie to powód, dla którego bezpieczeństwo dało zgodę. Każde wywołanie narzędzia to linia w logu, który i tak czytamy.

    Marcus Oyelaran

    Staff Engineer · Harbourline Payments

  • Dwanaście osób, lokalne modele, żadnego dostawcy pośrodku. Działa tam, gdzie kod naszych klientów może działać.

    Inés Ferrer

    Założycielka · Meridian Studio

Przykładowe cytaty fikcyjnych zespołów, napisane na potrzeby strony — przed startem zastąpią je prawdziwe.

10cennik

Za darmo na start. Z ceną dla zespołu, który dostarcza.

Każdy plan uruchamia tego samego agenta za tą samą polityką odmawiającą domyślnie. Plany różnią się tym, ile z niego uruchamiasz — i z kim.

  • Free

    Do wypróbowania agenta na własnych repozytoriach.

    $0/ miesiąc

  • Pro

    Dla jednego inżyniera, który dostarcza z nim codziennie.

    $20/ miesiąc

  • Max

    Dla inżyniera, którego tydzień mija w jego środku.

    $200/ miesiąc

  • Teams

    Dla zespołu, który dzieli kredyty, wiedzę i politykę.

    $80/ miesiąc

    minimum $80 · $40 za pełne miejsce / miesiąc

Zobacz wszystkie plany

11faq

Zarzuty, odpowiedzi z konkretami.

Siedem pytań, które ludzie zadają, zanim powierzą agentowi powłokę. Każda odpowiedź nazywa mechanizm i miejsce, gdzie się kończy.

Wszystko tutaj pochodzi z sekcji README.md: Model bezpieczeństwa, Znane ograniczenia, Obserwowalność oraz Licencja i noty. Gdzie README mówi o granicy, mówi o niej też ta strona.

Nie. Przed każdym wywołaniem narzędzia i wokół niego działają cztery nałożone warstwy: reguły polityki odmawiające domyślnie, wyroki execpolicy (zabronione polecenie nie dociera ani do wykonania, ani do człowieka), brama zgody na poprawionych argumentach oraz lista odmów bash w czasie działania z blokadą cwd. Miejsce, gdzie działa bash, jest wybieralne — bezpośrednio, WSL2 albo Docker — ale każdy szczebel to delegacja, nie izolacja. Do niezaufanej pracy użyj kontenera albo mikroVM.

12weź rovecodea

Sześć paneli. Szesnastu dostawców. Za darmo na start, z ceną dla zespołów.

$ git clone https://github.com/9Code-Labs/rovecode && cd rovecode && bun install && bun link
Rovecode, chmurkowa maskotka, z podniesionym kciukiem