rowboatlabs/rowboatPublic

AI coworker with memory and collaboration

AI summary: A desktop AI coworker that indexes your local environment to provide deeply contextual, proactive automation.

Stars
18K
+4 today
Forks
1.8K
Watchers
100
Open issues
92
Open PRs
91
Contributors
~20
Commits
2.6K
Branches
364

TypeScriptApache-2.0Created Jan 13, 2025Last push 2d agoLatest release v1.0.3+31 stars this week+540 this month

Quick answers

What is rowboat?
A desktop AI coworker that indexes your local environment to provide deeply contextual, proactive automation.
What does rowboat do?
Rowboat is a desktop-native AI assistant designed to solve the problem of fragmented context in modern knowledge work. Unlike standard chat interfaces, it actively indexes your local work environment—your files, applications, and history—to maintain an ongoing memory of what you are doing. It provides built-in surfaces to act on this context, effectively functioning as a multi-agent orchestration layer right on your machine. The system integrates tightly with your operating system, allowing it to automate tasks, recall past actions, and assist in coding or writing with a deep understanding of your personal workspace. By running locally, it ensures the AI has the necessary granular context that cloud-only tools inherently lack.
Who is rowboat for?
Knowledge workers, developers, and professionals who want a deeply integrated AI assistant that understands their local files and specific workflows. Requires installation on a local desktop environment.
How do I get started with rowboat?
Visit https://www.rowboatlabs.com/
How popular is rowboat on GitHub?
rowboatlabs/rowboat has 17,994 stars and 1,793 forks on GitHub, and gained 31 stars in the last 7 days.
What license does rowboat use?
rowboatlabs/rowboat is released under the Apache-2.0 license.

Star history

since Jul 29, 2026
05K10K15KJul 2026Aug 2026Sep 2026Oct 2026
18K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 3 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 1 commit2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 1 commit2025-10-29: 0 commits2025-10-30: 1 commit2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 1 commit2025-11-04: 1 commit2025-11-05: 2 commits2025-11-06: 0 commits2025-11-07: 1 commit2025-11-08: 1 commit2025-11-09: 0 commits2025-11-10: 1 commit2025-11-11: 3 commits2025-11-12: 0 commits2025-11-13: 3 commits2025-11-14: 6 commits2025-11-15: 1 commit2025-11-16: 3 commits2025-11-17: 4 commits2025-11-18: 16 commits2025-11-19: 13 commits2025-11-20: 12 commits2025-11-21: 13 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 1 commit2025-11-25: 8 commits2025-11-26: 2 commits2025-11-27: 1 commit2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 2 commits2025-12-02: 3 commits2025-12-03: 1 commit2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 1 commit2025-12-09: 1 commit2025-12-10: 1 commit2025-12-11: 3 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 4 commits2025-12-16: 2 commits2025-12-17: 3 commits2025-12-18: 2 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 1 commit2025-12-23: 1 commit2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 1 commit2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 1 commit2026-01-06: 7 commits2026-01-07: 8 commits2026-01-08: 3 commits2026-01-09: 2 commits2026-01-10: 1 commit2026-01-11: 0 commits2026-01-12: 6 commits2026-01-13: 6 commits2026-01-14: 8 commits2026-01-15: 3 commits2026-01-16: 8 commits2026-01-17: 9 commits2026-01-18: 0 commits2026-01-19: 9 commits2026-01-20: 30 commits2026-01-21: 23 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 3 commits2026-01-27: 4 commits2026-01-28: 2 commits2026-01-29: 4 commits2026-01-30: 4 commits2026-01-31: 2 commits2026-02-01: 0 commits2026-02-02: 3 commits2026-02-03: 7 commits2026-02-04: 8 commits2026-02-05: 7 commits2026-02-06: 14 commits2026-02-07: 3 commits2026-02-08: 0 commits2026-02-09: 9 commits2026-02-10: 18 commits2026-02-11: 1 commit2026-02-12: 8 commits2026-02-13: 5 commits2026-02-14: 6 commits2026-02-15: 0 commits2026-02-16: 7 commits2026-02-17: 2 commits2026-02-18: 9 commits2026-02-19: 9 commits2026-02-20: 1 commit2026-02-21: 3 commits2026-02-22: 0 commits2026-02-23: 3 commits2026-02-24: 4 commits2026-02-25: 0 commits2026-02-26: 3 commits2026-02-27: 2 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 3 commits2026-03-03: 0 commits2026-03-04: 2 commits2026-03-05: 2 commits2026-03-06: 2 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 1 commit2026-03-10: 2 commits2026-03-11: 0 commits2026-03-12: 1 commit2026-03-13: 7 commits2026-03-14: 1 commit2026-03-15: 1 commit2026-03-16: 6 commits2026-03-17: 1 commit2026-03-18: 4 commits2026-03-19: 8 commits2026-03-20: 2 commits2026-03-21: 2 commits2026-03-22: 0 commits2026-03-23: 2 commits2026-03-24: 9 commits2026-03-25: 2 commits2026-03-26: 1 commit2026-03-27: 3 commits2026-03-28: 1 commit2026-03-29: 0 commits2026-03-30: 2 commits2026-03-31: 3 commits2026-04-01: 5 commits2026-04-02: 3 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 1 commit2026-04-07: 12 commits2026-04-08: 4 commits2026-04-09: 7 commits2026-04-10: 5 commits2026-04-11: 2 commits2026-04-12: 0 commits2026-04-13: 7 commits2026-04-14: 2 commits2026-04-15: 5 commits2026-04-16: 1 commit2026-04-17: 2 commits2026-04-18: 3 commits2026-04-19: 0 commits2026-04-20: 11 commits2026-04-21: 6 commits2026-04-22: 1 commit2026-04-23: 3 commits2026-04-24: 3 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 3 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 3 commits2026-05-05: 5 commits2026-05-06: 12 commits2026-05-07: 1 commit2026-05-08: 20 commits2026-05-09: 3 commits2026-05-10: 1 commit2026-05-11: 1 commit2026-05-12: 3 commits2026-05-13: 1 commit2026-05-14: 1 commit2026-05-15: 1 commit2026-05-16: 1 commit2026-05-17: 0 commits2026-05-18: 4 commits2026-05-19: 4 commits2026-05-20: 1 commit2026-05-21: 0 commits2026-05-22: 9 commits2026-05-23: 1 commit2026-05-24: 3 commits2026-05-25: 12 commits2026-05-26: 2 commits2026-05-27: 4 commits2026-05-28: 12 commits2026-05-29: 4 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 1 commit2026-06-03: 2 commits2026-06-04: 1 commit2026-06-05: 4 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 3 commits2026-06-09: 0 commits2026-06-10: 4 commits2026-06-11: 5 commits2026-06-12: 2 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 3 commits2026-06-17: 3 commits2026-06-18: 3 commits2026-06-19: 8 commits2026-06-20: 3 commits2026-06-21: 1 commit2026-06-22: 4 commits2026-06-23: 3 commits2026-06-24: 8 commits2026-06-25: 0 commits2026-06-26: 3 commits2026-06-27: 1 commit2026-06-28: 0 commits2026-06-29: 1 commit2026-06-30: 7 commits2026-07-01: 6 commits2026-07-02: 38 commits2026-07-03: 8 commits2026-07-04: 12 commits2026-07-05: 16 commits2026-07-06: 21 commits2026-07-07: 29 commits2026-07-08: 6 commits2026-07-09: 23 commits2026-07-10: 45 commits2026-07-11: 5 commits2026-07-12: 6 commits2026-07-13: 8 commits2026-07-14: 11 commits2026-07-15: 2 commits2026-07-16: 4 commits2026-07-17: 2 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 4 commits2026-07-21: 9 commits2026-07-22: 11 commits2026-07-23: 5 commits2026-07-24: 29 commits2026-07-25: 25 commits2026-07-26: 5 commits2026-07-27: 1 commit2026-07-28: 5 commits2026-07-29: 8 commits2026-07-30: 12 commits2026-07-31: 8 commits2026-08-01: 0 commits2026-08-02: 1 commit2026-08-03: 4 commits2026-08-04: 5 commits2026-08-05: 5 commits2026-08-06: 0 commits2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 3 commits2026-08-12: 4 commits2026-08-13: 7 commits2026-08-14: 7 commits2026-08-15: 0 commits2026-08-16: 2 commits2026-08-17: 2 commits2026-08-18: 6 commits2026-08-19: 5 commits2026-08-20: 15 commits2026-08-21: 3 commits2026-08-22: 1 commit2026-08-23: 0 commits2026-08-24: 6 commits2026-08-25: 22 commits2026-08-26: 4 commits2026-08-27: 1 commit2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 2 commits2026-09-01: 7 commits2026-09-02: 9 commits2026-09-03: 19 commits2026-09-04: 4 commits2026-09-05: 6 commits2026-09-06: 3 commits2026-09-07: 5 commits2026-09-08: 8 commits2026-09-09: 17 commits2026-09-10: 13 commits2026-09-11: 9 commits2026-09-12: 12 commits2026-09-13: 0 commits2026-09-14: 27 commits2026-09-15: 23 commits2026-09-16: 3 commits2026-09-17: 0 commits2026-09-18: 1 commit2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 6 commits2026-09-22: 13 commits2026-09-23: 2 commits2026-09-24: 1 commit2026-09-25: 1 commit2026-09-26: 0 commits
1,392 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    17,994 stars

  • Very active

    1,392 commits in 52 weeks

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What rowboat does

Rowboat is a desktop-native AI assistant designed to solve the problem of fragmented context in modern knowledge work. Unlike standard chat interfaces, it actively indexes your local work environment—your files, applications, and history—to maintain an ongoing memory of what you are doing. It provides built-in surfaces to act on this context, effectively functioning as a multi-agent orchestration layer right on your machine. The system integrates tightly with your operating system, allowing it to automate tasks, recall past actions, and assist in coding or writing with a deep understanding of your personal workspace. By running locally, it ensures the AI has the necessary granular context that cloud-only tools inherently lack.

Knowledge workers, developers, and professionals who want a deeply integrated AI assistant that understands their local files and specific workflows. Requires installation on a local desktop environment.

  • Local context indexing: Continuously scans and indexes your local files and workflows to build a persistent memory of your work.
  • Desktop native integration: Operates directly on your OS, allowing it to interact with local applications and file systems.
  • Multi-agent architecture: Orchestrates various AI models beneath the surface to handle different types of automation tasks.
  • Actionable built-in surfaces: Provides specific UI elements and triggers allowing the AI to execute commands, not just chat.
  • Persistent work memory: Recalls previous projects, code snippets, and decisions to inform current tasks automatically.

Where teams use it

Context-aware coding assistance

Software developers can ask Rowboat to refactor code, knowing the AI already has their entire local repository indexed and understood.

Automated workflow execution

Knowledge workers can instruct the AI to perform complex, multi-step actions across different local applications based on historical patterns.

Intelligent local search

Users can query their entire workspace history to instantly surface relevant documents, conversations, or code they worked on weeks ago.

Proactive project management

The AI can suggest next steps or identify missing context for a project by analyzing the current state of the local file system.

Getting started: Visit https://www.rowboatlabs.com/

README

main branch
rowboat-github-2

Rowboat

Open-source personal AI assistant with built-in docs, whiteboard and email. Works solo or with your team.

rowboatlabs/rowboat | Trendshift

Website Discord Twitter Y Combinator

简体中文 · 日本語 · 한국어 · Español · Français · Português

Rowboat indexes your work into a living knowledge graph and uses that to get work done on your machine. It includes work surfaces for collaborating with AI: email client, notes, browser, code mode, meeting note taker, and workspaces for different projects.

Download latest for Mac/Windows/Linux: Download

Rowboat Apps to Code demo

Demo - apps to code · Demo - knowledge graph

⭐ If you find Rowboat useful, please star the repo. It helps more people find it.


Overview

Brain

Rowboat indexes email, meetings, slack and assistant conversations into a living Obsidian-style backlinked knowledge graph.
Brain graph screenshot

Email

The built-in email client sorts emails into important and everything else. Rowboat automatically drafts responses for important email using all the work context.
Email screenshot

Background agents

You can set up background agents that run on events like new email or on schedule like every day at 8am. They can connect to tools, search the web, use the browser and write code using Claude Code or Codex.
Background agents screenshot

Built-in Browser

Rowboat includes a browser that lets you and assistant collaborate on web tasks. Because it's isolated from your main browser, you can log in only to the accounts that you want the assistant to access.
Browser screenshot

Meeting Notes

A local meeting note-taker that taps into mic & speaker, produces live transcript and summarizes the meeting in a markdown file and updates the knowledge graph.
Meeting notes screenshot

Code Mode

Code mode lets you spin up parallel coding agents with Claude Code or Codex, and have Rowboat drive them with all the work context where needed.
Code mode screenshot

Apps

You can build your own work surfaces inside Rowboat — they get access to all the tools and integrations, and you can share them with other people.
Apps screenshot

Integrations

Includes one-click integrations to most popular products.
Integrations screenshot

Spaces: the multiplayer part

Everyone on the team runs their own Rowboat on their own machine, with their own memory of their work and their own model keys. A Space is where you come together: a place to talk, share files and whiteboards, and get work done. Type @rowboat in a Space and your Rowboat works with your context on your machine, then brings the result back to the room as you.

One Space. All your people. And their assistants.

A Space is a channel plus a shared folder. Messages, threads, DMs, reactions, polls, scheduled messages, and @mentions on one side; markdown files rendered as a wiki, uploads, and whiteboards on the other. Conversations, ideas, knowledge and the work itself, finally in the same place.
A Space: the Referral Program channel with a shared whiteboard and three teammates' cursors

Ask your own Rowboat

@rowboat what is missing? wakes your Rowboat on your machine. It gathers context from your Brain, email, meetings and notes, none of which ever leave your computer, and posts the answer back to the Space as "You (via Rowboat)". Every teammate gets the same: their own agent, their own context, one shared room.
John asks @rowboat what is missing; John's Rowboat answers and adds a safeguard to the shared board

Make something together

Draw on a shared whiteboard with live cursors. Write docs as markdown with full history, diffs and restore. Open decks and documents in place. Agents use the very same files: an agent's edit lands on everyone's canvas within one event round-trip, and concurrent edits merge line by line instead of overwriting each other.
Sarah asks @rowboat to turn the board into a proposal; Sarah's Rowboat creates the Referral proposal file

From review to result

@rowboat implement the proposal hands the work to Claude Code or Codex on that teammate's machine, with the Space's files as context. The changes come back to the thread ready for review.
Sam asks @rowboat to implement the proposal; Sam's Rowboat reports the safeguard implemented with changes ready for review

How it fits together

Each person's Rowboat is a full local assistant. The Space lives on a small server called Harbor. The only thing that crosses the line between the two is what you (or your agent, acting as you) chose to post.

flowchart LR
  subgraph J["John's machine"]
    JR["John's Rowboat<br/>Brain · email · notes · code"]
  end
  subgraph S["Sarah's machine"]
    SR["Sarah's Rowboat<br/>Brain · email · notes · code"]
  end
  subgraph M["Sam's machine"]
    MR["Sam's Rowboat<br/>Brain · email · notes · code"]
  end
  H[("Harbor<br/>the Space: messages, files, whiteboards")]
  JR <-- "only what gets posted" --> H
  SR <--> H
  MR <--> H
Loading

Harbor has one core and three doors: HTTP, a live WebSocket, and an MCP server. Rowboat's own agent gets no privileged path. It reaches the Space through the same MCP door any other agent would use, so anything Rowboat can do in a Space, your own agent can do too (see Bring any agent).

What the room sees

When you address your Rowboat in a thread, the whole room saw the ask, so the receipt is a reaction on your message, not a stream of chatter:

Reaction Meaning
👀 Your Rowboat picked it up and is working. The room also sees a live "Rowboat is working" chip.
✅ Done. When the outcome speaks for itself (a file edited, a thread titled, a message pinned), that is all you get. A reply is posted only when the ask wanted an answer.
❗ It needs you: a decision, a confirmation, or something it could only explain with private detail. It asks in your own chat, which only you can see, never in the room.

Everything an agent writes is attributed to its person, "Name (via Rowboat)", and stays in history like any other message.

Privacy rules your Rowboat follows in a Space

Everything it posts lands in front of the team. Everything it reads might be private to you. So:

  • Read only what the task needs. "Message Harsh" needs a member id, not the HR directory.
  • Answer only what was asked. What it saw in your files, DMs, email or notes along the way does not go into the reply.
  • Private crosses to shared only on request, and as a summary. "Add my meeting notes to the roadmap" writes what the room needs from them, never the notes themselves. It never pastes emails, chats or DM content into a Space.
  • A receipt says what it did, not what it read.

Get a Space

  • Create a server. In the app, open Spaces and choose Create a server. Sign in with your Rowboat account (Google or Microsoft) and you get a hosted server with your first Space. Add teammates with Copy invite link.
  • Join a server. Paste the invite link someone sent you. Invites bind your sign-in to a membership; a server can restrict joins to an email domain.
  • Self-host. Harbor is open source and lives in this repo. See Run your own Harbor.

You can belong to several servers at once, and a server can be just you: your notes to self live in a one-member DM.


Installation

Download latest for Mac/Windows/Linux: Download

All release files: https://github.com/rowboatlabs/rowboat/releases/latest

Google setup

To connect Google services (Gmail, Calendar, and Drive), follow Google setup.

Voice input

To enable voice input and voice notes (optional), add a Deepgram API key in ~/.rowboat/config/deepgram.json

Voice output

To enable voice output (optional), add an ElevenLabs API key in ~/.rowboat/config/elevenlabs.json

Web search

To use Exa research search (optional), add the Exa API key in ~/.rowboat/config/exa-search.json

External tools

To enable external tools (optional), you can add any MCP server or use Composio tools by adding an API key in ~/.rowboat/config/composio.json

All API key files use the same format:

{
  "apiKey": "<key>"
}

How it’s different

Most AI tools reconstruct context on demand by searching transcripts or documents.

Rowboat maintains long-lived knowledge instead:

  • context accumulates over time
  • relationships are explicit and inspectable
  • notes are editable by you, not hidden inside a model
  • everything lives on your machine as plain Markdown

The result is memory that compounds, rather than retrieval that starts cold every time.

Bring your own model

Rowboat works with the model setup you prefer:

  • Local models via Ollama or LM Studio
  • Hosted models (bring your own API key/provider)
  • Swap models anytime — your data stays in your local Markdown vault

Extend Rowboat with tools (MCP)

Rowboat can connect to external tools and services via Model Context Protocol (MCP). That means you can plug in (for example) search, databases, CRMs, support tools, and automations - or your own internal tools.

Examples: Exa (web search), Twitter/X, ElevenLabs (voice), Slack, Linear/Jira, GitHub, and more.

Example: Parallel web search

Parallel Search MCP provides web_search and web_fetch for public web search and page extraction without a Parallel account or API key. Free access is rate limited.

Open Settings → MCP Servers, add the parallel entry to your existing mcpServers object, and click Save. Keep any other server entries. If no servers are configured, use:

{
  "mcpServers": {
    "parallel": {
      "url": "https://search.parallel.ai/mcp"
    }
  }
}

This connects through Rowboat's existing Streamable HTTP client. Ask Rowboat to list the tools on the parallel server, then try: "Use Parallel to find the official MCP documentation."

Once configured, Rowboat can invoke these tools during its work, subject to your MCP tool permissions. Queries, requested URLs, and any supplied objectives or context are sent to Parallel. This setup leaves Exa and other configured providers unchanged. To remove it, delete the parallel entry in Settings → MCP Servers and save.

Local-first by design

  • All personal data is stored locally as plain Markdown
  • No proprietary formats or hosted lock-in
  • You can inspect, edit, back up, or delete everything at any time

Run your own Harbor

Harbor is the Spaces server. It is open source, in this repo at apps/harbor, and it is what Rowboat's hosted servers run. One process serves one org or many, on top of Postgres.

Try it locally in a minute. The dev entry boots a seeded single-org Harbor (a small team and a "Roadboard" space) in memory on port 4272, with dev tokens instead of real sign-in:

cd apps/harbor
pnpm install && pnpm build
cd packages/server && pnpm dev

In the app, open the Spaces dialog, choose Add a dev server, and point it at http://localhost:4272 with one of the seeded member ids. Or talk to it directly: every route in /v1/*, the live stream at /v1/live, and the agent door at /mcp. Set DATABASE_URL to make it durable.

Deploy it for a team. The Dockerfile builds the deployment image. Orgs are served by hostname under your apex domain (<slug>.<APEX_DOMAIN>), sign-in is OpenID Connect against an issuer you pin, and new members only ever arrive by accepting an invite.

Variable What it does
HARBOR_MODE=deployment Multi-org mode: resolve the org from the request host.
DATABASE_URL Postgres. Schema is a versioned, append-only migration ladder.
APEX_DOMAIN Orgs live at <slug>.<APEX_DOMAIN>; the apex itself serves create-org and my-orgs.
AUTH_ISSUER The OIDC issuer whose tokens are trusted (JWKS-verified). Without it Harbor falls back to dev tokens, which must never be exposed publicly.
AUTH_PUBLISHABLE_KEY Enables the login/consent page (social sign-in only; Harbor never sees a credential).
HARBOR_ALLOWED_DOMAINS Comma-separated email domains allowed to accept invites (single-org mode).
BLOBS_DIR or BLOBS_S3_BUCKET Where uploads go: local disk, or any S3-compatible bucket (BLOBS_S3_ENDPOINT, BLOBS_S3_REGION).
PORT Defaults to 4272.

The wire contract between Harbor and everything that talks to it is the @rowboat/spaces-protocol package; apps/harbor/CONTRACT.md is its narrative, including the merge semantics, the invite ceremony, and what is deliberately still v0. Expect breaking changes while we dogfood.

Bring any agent to a Space

Every org exposes an MCP server at https://<org address>/mcp (streamable HTTP). It is the exact surface Rowboat's own agent uses: read and post messages, react, open DMs, create and manage threads, read files, propose changes with a base version, upload attachments, search, catch up on activity, mint invites. Whatever connects authenticates as a member and everything it does is attributed to that member, "Name (via )".

With Claude Code, for example:

claude mcp add --transport http my-team https://<org address>/mcp

Harbor publishes OAuth protected-resource metadata, so any MCP client that speaks OAuth 2.1 finds the sign-in flow on its own. Sign in as yourself and the agent works as you; sign in as a member you created for it and it has a seat of its own.

What's in this repo

  • apps/x: the desktop app (Electron), the headless rowboat-server, and a Spaces-only mobile client
  • apps/harbor: the Spaces server and the @rowboat/spaces-protocol contract

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

182 total
  1. v1.0.4v1.0.4Sep 22, 2026pre-release15 downloads
  2. v1.0.3v1.0.3Sep 17, 20268.8K downloads

    ## What's new **🌐 Introducing Rowboat Spaces. Every teammate. Their own agent. One Space.** Rowboat becomes a multiplayer personal assistant for work. A Space brings your team’s conversations, files, and whiteboards together, and everyone brings their own Rowboat: their own memory, tools, and model keys. Your personal assistant can now work alongside your teammates and their assistants in the same room. **🤖 Ask in the Space. Your Rowboat takes it from there.** Type `@rowboat what is missing?` and your Rowboat picks it up on your machine, draws on your Brain, email, meetings, and notes, and brings the answer back as **“You (via Rowboat)”**. Your personal knowledge stays on your machine; the Space holds what you and your agent choose to share. The room gets a 👀 while work is underway and a ✅ when it settles. If your Rowboat needs a decision, permission, or a private conversation, it leaves a ❗ and asks in your own chat. You can also open the agent conversation behind a Rowboat reply to follow the work. **🎨 From a shared whiteboard to something you can ship.** Sketch together with live cursors, then ask `@rowboat turn this board into a proposal`. Agents can draw on the sa

  3. v1.0.2v1.0.2Sep 15, 20261.9K downloads

    ## What's new **🌐 Introducing Rowboat Spaces. Every teammate. Their own agent. One Space.** Rowboat becomes a multiplayer personal assistant for work. A Space brings your team’s conversations, files, and whiteboards together, and everyone brings their own Rowboat: their own memory, tools, and model keys. Your personal assistant can now work alongside your teammates and their assistants in the same room. **🤖 Ask in the Space. Your Rowboat takes it from there.** Type `@rowboat what is missing?` and your Rowboat picks it up on your machine, draws on your Brain, email, meetings, and notes, and brings the answer back as **“You (via Rowboat)”**. Your personal knowledge stays on your machine; the Space holds what you and your agent choose to share. The room gets a 👀 while work is underway and a ✅ when it settles. If your Rowboat needs a decision, permission, or a private conversation, it leaves a ❗ and asks in your own chat. You can also open the agent conversation behind a Rowboat reply to follow the work. **🎨 From a shared whiteboard to something you can ship.** Sketch together with live cursors, then ask `@rowboat turn this board into a proposal`. Agents can draw on the sa

  4. v1.0.1v1.0.1Sep 15, 2026483 downloads

    ## What's new **🌐 Introducing Rowboat Spaces. Every teammate. Their own agent. One Space.** Rowboat becomes a multiplayer personal assistant for work. A Space brings your team’s conversations, files, and whiteboards together, and everyone brings their own Rowboat: their own memory, tools, and model keys. Your personal assistant can now work alongside your teammates and their assistants in the same room. **🤖 Ask in the Space. Your Rowboat takes it from there.** Type `@rowboat what is missing?` and your Rowboat picks it up on your machine, draws on your Brain, email, meetings, and notes, and brings the answer back as **“You (via Rowboat)”**. Your personal knowledge stays on your machine; the Space holds what you and your agent choose to share. The room gets a 👀 while work is underway and a ✅ when it settles. If your Rowboat needs a decision, permission, or a private conversation, it leaves a ❗ and asks in your own chat. You can also open the agent conversation behind a Rowboat reply to follow the work. **🎨 From a shared whiteboard to something you can ship.** Sketch together with live cursors, then ask `@rowboat turn this board into a proposal`. Agents can draw on the sa

  5. v1.0.0v1.0.0Sep 15, 2026pre-release43 downloads

Code frequency

additions and deletions
+128.5K-128.5KWeek of 2025-10-05: +0 linesWeek of 2025-10-05: -0 linesWeek of 2025-10-12: +2,779 linesWeek of 2025-10-12: -487 linesWeek of 2025-10-19: +0 linesWeek of 2025-10-19: -0 linesWeek of 2025-10-26: +2,558 linesWeek of 2025-10-26: -4 linesWeek of 2025-11-02: +1,694 linesWeek of 2025-11-02: -540 linesWeek of 2025-11-09: +3,141 linesWeek of 2025-11-09: -2,939 linesWeek of 2025-11-16: +5,461 linesWeek of 2025-11-16: -3,156 linesWeek of 2025-11-23: +2,108 linesWeek of 2025-11-23: -274 linesWeek of 2025-11-30: +3,812 linesWeek of 2025-11-30: -2,267 linesWeek of 2025-12-07: +22,338 linesWeek of 2025-12-07: -75 linesWeek of 2025-12-14: +4,519 linesWeek of 2025-12-14: -514 linesWeek of 2025-12-21: +10,644 linesWeek of 2025-12-21: -1,051 linesWeek of 2025-12-28: +12,398 linesWeek of 2025-12-28: -8,436 linesWeek of 2026-01-04: +18,845 linesWeek of 2026-01-04: -3,671 linesWeek of 2026-01-11: +9,755 linesWeek of 2026-01-11: -1,327 linesWeek of 2026-01-18: +16,110 linesWeek of 2026-01-18: -7,089 linesWeek of 2026-01-25: +2,979 linesWeek of 2026-01-25: -1,487 linesWeek of 2026-02-01: +10,274 linesWeek of 2026-02-01: -2,858 linesWeek of 2026-02-08: +2,193 linesWeek of 2026-02-08: -602 linesWeek of 2026-02-15: +7,218 linesWeek of 2026-02-15: -1,629 linesWeek of 2026-02-22: +2,739 linesWeek of 2026-02-22: -1,429 linesWeek of 2026-03-01: +7,436 linesWeek of 2026-03-01: -4,527 linesWeek of 2026-03-08: +3,304 linesWeek of 2026-03-08: -1,308 linesWeek of 2026-03-15: +8,832 linesWeek of 2026-03-15: -1,293 linesWeek of 2026-03-22: +3,042 linesWeek of 2026-03-22: -809 linesWeek of 2026-03-29: +2,341 linesWeek of 2026-03-29: -1,114 linesWeek of 2026-04-05: +2,944 linesWeek of 2026-04-05: -1,451 linesWeek of 2026-04-12: +9,557 linesWeek of 2026-04-12: -520 linesWeek of 2026-04-19: +1,931 linesWeek of 2026-04-19: -633 linesWeek of 2026-04-26: +845 linesWeek of 2026-04-26: -39 linesWeek of 2026-05-03: +13,209 linesWeek of 2026-05-03: -9,548 linesWeek of 2026-05-10: +4,940 linesWeek of 2026-05-10: -921 linesWeek of 2026-05-17: +9,791 linesWeek of 2026-05-17: -3,215 linesWeek of 2026-05-24: +7,598 linesWeek of 2026-05-24: -1,863 linesWeek of 2026-05-31: +2,852 linesWeek of 2026-05-31: -417 linesWeek of 2026-06-07: +7,318 linesWeek of 2026-06-07: -313 linesWeek of 2026-06-14: +7,267 linesWeek of 2026-06-14: -1,515 linesWeek of 2026-06-21: +3,394 linesWeek of 2026-06-21: -1,379 linesWeek of 2026-06-28: +38,598 linesWeek of 2026-06-28: -7,830 linesWeek of 2026-07-05: +51,038 linesWeek of 2026-07-05: -34,206 linesWeek of 2026-07-12: +9,041 linesWeek of 2026-07-12: -1,696 linesWeek of 2026-07-19: +12,024 linesWeek of 2026-07-19: -7,034 linesWeek of 2026-07-26: +18,466 linesWeek of 2026-07-26: -3,601 linesWeek of 2026-08-02: +11,731 linesWeek of 2026-08-02: -1,646 linesWeek of 2026-08-09: +24,460 linesWeek of 2026-08-09: -5,227 linesWeek of 2026-08-16: +38,002 linesWeek of 2026-08-16: -15,924 linesWeek of 2026-08-23: +13,361 linesWeek of 2026-08-23: -128,524 linesWeek of 2026-08-30: +40,480 linesWeek of 2026-08-30: -9,927 linesWeek of 2026-09-06: +42,151 linesWeek of 2026-09-06: -11,762 linesWeek of 2026-09-13: +13,385 linesWeek of 2026-09-13: -5,453 linesWeek of 2026-09-20: +11,621 linesWeek of 2026-09-20: -6,016 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesOct 5, 2025Sep 27, 2026
+562.5K lines added, -309.5K removed over the last year.

Commits per week

last 52 weeks
1450Week of 2025-09-28: 3 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 1 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 2 commitsWeek of 2025-11-02: 6 commitsWeek of 2025-11-09: 14 commitsWeek of 2025-11-16: 61 commitsWeek of 2025-11-23: 12 commitsWeek of 2025-11-30: 6 commitsWeek of 2025-12-07: 6 commitsWeek of 2025-12-14: 11 commitsWeek of 2025-12-21: 2 commitsWeek of 2025-12-28: 1 commitsWeek of 2026-01-04: 22 commitsWeek of 2026-01-11: 40 commitsWeek of 2026-01-18: 62 commitsWeek of 2026-01-25: 19 commitsWeek of 2026-02-01: 42 commitsWeek of 2026-02-08: 47 commitsWeek of 2026-02-15: 31 commitsWeek of 2026-02-22: 12 commitsWeek of 2026-03-01: 9 commitsWeek of 2026-03-08: 12 commitsWeek of 2026-03-15: 24 commitsWeek of 2026-03-22: 18 commitsWeek of 2026-03-29: 13 commitsWeek of 2026-04-05: 31 commitsWeek of 2026-04-12: 20 commitsWeek of 2026-04-19: 24 commitsWeek of 2026-04-26: 3 commitsWeek of 2026-05-03: 44 commitsWeek of 2026-05-10: 9 commitsWeek of 2026-05-17: 19 commitsWeek of 2026-05-24: 37 commitsWeek of 2026-05-31: 8 commitsWeek of 2026-06-07: 14 commitsWeek of 2026-06-14: 20 commitsWeek of 2026-06-21: 20 commitsWeek of 2026-06-28: 72 commitsWeek of 2026-07-05: 145 commitsWeek of 2026-07-12: 33 commitsWeek of 2026-07-19: 83 commitsWeek of 2026-07-26: 39 commitsWeek of 2026-08-02: 16 commitsWeek of 2026-08-09: 21 commitsWeek of 2026-08-16: 34 commitsWeek of 2026-08-23: 33 commitsWeek of 2026-08-30: 47 commitsWeek of 2026-09-06: 67 commitsWeek of 2026-09-13: 54 commitsWeek of 2026-09-20: 23 commitsSep 28, 2025Sep 20, 2026
1.4K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 4 commitsSun 1:00 — 1 commitsSun 2:00 — 2 commitsSun 3:00 — 1 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 2 commitsSun 7:00 — 3 commitsSun 8:00 — 2 commitsSun 9:00 — 0 commitsSun 10:00 — 2 commitsSun 11:00 — 7 commitsSun 12:00 — 4 commitsSun 13:00 — 3 commitsSun 14:00 — 4 commitsSun 15:00 — 7 commitsSun 16:00 — 7 commitsSun 17:00 — 0 commitsSun 18:00 — 3 commitsSun 19:00 — 6 commitsSun 20:00 — 2 commitsSun 21:00 — 2 commitsSun 22:00 — 1 commitsSun 23:00 — 7 commitsMon 0:00 — 2 commitsMon 1:00 — 3 commitsMon 2:00 — 1 commitsMon 3:00 — 0 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 4 commitsMon 7:00 — 2 commitsMon 8:00 — 3 commitsMon 9:00 — 7 commitsMon 10:00 — 17 commitsMon 11:00 — 21 commitsMon 12:00 — 19 commitsMon 13:00 — 13 commitsMon 14:00 — 37 commitsMon 15:00 — 39 commitsMon 16:00 — 37 commitsMon 17:00 — 22 commitsMon 18:00 — 7 commitsMon 19:00 — 8 commitsMon 20:00 — 16 commitsMon 21:00 — 30 commitsMon 22:00 — 28 commitsMon 23:00 — 25 commitsTue 0:00 — 17 commitsTue 1:00 — 14 commitsTue 2:00 — 7 commitsTue 3:00 — 4 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 5 commitsTue 7:00 — 4 commitsTue 8:00 — 7 commitsTue 9:00 — 8 commitsTue 10:00 — 15 commitsTue 11:00 — 28 commitsTue 12:00 — 35 commitsTue 13:00 — 37 commitsTue 14:00 — 52 commitsTue 15:00 — 47 commitsTue 16:00 — 44 commitsTue 17:00 — 38 commitsTue 18:00 — 21 commitsTue 19:00 — 25 commitsTue 20:00 — 32 commitsTue 21:00 — 25 commitsTue 22:00 — 33 commitsTue 23:00 — 30 commitsWed 0:00 — 20 commitsWed 1:00 — 13 commitsWed 2:00 — 4 commitsWed 3:00 — 3 commitsWed 4:00 — 0 commitsWed 5:00 — 1 commitsWed 6:00 — 3 commitsWed 7:00 — 6 commitsWed 8:00 — 2 commitsWed 9:00 — 9 commitsWed 10:00 — 17 commitsWed 11:00 — 20 commitsWed 12:00 — 17 commitsWed 13:00 — 23 commitsWed 14:00 — 25 commitsWed 15:00 — 27 commitsWed 16:00 — 30 commitsWed 17:00 — 17 commitsWed 18:00 — 18 commitsWed 19:00 — 11 commitsWed 20:00 — 23 commitsWed 21:00 — 18 commitsWed 22:00 — 21 commitsWed 23:00 — 31 commitsThu 0:00 — 14 commitsThu 1:00 — 15 commitsThu 2:00 — 9 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 1 commitsThu 6:00 — 6 commitsThu 7:00 — 9 commitsThu 8:00 — 4 commitsThu 9:00 — 11 commitsThu 10:00 — 18 commitsThu 11:00 — 32 commitsThu 12:00 — 23 commitsThu 13:00 — 23 commitsThu 14:00 — 22 commitsThu 15:00 — 25 commitsThu 16:00 — 26 commitsThu 17:00 — 28 commitsThu 18:00 — 14 commitsThu 19:00 — 17 commitsThu 20:00 — 11 commitsThu 21:00 — 14 commitsThu 22:00 — 23 commitsThu 23:00 — 19 commitsFri 0:00 — 24 commitsFri 1:00 — 20 commitsFri 2:00 — 14 commitsFri 3:00 — 5 commitsFri 4:00 — 0 commitsFri 5:00 — 6 commitsFri 6:00 — 2 commitsFri 7:00 — 5 commitsFri 8:00 — 9 commitsFri 9:00 — 11 commitsFri 10:00 — 25 commitsFri 11:00 — 24 commitsFri 12:00 — 17 commitsFri 13:00 — 25 commitsFri 14:00 — 22 commitsFri 15:00 — 24 commitsFri 16:00 — 31 commitsFri 17:00 — 27 commitsFri 18:00 — 11 commitsFri 19:00 — 18 commitsFri 20:00 — 10 commitsFri 21:00 — 9 commitsFri 22:00 — 12 commitsFri 23:00 — 23 commitsSat 0:00 — 20 commitsSat 1:00 — 17 commitsSat 2:00 — 3 commitsSat 3:00 — 1 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 1 commitsSat 8:00 — 3 commitsSat 9:00 — 8 commitsSat 10:00 — 12 commitsSat 11:00 — 7 commitsSat 12:00 — 18 commitsSat 13:00 — 8 commitsSat 14:00 — 9 commitsSat 15:00 — 2 commitsSat 16:00 — 2 commitsSat 17:00 — 3 commitsSat 18:00 — 5 commitsSat 19:00 — 4 commitsSat 20:00 — 3 commitsSat 21:00 — 2 commitsSat 22:00 — 5 commitsSat 23:00 — 5 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Feb 16, 2026daily#15+173
Feb 15, 2026daily#7+316
Feb 14, 2026daily#10+204
  • public-apis/public-apis

    A collective list of free APIs

    486.1K stars · Python

  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    456.7K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    391.3K stars · TypeScript

  • obra/superpowers

    An agentic skills framework & software development methodology that works.

    295.2K stars · Shell

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    272.8K stars · JavaScript

  • NousResearch/hermes-agent

    The agent that grows with you

    251.2K stars · Python