Think, build, and remember
— in one workspace

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

// alpha · single-user · 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
6export function AnchorGutter(ed: Editor) {
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 note editor for markdown, stored locally in a vault — and every file, folder, and symbol you mention becomes a live link.

  • [[wikilinks]] and [[fn:Symbol]] reach notes, headings, and declarations
  • Mermaid diagrams render inline
  • :grove-* directives drop in live task boards, agent, and PR panels
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 markdown that links 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 task in its own git worktree.

  • Agents inherit the repo's CLAUDE.md / AGENTS.md and your task 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 / 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. 04 a tab can be anything
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 task, no server
grove
Fig. 05 inline review, picked up by agents
06 / Worktrees

Every task 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 task — 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. 06 isolated git, in parallel
07 / 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. 07 native, and fast
08 / 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 workspace and every task'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. 08 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. Import or copy any Obsidian vault — or just individual folders or notes — into Grove, or use Grove as a standalone agentic notes app. Notes are plain CommonMark on disk, so there's no lock-in either way.

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?

Everything lives on your machine: your repo, your notes, and the comment store (a local SQLite file). Grove has no backend — 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 task, 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 task 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 workspace that branches with every task.

$ grove open ~/workready