Rowboat Turns Memory Into Markdown
The open-source AI coworker stores context in a local, editable vault, then uses permissions, skills, and MCP to act on it.
- Rowboat makes AI memory inspectable by storing context in plain Markdown notes and backlinks instead of a hidden cloud store.
- Its runtime treats agent work as an event stream, with permissions and subflows built into the loop.
- Skill loading and MCP keep the system extensible without stuffing every rule into one giant prompt.
- The product competes by shrinking the trust boundary around data and actions, not by maximizing chatbot novelty.
Most AI assistants fail in the same boring way. They forget the last useful thing you told them. Rowboat attacks that problem by making memory local, inspectable, and editable, so context is not a mystery box hidden behind a vendor API.
Every AI tool I’ve used has the same problem... next time you come back, it’s forgotten everything. You’re starting from scratch. Every. Single. Time. It’s like hiring an assistant who gets amnesia at the end of every conversation.
A coworker, not a chat window
Rowboat Labs built Rowboat around a simple premise: your work context already lives in email, calendars, notes, and docs, so the assistant should meet it there. The repo describes a local-first coworker that builds a transparent knowledge graph of people, projects, decisions, commitments, and open questions.
That shifts the product away from the usual ask-and-answer loop. Rowboat is trying to be a durable working layer, one that remembers enough to draft, organize, and act without making the user rebuild context every time.
Why Markdown matters
The most unusual choice in Rowboat is also the clearest: it uses plain Markdown notes with backlinks as working memory. That means the AI's context lives in a format you can open in Obsidian, edit by hand, diff in git, or move elsewhere without a migration project.
If the model gets a fact wrong, the fix is a text edit, not a retraining cycle. That is a very different trust model from cloud memory systems, where the underlying state is usually opaque and hard to correct.
Under the hood: events, permissions, and subflows
The CLI runtime is event-driven, not prompt-driven. In runtime.ts, the trigger path takes a run lock, replays the run log, and streams events through an agent state machine. Messages, tool calls, permissions, and nested subflows all become first-class events, which makes the system easier to pause, resume, and audit.
That permission gate matters. Before a tool can do something external or destructive, Rowboat pauses for approval. The result is less flashy than a demo that fires commands freely, but much easier to trust when the agent is touching real data.
Skills and MCP keep the core small
Rowboat also avoids the giant prompt trap. Instead of stuffing every instruction into one system message, it uses a skill catalog and a loadSkill tool so the model can fetch guidance only when it needs it. The MCP layer does the same thing for tools. listMcpServers and executeMcpTool let the core runtime stay small while the ecosystem supplies connectors like Slack or GitHub.
That architecture gives Rowboat a useful asymmetry. The core stays narrow, but the surface area for capability can grow almost without limit.
Such an approach could eliminate the need to repeatedly reconstruct global context from scratch. It also reduces reliance on ad-hoc, quickly outdated .md reports. With a maintained knowledge graph, higher-level tasks could be delegated without assembling full context manually each time or worrying that the model will overlook subtle constraints.
What Rowboat is really competing with
Rowboat is not only competing with chatbots. It is competing with a stack: cloud assistants that forget, note apps that do not act, and agent platforms that can feel powerful while hiding too much of the state. The comparison is less about feature checklists and more about where memory lives, who controls it, and how safely actions are executed.
| System | Memory model | User control | Main trade-off |
|---|---|---|---|
| Rowboat | Local Markdown vault with backlinks | High, the files are inspectable and editable | More setup than a chat app, more trust than a black box |
| Cloud chatbots | Vendor-managed or session-based context | Low to medium | Fast and familiar, but the memory boundary stays opaque |
| Obsidian alone | Human notes without an agent runtime | Very high | Great for writing and recall, but not for autonomous action |
| Agent platforms | Usually app-specific or cloud state | Medium | Broad capability, less transparency around what persists |
That is the real bet. Rowboat is not trying to win by sounding smarter in a single turn. It is trying to become the place where useful context accumulates, stays visible, and can be acted on without handing the whole memory layer to a service you cannot inspect.





