v0.4.3 · live

Think, build, and remember
— in one workspace

Notes, codebase, and agents in one surface — so everything you and your agents learn makes the next workspace sharper.

Read the docs

// macOS only · free & local

The workspace, in one window
grove/logo theming·⑂ logo-theming+128−34
AnchorGutter.tsx×GroveMark.tsx×zsh×
src › components › AnchorGutter.tsx⦿ tsserver
1import { useEffect, useRef } from "react";
2import { paint } from "../lib/anchors";
3
4// gutter glyphs link prose ⇄ code; a
5// huge span can't paint 1000s of decos
7const ref = useRef<Disposable>();
8
9useEffect(() => {
10loadAnchors(ed.uri).then((anchors) => {
11const end =
12a.endLine != null && a.endLine >= a.line
13? Math.min(a.endLine, a.line + 1000)
14: a.line;
15return paint(a.line, end);
16});
17}, [ed.uri]);
18}
address commentslogo theming
✳ Claude Code v2.1.179 · Opus 4.8 · Max
address my outstanding comments on your changes
On it — 2 open comments on GroveMark.tsx. Swapping the literal sage for the --brand token and pulling the clamp into a named const.
⎿ edited GroveMark.tsx +12 4
~/Dev/GroveOpus 4.8 (1M) · ctx 98%
+
01 / Notes

Markdown that links to everything

A first-class markdown editor over a local vault. Open any notes folder like an Obsidian vault, connect one or more code repos to it, and every file, folder, or symbol you mention becomes a live link.

  • Open a notes folder as a vault; connect multiple repos as projects
  • [[wikilinks]] and [[fn:Symbol]] reach notes, headings, and declarations
  • Mermaid diagrams and :grove-* directive panels render inline
grove
anchors.mdRendered
Anchors, end to end

The gutter clamps to the start line so it never paints thousands of decorations.

  • symbol [[fn:AnchorGutter]]
  • spec in [[auth-design]]
Fig. 01 an Obsidian-style vault, wired to code
02 / Editor

A real IDE, built in

The same editor VS Code is built on, with tree-sitter and auto-installed language servers — nothing to set up yourself.

  • Go-to-definition, find-references, and hover
  • Semantic tokens layered over fast TextMate highlighting
  • Diffs rendered inside the whole file, not patch hunks
grove
AnchorGutter.tsx×
1import { useEffect } from "react";
4// gutter glyphs link prose ⇄ code
6export function AnchorGutter(ed) {
7const ref = useRef();
8loadAnchors(ed.uri).then(paint);
9}
Fig. 02 the editor VS Code is built on
03 / Agents

A terminal-native fleet

Every chat is a real terminal running Claude Code, Codex, or opencode — each workspace in its own git worktree.

  • Agents inherit the repo's CLAUDE.md / AGENTS.md and your workspace notes
  • OS-level notifications when a turn finishes or an agent needs you
  • A built-in process monitor keeps a parallel fleet's RAM in check
grove
address commentslogo theming
✳ Claude Code v2.1.179 · Opus 4.8 · Max
address my outstanding comments on your changes
On it — 2 open comments on GroveMark.tsx. Swapping the literal sage for the --brand token and pulling the clamp into a named const.
⎿ edited GroveMark.tsx +12 4
~/Dev/GroveOpus 4.8 (1M) · ctx 98%
Fig. 03 a terminal-native fleet
04 / Worktrees

Every workspace in its own worktree

Turn any note — or a whole folder of notes — into a real git worktree that inherits those notes, so a fleet of agents works in parallel without ever touching each other's files.

  • Any note or folder of notes can become a worktree
  • A new worktree inherits the notes it was created from
  • A branch per workspace — review every worktree in one diff
grove
GroveMark.tsx×+84−16· logo theming vs main
@@ -16,7 +16,9 @@ GroveMark()
1616 export function GroveMark({ size }: Props) {
1717 return (
1818 <svg viewBox="0 0 24 24" width={size}>
19 <path fill="#a8c79a" d={leaf} />
19+ <path fill="var(--brand)" d={leaf} />
20+ <path className="vein" d={vein} />
2021 </svg>
2122 );
2223 }
Fig. 04 isolated git, in parallel
05 / Comments

Comment on the work inline

Leave review comments on any line of code — or anywhere in a rendered note. The agent reads them and addresses them in its next turn.

  • Comment in code or in a markdown note
  • Threaded — the agent replies and resolves them
  • Stored locally per workspace, no server
grove
Fig. 05 inline review, picked up by agents
06 / Panes

Tabs are the primitive

Every pane is just a tab — and a tab can be anything: code, a rendered note, an agent, a terminal, or a browser. Split and tile them into one live grid.

  • One tab: code, markdown, an agent, a terminal, or a browser
  • Split panes and tile every agent side by side
  • Arrange the workspace however you think
grove
address commentslogo theming
✳ Claude Code v2.1.179 · Opus 4.8 · Max
address my outstanding comments on your changes
On it — 2 open comments on GroveMark.tsx. Swapping the literal sage for the --brand token and pulling the clamp into a named const.
⎿ edited GroveMark.tsx +12 4
~/Dev/GroveOpus 4.8 (1M) · ctx 98%
anchors.mdRendered
Anchors, end to end

The gutter clamps to the start line so it never paints thousands of decorations.

  • symbol [[fn:AnchorGutter]]
  • spec in [[auth-design]]
extract token parsingauth refactor
✳ Claude Code v2.1.179 · Opus 4.8 · Max
pull token parsing out of the route handler
Moving parseAuth into its own module and rewiring the call site in route.ts.
⎿ edited auth.ts +64 22
~/Dev/GroveOpus 4.8 (1M) · ctx 71%
Fig. 06 a tab can be anything
07 / Multi-workspace

Bring your own vault, connect any repo

The top-level vault is just a folder of notes — point Grove at anything, including an Obsidian vault you already keep. Then connect as many coding repos to it as you like; each shows up as its own package, and the crumb up top switches between them.

  • Open any notes folder as the vault — an existing Obsidian vault works as-is
  • Connect arbitrary code repos to that vault, each as its own package
  • Switch packages from the header without leaving the vault
grove
grove2 packages
grove
notes
plan.md
logo theming
grove-website
reading-list.md
exploration.html
Fig. 07 one vault, many repos
08 / Performance

Native-fast, light on your Mac

Grove is a native Tauri app — not a browser tab — so it stays fast and light even with a fleet of agents and language servers running. A built-in monitor tracks memory per process.

  • Built on Tauri — a real native app
  • Fast and light under a parallel fleet
  • Per-process memory monitor — kill runaways
grove
Memory usage1.2 GB · 6 procs
mainGrove#1201148 MB
agentlogo theming#4412205 MB
agentauth refactor#4490152 MB
lsptsserver#4501312 MB
mcpgrove#450364 MB
Fig. 08 native, and fast
09 / Publish

Publish a note, or a whole folder

One click turns any note into a hosted page — rendered by the same engine that draws it in Grove, so readers see exactly what you wrote. Share an unlisted link, gate it to your GitHub org, or make it public. It's free.

  • One click from the editor header — the link is copied, and the page updates as you save
  • Gate to your GitHub org for private team docs, or go fully public
  • Publish a whole folder as a navigable site — nav, wikilinks, and all
grove
anchors.md Share
Publish · free
Anyone with the linkunlisted
Your GitHub orgteam only
Publicindexable
Published — link copied
Fig. 09 share a note or a folder — free
10 / Symbiosis

What grows when it's all one app

Code, prose, and agents share a single graph — so connections appear that simply can't exist across separate apps.

  • Prose-to-code anchors light up as glyphs in the editor gutter
  • Find-references surfaces the notes attached to a symbol
  • One search spans the vault and every workspace's worktree
grove
ReferencesAnchorGutter4
anchors.mdnote · discusses this symbol
“…the prose-to-code anchor lights up in the gutter”
editor.tsx:3758 · call site
new AnchorGutter(editor)
PaneArea.tsx:142 · render
<AnchorGutter />
Fig. 10 one graph, many payoffs
Field questions

Common questions

Q.Is Grove free?

Yes — Grove is free during the alpha. It runs entirely on your Mac, with no Grove account and no server in the loop.

Q.I use Obsidian — can I use Grove?

Yes. Open any Obsidian vault — or any folder of notes — directly in Grove, then connect one or more code repos to it as projects, each with its own file tree and switchable from the top bar. Or run Grove as a standalone agentic notes app. Notes stay plain CommonMark on disk, so there's no lock-in either way.

Q.Does Grove support multiple projects?

Yes. All your notes live in one top-level vault folder, and you can connect multiple GitHub repos to it — each becomes its own project with its own file tree, switchable from the top bar. Your notes stay the constant hub while any number of connected codebases orbit around them.

Q.Can I share my notes?

Yes — publishing is built in and free. One click from the editor turns any note into a hosted, read-only page, rendered by the same engine that draws it in Grove. Share an unlisted link, gate it to your GitHub org for private team docs, or make it public. You can publish a whole folder as a navigable site too. See the Publishing guide in the docs.

Q.Which agents and models does it support?

Grove runs Claude Code, Codex, or opencode as real terminal sessions — bring whichever you already use. It's model-agnostic, and each chat is an actual PTY with the full agent CLI.

Q.Do I need my own API key or subscription?

Grove launches the agent CLIs you already have, so they use your existing login or key — your Claude subscription, for instance. Grove never proxies your keys or your code through a server.

Q.Is my code private?

Yes. Your repos, notes, and comment store (a local SQLite file) all live on your machine — Grove runs locally and never proxies your code or keys through a server. The only thing that leaves your Mac is markdown you explicitly publish: those pages are stored on our servers, secured with Supabase row-level security so only you and the people you share with can reach them. Beyond that, the only network calls are the ones your agent makes to its own provider, plus optional GitHub actions through your own gh login.

Q.I already use Cursor or VS Code — is Grove for me?

Grove is a full editor — Monaco, tree-sitter, and LSP — so you can read and write code directly. It's built for reviewing and steering parallel agent work rather than replacing hand-editing; reach for it when the work is mostly agentic.

Q.How does Grove compare to Conductor or cmux?

Grove holds its own as a pure agentic surface: isolated git worktrees per workspace, full split-pane layouts, OS-level notifications when an agent finishes or needs you, deep keyboard shortcuts, and a built-in process monitor to keep a parallel fleet's RAM in check. The notes graph and full IDE are what it layers on top — but if you just want to run and review parallel agents, that works great on its own.

Q.How do agents run in parallel?

Each workspace forks its own git worktree off the same base branch, so a fleet works at once without colliding. You review every worktree's changes in one unified diff and merge when you're ready.

Q.Which platforms are supported?

macOS for now — Apple Silicon and Intel, macOS 13+. Grove is a single-user, local desktop app.

Free and local, single-user, macOS first. Your notes and your code in one vault that branches with every workspace.

Read the docs

$ grove open ~/workready