mrkeyoor.com_
Thu 17 Sept 15:59 UTC
AI Toolsevaluationupdated 17 Sept 2026

rowboat review

Rowboat is a desktop work assistant that keeps each person's email, meetings, notes, code context, and model credentials on their own machine. Its Spaces feature gives a team shared chat, files, whiteboards, and an MCP server through Harbor, while each teammate's local Rowboat answers with that person's private context.

Verdict

Our Harbor run installed 195 packages and passed 381 of 382 Vitest checks, with 1 skipped and none failed. Rowboat is a serious choice for a team that wants each member's work memory kept local while agents collaborate through an explicit shared Space. Wait if you need a stable wire contract, low-ops self-hosting, or closure on the open remote-server security issues before exposing it beyond a trusted network.

We ran it

Lab card: what happened when we ran rowboatScreenshot of rowboat (www.rowboatlabs.com)
Install✓ · 8s195 packages · 130 MB
Build✓ · 14s
Tests✓ · 63s381 passed · 0 failed · 1 skipped of 382 (vitest)
Repo1454 files~291,715 lines of source · 39.4 MB · 2 CI workflows · Dockerfile

Answers from our run

Does rowboat build from source?

Dependencies installed in 8 seconds (195 packages), and the build succeeded in 14 seconds. We cloned commit 2fdae42 into a clean Debian container with 3 CPUs and no project-specific setup.

Do rowboat's tests pass?

Yes: 381 of 382 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Who should not use rowboat?

Organizations that require a stable collaboration protocol today: Harbor labels its contract v0 and says breaking changes are expected during dogfooding.

What are the alternatives to rowboat?

Khoj, Open WebUI, Dify. Our Harbor run installed 195 packages and passed 381 of 382 Vitest checks, with 1 skipped and none failed.

Setup3/5Harbor checks pass, but production needs OIDC, Postgres, and domains
Docs5/5README and 52 KB contract explain deployment and protocol details
Community5/517,875 stars and same-day pushes, release, issues, and pull requests
Maturity3/5Desktop v1.0.3 is active; Harbor's wire contract remains v0

Who it’s for

Teams that want personal AI context to stay on each member's computer while selected work is shared.
Developers who use Claude Code or Codex and want those agents to work with team files and threads.
Self-hosters prepared to operate Harbor with Postgres, OIDC, domain routing, and file storage.
Individuals who want a local Markdown knowledge graph plus email, meetings, browser tasks, and scheduled agents in one desktop app.

Who it’s NOT for

Organizations that require a stable collaboration protocol today: Harbor labels its contract v0 and says breaking changes are expected during dogfooding.
Small teams seeking a server with no identity or database work: production Harbor needs Postgres, an OIDC issuer, an apex domain, and invite policy decisions.
Operators planning to expose rowboat-server broadly before review: open issues 880, 881, and 882 cover URL-carried WebSocket tokens, missing Host validation, and symlinks escaping the workspace route.
Claude Enterprise users who assume their existing CLI sign-in will work: open issue 861 reports that Rowboat did not recognize one enterprise-authenticated Claude Code setup.
Teams that cannot let an agent post selected private context into a shared room: the separation depends on what a user or agent chooses to publish.

Setup reality

Our commit 2fdae42 checkout had 1,454 files, about 291,715 source lines, and occupied 39.4 MB. In apps/harbor, pnpm installed 195 packages in 8 seconds and used 130 MB. The build passed in 14 seconds; Vitest finished in 63 seconds with 381 passed, 0 failed, and 1 skipped out of 382.

The desktop app needs a model path, either local through Ollama or LM Studio or hosted with your own provider credentials. Google services require separate setup, while voice and search features can use Deepgram, ElevenLabs, Exa, or Composio keys. A production Harbor needs Postgres, OIDC, an apex domain, invite policy, and local or S3-compatible blob storage.

Harbor's in-memory mode uses dev tokens and must not face the public internet. The wire contract is explicitly v0, so self-hosters should expect coordinated client and server updates. Our scan found 2 CI workflow files, a Dockerfile, no tests directory, and monorepo workspaces.

One local assistant per teammate changes the trust boundary

Each teammate runs 1 Rowboat on their own computer, with personal memory built from email, meetings, notes, and code. A shared Space holds only the messages and files people or their agents choose to post. That split is Rowboat's best idea. The team gets a common work room without first copying everyone's inbox and private knowledge into one central bot.

The desktop app covers much more than chat. It keeps a Markdown knowledge graph, drafts email, records meeting notes, runs scheduled agents, and provides an isolated browser. Code Mode can hand work to Claude Code or Codex with selected context. Local models work through Ollama or LM Studio, while hosted providers use each person's own credentials. The breadth is useful, although it gives Rowboat more permissions and failure modes than a plain model client.

Harbor exposes the same three doors to people and agents

Harbor has 3 interfaces over one service: HTTP, a live WebSocket, and an MCP server. Rowboat's built-in agent uses the same MCP surface available to another compatible agent. Actions are attributed to the member and agent name, and the contract requires agents to attach a reason to file-changing operations. That parity makes the collaboration model easier to inspect than a hidden internal agent API.

A Space combines threaded messages with Markdown files, uploads, and whiteboards. File edits carry versions and history; concurrent edits use line-level three-way merging, with conflicts returned as normal outcomes that include the current content and collision regions. The v0 contract lists 30 MCP tools for messages, members, spaces, direct conversations, search, polls, files, history, and diffs. It is a substantial collaboration server, not a thin chat relay.

What happened when we ran it

Our sandbox cloned commit 2fdae42 with 3 CPUs, 8 GB of RAM, and Node 22. The 39.4 MB monorepo contained 1,454 files and about 291,715 source lines. Inside apps/harbor, pnpm installed 195 packages in 8 seconds and occupied 130 MB on disk. The build completed successfully in 14 seconds.

Vitest completed in 63 seconds with 381 passed, 0 failed, and 1 skipped out of 382. The scan found 2 CI workflow files, a Dockerfile, monorepo workspaces, and no tests directory. Those signals describe the supplied checkout and target. They do not measure desktop responsiveness, model quality, email accuracy, or the behavior of third-party services.

Production Harbor needs Postgres, OIDC, and domain routing

Local development can boot an in-memory Harbor on port 4272 with seeded users and dev tokens. That is a quick way to inspect the HTTP, live, and MCP interfaces, but the README warns that dev tokens must never be exposed publicly. Durable self-hosting switches to Postgres and a deployment mode that maps organization slugs under an apex domain.

Authentication uses an OIDC issuer with verified JSON Web Tokens. The login and consent page needs a publishable auth setting, and organizations can restrict invite acceptance by email domain. Uploads go to local disk or S3-compatible storage. Operators must also arrange TLS and route wildcard organization hosts correctly. The provided Node 22 Dockerfile builds Harbor, yet it does not remove the identity, database, backup, and domain work around the container.

Private context stays local until a person or agent posts it

Rowboat states that personal data stays in local Markdown and that only posted material crosses into Harbor. Its agent rules say to read only what a task needs and summarize private sources rather than paste them. Those are sensible defaults. They are also behavioral rules executed by an agent that can read private sources and write to a shared room.

A careful rollout should start with a test Space and low-risk data. Review model prompts, MCP permissions, connected accounts, and what appears in history when an agent acts as a member. Optional integrations expand the boundary: Google has its own setup, while Deepgram, ElevenLabs, Exa, and Composio use separate keys. Local storage reduces central collection, but it does not make every agent action private.

The v0 contract and three open server issues deserve attention

Harbor's 52 KB contract calls itself v0 and says breaking changes are expected while the team dogfoods it. Client and server schemas live in the same workspace, which reduces accidental drift, but self-hosters still need to coordinate upgrades. That is acceptable for an early internal deployment and awkward for an organization promising long-lived compatibility to other clients.

Open issues 880, 881, and 882 concern rowboat-server, not Harbor's measured test result. They report a WebSocket bearer token in a query string, absent Host validation for LAN exposure, and a workspace file route that can follow symlinks outside its root. The issue text narrows the conditions and proposes fixes, but all 3 remained open when checked. Review the current network surface before remote deployment.

September 17 activity shows speed more than stability

GitHub recorded 17,875 stars, 171 combined issues and pull requests, and a last push on September 17, 2026. Release v1.0.3 arrived the same day with Spaces as its main addition. Recent pull requests include protocol, sign-in, invite, live-update, and interface fixes. This is active maintenance, and the combined open count should not be mistaken for a bug count.

Rowboat is most convincing when the team agrees with its architecture: private work memory on each computer, selected shared state in Harbor, and equal MCP access for built-in and external agents. The clean 381-pass Harbor run makes a trial reasonable. Keep the first deployment small enough that a v0 protocol change or permission mistake can be corrected without turning private work history into an incident.

Alternatives

ProjectWhat it isPick it when
KhojA self-hostable personal assistant for documents, web research, agents, and automations.pick this instead when personal search and scheduled assistance matter more than a shared team room.
Open WebUI gh↗A multi-user interface for local and hosted language models with tools and knowledge bases.pick this instead when your team wants a central model interface rather than one local assistant per person.
Dify gh↗A collaborative platform for building and deploying agent workflows and retrieval applications.pick this instead when the goal is shipping shared AI applications rather than managing personal work context.

What people are saying

  1. [github-trending] rowboatlabs/rowboat

Sources

  1. Rowboat README
  2. Harbor Spaces protocol contract
  3. Rowboat v1.0.3 release
  4. WebSocket token issue 880
  5. Workspace symlink issue 882

More ai tools reviews

skills · superpowers-zh · yolov5 · eve · MemOS · LongCat-Video · the whole board →