Rowboat 1.0.3, 구성원마다 로컬 도우미를
요약
Rowboat 1.0.3은 메일과 회의를 로컬 Markdown 지식 그래프로 졸여내고, 구성원 각자가 자기 도우미를 데리고 같은 Space에 들어가게 한다. 데이터는 로컬 디스크에 남는다.
추천- 이름
- Rowboat
- 버전
- 1.0.3
- 오픈소스
- 오픈소스
- 운영체제
- WindowsmacOSLinux
- 공식 사이트
- https://www.rowboatlabs.com/
- 업데이트
- 2026-11-06 23:00
대부분의 AI 도우미는 문맥을 클라우드에 두고 팀 전체가 계정 하나를 함께 쓴다. Rowboat 1.0.3은 그 반대로 간다. 각자 자기 기계에서 자기만의 도우미를 기르고, 정말 함께 일해야 할 때 그것을 같은 방으로 데려간다.
Rowboat는 macOS, Windows, 리눅스를 가로지르는 데스크톱 앱이고, 코드는 Apache-2.0으로 GitHub에 공개되어 있으며 TypeScript로 작성되었다. 별은 이미 1만 8000개를 넘겼다. 스스로를 기억을 가진 AI 동료라고 부르는데, 그 기억은 대화 기록이 아니라 스스로 자라나는 로컬 지식 그래프다.
개인의 절반: 일을 Markdown 그래프로 졸여내기
토대의 이름은 Brain이다. Rowboat는 메일과 회의 녹취, Slack 메시지, 도우미와의 대화를 모두 순수한 Markdown 노트로 졸여내고, 노트끼리 이중 링크로 서로를 가리키게 한다. 사람, 회사, 프로젝트, 주제가 각각 그래프의 노드가 되고, 일이 진행되면서 새로운 연결이 스스로 자란다. 이 디렉터리 구조는 Obsidian의 vault와 호환되므로, 이미 쓰는 편집기로 열어 이름을 바꾸거나 잘못 이어진 연결을 잘라낼 수 있다.

이것은 질문할 때마다 문서를 다시 검색하는 흔한 방식과는 다른 선택이다. 검색은 차갑다. 모든 대화가 문맥을 처음부터 다시 짠다. 그래프는 따뜻하다. 지난주에 고객에게 무엇을 약속했는지, 이 프로젝트가 누구 손에서 멈춰 있는지는 이미 노드에 적혀 있다. Rowboat는 이것을 매번 다시 시작하는 대신 기억이 복리로 쌓이는 상태라고 부른다.
파일은 모두 로컬 디스크에 있고 전용 형식도, 특정 호스팅에 묶이는 일도 없다. 백업과 이전은 디렉터리를 하나 복사하는 것과 같다. 위의 관계도가 바로 그렇게 만들어진다. 백 개가 넘는 노트가 사람, 프로젝트, 조직, 주제 폴더로 나뉘어 들어가고, 어느 노드를 눌러도 원본 노트로 이동한다.
메일, 회의, 그리고 스스로 도는 일
일상 동작에서 가장 눈에 띄는 변화는 메일이다. 내장 클라이언트는 받은편지함을 중요와 그 밖으로 나누고, 중요한 쪽에는 답장 초안을 미리 만들어 둔다. 쓰는 재료는 그래프에 쌓인 주고받은 기록과 약속이다. 초안을 고쳐서 보내면 그 고친 방식을 기억해 다음번에는 자기 문체에 더 가깝게 쓴다. 회의는 또 다른 입구다. 녹음은 로컬에서 하며 마이크와 스피커 양쪽에서 동시에 소리를 받고, 회의에 로봇을 들여보내지 않는다. 진행 중에는 실시간 받아쓰기가 나오고, 끝나면 할 일이 붙은 Markdown 요약이 남으며 관련된 사람, 프로젝트, 주제 노드가 함께 갱신된다.
이 동작들이 클릭을 기다리지 않게 하는 것이 배경에서 도는 agent다. 새 메일이 왔거나 회의가 끝났다는 사건에 걸어 둘 수 있고, 매일 아침 여덟 시나 한 시간마다 같은 시간에 걸어 둘 수도 있다. 한 번 돌기 시작하면 웹을 검색하고, 내장 브라우저를 조작하고, 이미 연결한 도구를 부르고, 필요하면 코드도 쓴다. 아래 그림의 작업 목록에는 회의 내용으로 구현을 돌리는 것, 한 시간마다 소식을 한 바퀴 모으는 것, 매일 아침 전날의 단서를 정리하는 것이 있고, 각각 마지막 실행 시각과 켜고 끄는 스위치가 붙어 있다.

그 위로 두 층이 더 있다. Code Mode와 Apps다. Code Mode는 Claude Code나 Codex로 병렬 코딩 agent를 띄우고, Rowboat는 그것들을 몰기 위해 자체 ACP 클라이언트를 썼다. 덕분에 회의에서 정한 결정 하나가 가지와 검토 가능한 변경이 되고, 누군가에게 배경을 다시 설명할 필요가 없다. Apps는 보고 싶은 것이 생겼다는 바람을 그 자체로 만든다. 요구 목록이든 투자 진행표든 copilot에게 말로 설명하면 로컬에서 도는 작은 웹 앱을 그 자리에서 세우고, 데이터는 agent가 계속 채운다. 아래의 기능 요구 목록은 메일, 회의, Slack의 요구를 모아 목소리 크기순으로 세운 것이고, 하나를 열면 원래 어느 메일, 어느 회의였는지까지 따라갈 수 있다.

팀의 절반: Space와 그 뒤의 Harbor
1.0.3이 힘을 준 곳은 협업 쪽이다. Space에는 메시지, 화이트보드, 문서, 발표가 있고 구성원은 각자 자기 도우미를 데리고 들어온다. 도우미는 지금 작업에 필요한 내용만 읽고, 사적인 자료는 요약의 형태로 공유 공간에 가져오며 노트 전체를 쏟아붓지 않는다. 이런 공유 기록을 받치는 서버는 Harbor라 불리고 HTTP, WebSocket, MCP 세 가지 창구를 낸다. 그래서 Space는 MCP 서버 하나를 드러내고, 네 agent를 거기에 붙일 수 있다.

Harbor는 공식 호스팅 판을 써도 되고 직접 세워도 된다. 개발용 입구는 기본으로 4272번 포트에 개발용 token이 붙고, 로컬 디버깅에만 쓰는 것이다. 실제 배포에는 Postgres와 도메인, 고정된 OIDC issuer가 필요하고, Space의 기록과 파일, 화이트보드가 Harbor에 들어간 순간 그것은 공유 기록이 되므로 접근 제어와 백업, 삭제, 사건 감사가 함께 따라와야 한다.
모델은 직접 고르되, 로컬 우선이 오프라인은 아니다
모델 층에서 Rowboat는 특정 공급자에 묶이지 않는다. 완전히 로컬로 하려면 Ollama나 LM Studio로 로컬 모델을 돌린다. 자기 API key를 넣어 호스팅 모델에 붙일 수도 있고, 언제 바꿔도 데이터 층은 움직이지 않는다. 외부 도구는 MCP와 Composio로 연결하고, 받아쓰기는 Deepgram, 읽어 주기는 ElevenLabs를 쓴다. 모두 선택 사항이다.
놓치기 쉬운 경계가 하나 있다. 로컬 우선은 오프라인 사용을 뜻하지 않는다. Brain은 분명 Markdown으로 기계에 남지만, 고른 모델과 메일·일정 연결, 음성 처리, 웹 검색, MCP 도구, Space는 모두 네트워크에 닿을 수 있다. 프라이버시 약속이 성립하는 것은 매번 무엇이 밖으로 나가는지 알고 있을 때뿐이다.
현실의 몇 가지 면
지금 연결되는 데이터 출처는 Gmail, Google 캘린더, Granola, Fireflies, Slack에 모여 있다. 한계도 분명하다. Outlook은 아직 없고 IMAP도 지원하지 않는다. 주된 편지함이 이 조합 밖에 있는 사람에게는 답답하다.
그래프 자체도 쓸 만해지려면 얼마간 길러야 한다. 데이터가 많으면 한두 주는 정상이다. 초기에는 잡음이 많아 쓸모없는 연락처와 신호가 약한 실체가 노드에 섞이고 손으로 잘라내야 한다. 배경에서 그래프를 세우는 일은 token을 많이 먹으므로 클라우드 창구로만 돌리면 청구서가 조용히 불어난다.
현실적인 방법은 먼저 로컬 모델로 밑그림을 세우고, 제대로 생각해야 할 때 클라우드로 바꾸는 것이다. 라이선스는 코드가 Apache-2.0이고 직접 세우는 것은 무료이며, 클라우드 구독은 사용량에 따른 단계로 나뉘어 무겁게 쓰면 곧 상한에 닿는다.
Rowboat가 맞는 사람은 일의 거의 전부가 메일과 회의 안에 있고, 여러 프로젝트와 고객을 동시에 굴리는 쪽이다. 값어치는 답이 얼마나 영리한가가 아니라 배경을 다시 설명하지 않아도 된다는 데 있다. 팀이 함께 일해야 하는 단계에서 1.0.3은 적어도 각자가 도우미를 데리고 같은 방으로 들어가는 부분까지는 이어 놓았다.