Product management for the agentic age

Capture an idea. Ship it.
Then do it ten times at once.

Polynomic is the loop between an idea and merged code: capture it in a keystroke, shape it with AI, dispatch an agent into a managed worktree, review the diff, and merge — all without leaving the keyboard. Run the whole loop on a dozen tasks in parallel and always know what to do next.

POL-198 — Activity
Task captured 2m ago

Append-only migration for the Ledger

Planning session completed 1m ago

3 sub-tasks created, 5 files pinned

Agent dispatched 58s ago

Workspace: polynomic, polynomic-cli

3 commits pushed 30s ago
a3f7c21 Add append-only event table
e8b2d05 Migrate existing tasks to events
1c4a9f8 Wire up ledger reads
Ready for review 12s ago

2 repos · 7 files changed · +142 −31

Rebased & merged just now

Both repos merged to main

The new bottleneck

The agents got fast. Staying on top of what they produce didn't.

You spawned a dozen agents last week. The agents weren't the problem — keeping the work coherent was. Diffs pile up across repos, sessions sprawl across terminals, and you're the one holding it all in your head. The bottleneck moved: it isn't writing the code anymore, it's staying on top of the work. Most tools hand you a control panel for babysitting agents. You don't need to manage agents. You need to manage the work.

The loop

From a half-formed idea to merged code, in one unbroken flow.

Every other tool makes you stitch this together by hand — an issue here, a terminal there, a PR somewhere else. Polynomic makes it a single loop you run at speed, and then run again, and again.

  1. 01

    Capture

    An idea hits. Press C, type it, done — back to what you were doing. No forms, no triage tax.

  2. 02

    Shape with AI

    A Planning Session reads your code and helps you sharpen scope, pin the files, and break out sub-tasks before a line is written.

  3. 03

    Dispatch

    Start the task. Polynomic lays a worktree per repo in one Workspace and spawns an agent rooted there to plan or implement.

  4. 04

    Review

    Every task produces a branch diff per repo. An independent AI Review marks it up; you read and decide with single keys.

  5. 05

    Rebase & merge

    Rebase onto the freshly-fetched base and merge locally — one keystroke, no context switch to the terminal.

And the whole loop runs on many tasks at once — a fleet of agents working, you steering.

Capture & shape

Catch the idea before it's gone. Sharpen it before you start.

Press C anywhere and a task is captured in seconds — no form, no friction. When you're ready, a Planning Session reads your actual code, helps you nail the scope, pins the files with @-references, and breaks the work into sub-tasks. Get the context right here and the agent's job becomes tractable.

POL-219 — Planning Session

Capture should work from the command palette too, not just the list.

Got it. The palette already opens from ⌘K — I've pinned the entry point and added a sub-task for the empty-input case.

src/palette/commands.ts#register
Sub-task: handle empty capture
Reply to shape the task…

Dispatch

One task. Every repo it touches. One agent across all of them.

Real work spans repos. Start a task that touches three and Polynomic lays a git worktree of each one side by side in a single Workspace, then spawns one Agent Session rooted there — with full cross-repo context. No juggling branches, no manual worktree dance. Plan in plan mode or implement straight away; the choice is a keystroke.

POL-198 — Workspace
polynomic

worktree · pol-198

polynomic-cli

worktree · pol-198

Agent Session rooted at Workspace

editing across both worktrees in one context…

Skills

event-sourcing rust-review sqlite-migrations

Stay in control

Approve every tool call from one hub.

When agents want to run a command, edit a file, or hit the network, the request surfaces in one central queue — across every running session. Approve or deny with a single key, without hunting through a dozen terminals. You keep the agents on a leash without it slowing you down.

Approvals
POL-204 Bash cargo test --workspace
POL-211 Edit src/worktree/cleanup.rs
POL-198 WebFetch docs.rs/rusqlite

Review & merge

Read the diff, request changes, merge — all from the keyboard.

Every task produces a reviewable branch diff per repo, right inside Polynomic. An independent AI Review reads it first and posts comments — it never merges anything. You skim, request changes with a key (the same agent picks the fix back up), or rebase onto base and merge locally. Nothing reaches main until you've seen it.

polynomic/src/review.rs — Diff
@@ -18,6 +18,7 @@ impl Review {
  fn post_comment(&self, line: u32) {
+   let token = new_task_token();
-   let token = None;
    self.ledger.append(token);
  }

AI Review

new_task_token() can fail; the result is unwrapped before reaching the Ledger. Consider propagating the error so a failed append doesn't land silently.

R Request changes M Rebase & merge

Parallel by default

Run the loop on many tasks at once. A fleet of Agent Sessions works in the background while you triage, review, and merge — task state readable at a glance so you always know what needs you next.

Keyboard-first and fast

Command palette, single-key shortcuts, vim-style navigation. Capture, dispatch, review, and merge without reaching for the mouse.

Local-first, by design

Your tasks, events, and code references live in a local SQLite Ledger: an append-only, immutable record. No cloud dependency, no API keys, no monthly seat fees. Your source stays in git; your task data stays separate. You own both.

Command palette
Type a command…
Capture task C
Start agent session S
Open review R
Rebase & merge M

Stop managing agents. Start managing the work.

Trade the dozen open terminals for one place where every task is legible — captured, shaped, dispatched, reviewed, and merged across all your repos. You stop chasing agent output and start steering a fleet, always knowing what needs you next. Local-first, with every change reviewable before it lands.

Polynomic is built in Polynomic — every task, every diff, every merge.